Install
npm install && npm run buildMCP Starter Kit is a project-agnostic scaffold for setting up a secure, production-ready MCP (Model Context Protocol) server for any project: each tool maps to a backend endpoint, authentication is handled with API key + scopes, and AI agents (Claude Desktop/Web, ChatGPT, or self-built agents) are bridged to your backend API. If you just want to try ready-made tools, it isn't for you; it requires you to have a backend API, be able to host the service, and accept a build-and-deploy workflow.
Who It's For
- Developers who want their backend API to be safely callable by agents such as Claude or ChatGPT.
- Teams that need one tool per endpoint, with permissions controlled via API key + scopes; read-only by default unless a write scope is explicitly added.
- Scenarios that need both online (Streamable HTTP, multi-client) access and Claude Desktop (stdio), or both stateless OAuth 2.0 (PKCE S256) and header API key authentication.
- Not suitable for: users without a backend API, without TLS hosting capability, or who don't want to make any code or configuration changes. The official documentation does not detail hosting costs or runtime environment requirements; these unknowns need to be confirmed on your own.
First Attempt in 3 Minutes
For your first attempt, it's recommended to start by building the scaffold itself and getting connected (actual endpoint calls happen only after you configure your tools):
- Prerequisites: Node/npm installed; a TLS-capable domain ready (the service must be hosted behind TLS, at the path
/mcp). - Follow the README's template path: go into
templates/, renamegitignoreto.gitignore, replace__PROJECT__with your project name, fill in.env, and add your tools insrc/server.ts. - Run the officially provided build command:
npm install && npm run build
- Host the service behind TLS (path
/mcp), then connect from Claude Desktop using mcp-remote and verify once (connection initialization is a low-risk action; the key is validated against the backend atinitialize):
npx -y mcp-remote https://<domain>/mcp --header "Authorization: Bearer <key>"
Success signal: the client completes initialize and the backend key validation passes (the official docs explicitly state this blocks unauthenticated requests at initialization). For Claude Web, use a custom connector with the URL /mcp and the x-api-key header. Note: the <domain> and <key> in the commands above are real values you must replace; filling secrets into .env is a local state write, not a read-only operation.
Use Cases
- Call your backend's read-only endpoints with Claude Desktop: after completing the build and TLS hosting as in the main path above, connect from Claude Desktop to
/mcpwith mcp-remote using a Bearer key. Since it's read-only by default, calls won't trigger backend write operations unless you explicitly add a write scope — this is the officially stated behavior, but it is not the same as zero risk; the key is still validated against the backend and passed through mcp-remote. - Connect the same service via a Claude Web custom connector: configure a custom connector in Claude Web using the URL
/mcpwith thex-api-keyheader. You can verify up to the connection being established; the exact output format of a given tool depends on how you implement that tool insrc/server.ts. The official evidence provides no concrete tool examples, so nothing further can be predicted.
Usage Boundaries
- Read/write nature: the template is read-only by default; write capability requires explicitly adding a scope. Write operations are remote writes, so confirm side effects before executing them.
- Credentials: authentication uses an API key (or optionally stateless OAuth 2.0 PKCE S256);
.envmust be filled in with configuration and constitutes local sensitive state. - Logging: audit logs are written to stderr, with stdout reserved for JSON-RPC; mind the channel distinction when debugging.
- Security mechanism boundaries: the key is validated at
initializeto block unauthenticated abuse; the read-only default and theinitializevalidation mean only that no write operations are executed and the key is checked — they do not mean no network access occurs or that no other privacy boundaries exist. - Unconfirmed information: the official evidence does not cover detailed client configuration file formats, hosting platform requirements, or concrete endpoint/tool implementation examples; you need to consult the repository and confirm these yourself before first use.