{"id":46294516,"url":"https://github.com/nitrocloudofficial/nitrostack","last_synced_at":"2026-03-09T14:01:19.233Z","repository":{"id":341877846,"uuid":"1171376163","full_name":"nitrocloudofficial/nitrostack","owner":"nitrocloudofficial","description":"The full-stack TypeScript framework to build, test, and deploy production-ready MCP servers and AI-native apps.","archived":false,"fork":false,"pushed_at":"2026-03-03T14:02:26.000Z","size":14539,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-07T17:22:36.654Z","etag":null,"topics":["agentic-ai","ai","chatgpt","chatgpt-apps","claude","claude-apps","mcp","mcp-client","mcp-server","mcp-servers","mcp-tools","mcpagents","mcpapps","model-context-protocol","modelcontextprotocol"],"latest_commit_sha":null,"homepage":"https://nitrostack.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nitrocloudofficial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["nitrocloudofficial"],"custom":["https://github.com/sponsors/nitrocloudofficial","https://nitrostack.ai"]}},"created_at":"2026-03-03T06:51:16.000Z","updated_at":"2026-03-07T14:59:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nitrocloudofficial/nitrostack","commit_stats":null,"previous_names":["nitrocloudofficial/nitrostack"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nitrocloudofficial/nitrostack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitrocloudofficial%2Fnitrostack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitrocloudofficial%2Fnitrostack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitrocloudofficial%2Fnitrostack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitrocloudofficial%2Fnitrostack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nitrocloudofficial","download_url":"https://codeload.github.com/nitrocloudofficial/nitrostack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitrocloudofficial%2Fnitrostack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30297786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T13:46:43.843Z","status":"ssl_error","status_checked_at":"2026-03-09T13:46:42.821Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","ai","chatgpt","chatgpt-apps","claude","claude-apps","mcp","mcp-client","mcp-server","mcp-servers","mcp-tools","mcpagents","mcpapps","model-context-protocol","modelcontextprotocol"],"created_at":"2026-03-04T09:07:13.072Z","updated_at":"2026-03-09T14:01:19.180Z","avatar_url":"https://github.com/nitrocloudofficial.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://nitrostack.ai\"\u003e\n    \u003cimg src=\"logo.png\" alt=\"NitroStack\" width=\"120\" /\u003e\n  \u003c/a\u003e\n\n  \u003ch1\u003eNitroStack\u003c/h1\u003e\n\n  \u003cp\u003e\u003cstrong\u003eThe enterprise-grade TypeScript framework for building production-ready MCP servers.\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003eDecorators. Dependency Injection. Widgets. One framework to ship AI-native backends.\u003c/p\u003e\n\n  \u003cbr /\u003e\n\n  \u003ca href=\"https://www.npmjs.com/package/@nitrostack/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@nitrostack/core?style=flat-square\u0026label=%40nitrostack%2Fcore\u0026color=cb0000\" alt=\"npm version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@nitrostack/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@nitrostack/core?style=flat-square\u0026color=cb0000\" alt=\"npm downloads\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nitrocloudofficial/nitrostack\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/nitrocloudofficial/nitrostack?style=flat-square\u0026color=cb0000\" alt=\"GitHub stars\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue?style=flat-square\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/5fMj9FUA\"\u003e\u003cimg src=\"https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=flat-square\u0026logo=discord\u0026logoColor=white\" alt=\"Discord\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://x.com/nitrostackai\"\u003e\u003cimg src=\"https://img.shields.io/badge/Follow-000000?style=flat-square\u0026logo=x\u0026logoColor=white\" alt=\"X\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.youtube.com/@nitrostackai\"\u003e\u003cimg src=\"https://img.shields.io/badge/YouTube-Subscribe-FF0000?style=flat-square\u0026logo=youtube\u0026logoColor=white\" alt=\"YouTube\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://linkedin.com/company/nitrostack-ai/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-Follow-0A66C2?style=flat-square\u0026logo=linkedin\u0026logoColor=white\" alt=\"LinkedIn\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nitrostackai\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-Organization-181717?style=flat-square\u0026logo=github\u0026logoColor=white\" alt=\"GitHub\" /\u003e\u003c/a\u003e\n\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n\n  \u003ca href=\"https://docs.nitrostack.ai\"\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026middot;\u0026nbsp;\n  \u003ca href=\"https://docs.nitrostack.ai/quick-start\"\u003e\u003cstrong\u003eQuick Start\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026middot;\u0026nbsp;\n  \u003ca href=\"https://blog.nitrostack.ai\"\u003e\u003cstrong\u003eBlog\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026middot;\u0026nbsp;\n  \u003ca href=\"https://nitrostack.ai/studio\"\u003e\u003cstrong\u003eNitroStudio\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;\u0026middot;\u0026nbsp;\n  \u003ca href=\"https://discord.gg/5fMj9FUA\"\u003e\u003cstrong\u003eDiscord\u003c/strong\u003e\u003c/a\u003e\n\n  \u003cbr /\u003e\n  \u003cbr /\u003e\n\u003c/div\u003e\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- **Node.js** \u003e= 20.18 ([download](https://nodejs.org/))\n- **npm** \u003e= 9\n\n### 1. Scaffold a new project\n\n```bash\nnpx @nitrostack/cli init my-server\n```\n\n![NitroStack CLI](assets/gif/nitrocli.gif)\n\n### 2. Start developing\n\n```bash\ncd my-server\nnpm install\nnpm run dev\n```\n\nYour MCP server is running. Connect it to any MCP-compatible client.\n\n### 3. Open in NitroStudio\n\nOnce your project is scaffolded, open the same folder in NitroStudio for visual testing and debugging.\n\n- Download: \u003chttps://nitrostack.ai/studio\u003e\n- Open your `my-server` project folder\n- Use NitroStudio to test tools, inspect payloads, and chat with your MCP server\n\n## Why NitroStack?\n\nBuilding MCP servers today means stitching together boilerplate, reinventing authentication, and hoping your tooling scales. NitroStack gives you an opinionated, batteries-included framework so you can focus on what your server actually does.\n\n- **Decorator-driven** — Define tools, resources, and prompts with clean, declarative TypeScript decorators\n- **Dependency injection** — First-class DI container with singleton, transient, and scoped lifecycles\n- **Auth built in** — JWT, OAuth 2.1, and API key authentication out of the box\n- **Middleware pipeline** — Guards, interceptors, pipes, and exception filters just like enterprise backends\n- **UI Widgets** — Attach React components to tool outputs for rich, interactive responses\n- **Zod validation** — End-to-end type safety from schema to runtime\n- **NitroStudio** — A dedicated desktop app for testing, debugging, and chatting with your server\n\n## See It in Action\n\n```typescript\nimport { McpApp, Module, ToolDecorator as Tool, z, ExecutionContext } from '@nitrostack/core';\n\n@McpApp({\n  module: AppModule,\n  server: { name: 'my-server', version: '1.0.0' }\n})\n@Module({ imports: [] })\nexport class AppModule {}\n\nexport class SearchTools {\n  @Tool({\n    name: 'search_products',\n    description: 'Search the product catalog',\n    inputSchema: z.object({\n      query: z.string().describe('Search query'),\n      maxResults: z.number().default(10)\n    })\n  })\n  @UseGuards(ApiKeyGuard)\n  @Cache({ ttl: 300 })\n  @Widget('product-grid')\n  async search(input: { query: string; maxResults: number }, ctx: ExecutionContext) {\n    ctx.logger.info('Searching products', { query: input.query });\n    return this.productService.search(input.query, input.maxResults);\n  }\n}\n```\n\nOne decorator stack gives you: **API definition + validation + auth + caching + UI** — zero boilerplate.\n\n## Ecosystem\n\nNitroStack is modular. Install only what you need:\nThe implementation workspace for NitroStack packages lives in [`typescript/`](./typescript).\n\n| Package | What it does | Install |\n|:---|:---|:---|\n| [`@nitrostack/core`](./typescript/packages/core) | The framework — decorators, DI, server runtime | `npm i @nitrostack/core` |\n| [`@nitrostack/cli`](./typescript/packages/cli) | Scaffolding, dev server, code generators | `npm i -g @nitrostack/cli` |\n| [`@nitrostack/widgets`](./typescript/packages/widgets) | React SDK for interactive tool output UIs | `npm i @nitrostack/widgets` |\n\n## NitroStudio\n\nNitroStudio is a desktop app purpose-built for developing MCP servers. Open your project folder — it handles the dev server for you.\n\n![NitroStudio](assets/gif/nitrostudio-main.gif)\n\n**[Download NitroStudio](https://nitrostack.ai/studio)**\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Real-time tool testing**\nExecute tools, inspect payloads, and debug request/response cycles.\n\n![Testing](assets/gif/nitrostudio-testing.gif)\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n**Built-in AI chat**\nTalk to your MCP server through an integrated AI assistant.\n\n![AI Chat](assets/gif/nitrostudio-chat.gif)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n- **Widget preview** — Instantly visualize your interactive UI components\n- **Hot reload** — Changes reflect in real time as you develop\n\n## Documentation\n\n| Resource | Description |\n|:---|:---|\n| [Getting Started](https://docs.nitrostack.ai/getting-started) | Installation, quick start, and first project |\n| [Server Concepts](https://docs.nitrostack.ai/sdk/typescript/server-concepts) | Modules, DI, and architecture deep dive |\n| [Tools Guide](https://docs.nitrostack.ai/sdk/typescript/tools-guide) | Defining tools, validation, annotations |\n| [Widgets Guide](https://docs.nitrostack.ai/sdk/typescript/ui-widgets-guide) | Building interactive UI components |\n| [Authentication](https://docs.nitrostack.ai/sdk/typescript/authentication-overview) | JWT, OAuth 2.1, API key setup |\n| [CLI Reference](https://docs.nitrostack.ai/cli/introduction) | All CLI commands and options |\n| [Deployment](https://docs.nitrostack.ai/deployment/checklist) | Production checklist, Docker, cloud platforms |\n\n## Community\n\n- [Discord](https://discord.gg/5fMj9FUA) — Ask questions, share projects, get help\n- [GitHub Discussions](https://github.com/nitrocloudofficial/nitrostack/discussions) — Proposals, ideas, and Q\u0026A\n- [Twitter / X](https://x.com/nitrostackai) — Announcements and updates\n- [YouTube](https://www.youtube.com/@nitrostackai) — Product demos and walkthroughs\n- [LinkedIn](https://linkedin.com/company/nitrostack-ai/) — Company news and updates\n- [GitHub](https://github.com/nitrostackai) — Organization profile and open-source work\n- [Blog](https://blog.nitrostack.ai) — Tutorials, deep dives, and release notes\n\n## Contributing\n\nWe welcome contributions of all kinds — bug fixes, features, docs, and ideas. Read the **[Contributing Guide](./CONTRIBUTING.md)** to get started.\n\nLooking for a place to begin? Check out issues labeled [**good first issue**](https://github.com/nitrocloudofficial/nitrostack/labels/good%20first%20issue).\n\n## Contributors\n\n\u003ca href=\"https://github.com/nitrocloudofficial/nitrostack/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=nitrocloudofficial/nitrostack\" alt=\"Contributors\" /\u003e\n\u003c/a\u003e\n\n## License\n\nNitroStack is open-source software licensed under the [Apache License 2.0](./LICENSE).\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eBuilt by the \u003ca href=\"https://nitrostack.ai\"\u003eNitroStack\u003c/a\u003e team and contributors.\u003c/sub\u003e\n\u003c/div\u003e\n","funding_links":["https://github.com/sponsors/nitrocloudofficial","https://nitrostack.ai"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrocloudofficial%2Fnitrostack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitrocloudofficial%2Fnitrostack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrocloudofficial%2Fnitrostack/lists"}