Solo engineer · 2025
MCP Server Starter Template
A production-ready template that collapses the first 3 hours of MCP server setup to a single clone.
Every MCP server project was restarting from zero. Auth wiring, structured logging, error handling, CI configuration. Teams were copying toy-example patterns and missing the production concerns entirely.
Designed a minimal-but-complete TypeScript template with OAuth2 placeholder, structured logging, typed MCP handlers, and a GitHub Actions workflow with eval smoke tests baked in.
Used internally as the starting point for MCP server projects, eliminating the repetitive setup phase and ensuring production concerns are present from day one rather than retrofitted later.
The first time you build an MCP server from scratch, most of the work is not MCP. It’s OAuth2 wiring, structured logging, consistent error handling, CI configuration, and the decision about whether to validate inputs with Zod or trust the SDK. Every project restarts that conversation from zero. Teams without a reference pattern often copy the toy examples from the official docs, which are complete enough to demonstrate the protocol but missing every production concern.
The template resolves those decisions once. OAuth2 placeholder is wired in the right place with clear extension points. Logging is structured and keyed to request IDs so traces are correlatable. MCP handlers are typed against the SDK’s expected signatures. The GitHub Actions workflow includes an eval smoke test so regressions in handler behavior are caught before merge, not after deployment.
The deliberate constraint was minimalism. Every line in the template has to earn its place. A template that starts heavy creates a different kind of problem: teams strip out what they don’t understand and leave behind what they don’t recognize as optional. The goal was a template where every included piece is clearly load-bearing and every omitted piece is a deliberate gap to fill, not an oversight.