Patchbowl MCP Server Template
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
🥣 Patchbowl MCP Server Template
Start a new MCP server in TypeScript in about a minute.
Typed tools, real tests, CI and a Patchbowl catalog entry, ready to go.
What you get
The current MCP SDK. Built on
@modelcontextprotocol/serverv2, the stable line of the official TypeScript SDK.Two example tools.
greet(the smallest useful tool) andword-count(structured output with anoutputSchema). Copy one to start your own.Tests that use a real client. In-process tests through the SDK
Client, plus one test that spawns the built server over stdio, exactly like Claude or Cursor would.CI on Node 20, 22 and 24. Typecheck, build and test on every push and PR.
Works in every MCP client. Claude Code, Claude Desktop, Cursor, Cline, Windsurf, Zed and anything else that speaks stdio MCP.
Patchbowl ready.
patchbowl.yamlis your catalog entry, so your server can be one click to install in Patchbowl.Agent friendly.
AGENTS.md(andCLAUDE.md) tell AI coding agents how this repo works, so they add tools the right way.
Related MCP server: xmcp Application
Create your server
Click Use this template on GitHub, or:
gh repo create my-mcp-server --template patchbowl/mcp-server-template --public --clone
cd my-mcp-server
npm install
npm testThen rename the template bits:
File | Change |
|
|
|
|
| the log prefix |
| every field |
| this file |
Develop
npm run dev # run from source (tsx), speaks MCP on stdio
npm run inspect # build and open the MCP Inspector in your browser
npm test # build, then run every test
npm run typecheck # types onlynpm run inspect is the fastest way to poke at your tools: it opens a web UI where you can list tools and call them by hand.
Add a tool
Copy
src/tools/greet.tstosrc/tools/my-tool.tsand rename the function.Register it in
createServer()insrc/server.ts.Add a test in
test/server.test.ts.
server.registerTool(
'my-tool',
{
description: 'What this tool does, written for the model.',
inputSchema: z.object({
query: z.string().describe('What the model should pass here'),
}),
annotations: { readOnlyHint: true },
},
async ({ query }) => ({
content: [{ type: 'text', text: `You asked for ${query}` }],
}),
);The one Zod schema gives you the JSON Schema the model sees, argument validation before your handler runs, and typed arguments in the handler.
Three rules that save hours
Never write to stdout. It carries the MCP protocol, so one stray
console.logbreaks the connection. Log withconsole.error.Describe every field.
.describe()text is the only documentation the model gets for an argument.Return errors, don't throw them. For expected failures return
{ content: [...], isError: true }so the model can read the message and try again.
Secrets
Read API keys from process.env inside your tool handlers, and list each one under secrets in patchbowl.yaml. Patchbowl stores them encrypted and injects them at runtime, so they never sit in plaintext in a client config.
Connect it to a client
Build first (npm run build), then point your client at dist/index.js with an absolute path.
Claude Code
claude mcp add my-mcp-server -- node /absolute/path/to/my-mcp-server/dist/index.jsClaude Desktop, Cursor, Cline and Windsurf all use the same mcpServers shape:
{
"mcpServers": {
"my-mcp-server": {
"command": "node",
"args": ["/absolute/path/to/my-mcp-server/dist/index.js"],
"env": { "EXAMPLE_API_KEY": "..." }
}
}
}Client | Config file |
Claude Desktop | Settings → Developer → Edit Config ( |
Cursor |
|
Cline | MCP Servers panel → Configure ( |
Windsurf |
|
Or skip the config files entirely: add your server to Patchbowl and it writes all of them for you.
Publish
npm login
npm publish --access publicOnce it is on npm, anyone can run it with npx -y <your-package>, and you can update source and runtime in patchbowl.yaml to match.
Add it to the Patchbowl catalog
Copy patchbowl.yaml to catalog/<id>.yaml in patchbowl/patchbowl and open a PR. See the catalog guide for the schema.
Project layout
src/
index.ts stdio entry point
server.ts createServer(): registers every tool
tools/
greet.ts smallest useful tool
word-count.ts tool with structured output
test/
server.test.ts in-process tests through a real Client
stdio.test.ts spawns dist/index.js over stdio
patchbowl.yaml Patchbowl catalog entry
AGENTS.md guide for AI coding agentsStandards
Every PatchBowl connector meets the Connector Standards: how to handle secrets, set tool annotations, treat untrusted content, manage dependencies and test. Read them before you publish, and use the checklist at the end when you ask for a catalog verified: true badge.
Contributing, security reporting and conduct follow the PatchBowl community files.
Learn more
License
MIT. Build whatever you like on top of it.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Verified component catalog over remote MCP: agents pick component ids and get a stamped project repo that builds. Connect at https://www.botkelp.com/mcp. Auth: MCP OAuth 2.1, or a Bearer bk_live_ API key; initialize and tools/list are open.
Generate a typed SDK, CLI, and MCP server from any OpenAPI or GraphQL spec, and keep them current.
Kickstart development with a customizable TypeScript template featuring sample tools for greeting,…
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA production-ready starter template for building Model Context Protocol (MCP) servers with TypeScript. Includes automated tooling for creating new MCP tools, testing, and deployment to Claude Desktop.177 npm-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server template designed for building structured tools, prompts, and resources with built-in support for HTTP and STDIO transports. It provides a standardized framework for developers to create and deploy AI-driven services using TypeScript and Zod schema validation.4 npm-
- FlicenseAqualityDmaintenanceA TypeScript MCP server template with Zod validation, dual transport (stdio/HTTP), and modular architecture for building MCP-compatible tools, resources, and prompts.11-
- AlicenseNot gradedqualityDmaintenanceA template for building MCP servers with automatic tool discovery using TypeScript and Zod schemas, supporting HTTP and STDIO transports.29,793 npmMIT