MCP Server Scaffolder
A list of tools in, a complete MCP server skeleton out in TypeScript or Python, with the client entry that registers it and the transport wiring already written.
6 arguments across them. Every tool is offered to the model on every request the client makes, so its name and description are a recurring cost as well as a recurring decision.
- Tools
- 3
- Arguments
- 6
- Tools with no description
- 0
- Generated characters
- 2,670
- Problems found
- 0
TODO — a scaffolder that invented argument descriptions would be writing the most important part of the file for you, badly. Names are checked against the character set clients accept and the code is generated against the SDKs' high-level server API, but nothing here is executed, installed or type-checked, so “it compiles” is a claim this page cannot make. The stdio warning in the generated file is not decoration: stdout is the protocol. Everything on this page runs in your browser. Nothing you paste is uploaded, logged or sent anywhere.Most of the work in a first MCP server is not the tools. It is the twenty lines of wiring that differ between transports, the client entry whose exact shape you have to look up, and the discovery that your console.log debugging has been corrupting the protocol stream all along — stdio servers speak JSON-RPC on stdout, so anything else written there breaks every message. That is why the generated file says so in a comment rather than in a paragraph you would read once.
Where the effort actually goes
Into the descriptions. A tool is chosen by a model reading a name, a sentence and an argument list, so “cancel_order — cancels an order” is not a description, it is a restatement. The useful version says when to call it and when not to: that it is for orders that have not shipped, that it cannot be undone, that the user should confirm first. This page leaves every argument description as a marked TODO for exactly that reason.
Local or remote
stdio means the client starts your server as a subprocess on the same machine, which is simple and inherits whatever credentials that machine has. Streamable HTTP means it is a service, reachable by anything that can reach the URL — which is a much larger question about who may call your tools, and one no scaffolder can answer for you. Start with stdio; move when you have a reason and an answer.