🧬 The ultimate MCP server starter kit — Python, TypeScript, and Go in one repo. Build MCP servers in minutes.
Stop boilerplate. Start building.
mcp-genesis is the only starter kit that gives you a fully-working MCP server in three languages, with the same tool definitions, the same conventions, and the same genesis new command to scaffold yours.
🤔 What is MCP?
The Model Context Protocol (MCP) is the open standard for connecting AI assistants to data sources, tools, and APIs. Think of it as USB-C for AI — a single port that lets any LLM talk to anything.
This repo gives you production-ready scaffolding to build your own MCP server in Python, TypeScript, or Go.
⚡ Quick Start
Scaffold a new server (any language)
npx mcp-genesis new my-server --lang python
npx mcp-genesis new my-server --lang typescript
npx mcp-genesis new my-server --lang go
You get a complete project with:
- ✅ Three working example tools
- ✅ stdio + SSE transports configured
- ✅ Auth middleware stub
- ✅ Structured logging
- ✅ Tests
- ✅ Dockerfile
- ✅ One-line Claude Desktop config example
Or clone and study
git clone https://github.com/kasimmj/mcp-genesis
cd mcp-genesis/python && python -m mcp_genesis.server
cd mcp-genesis/typescript && npm install && npm run dev
cd mcp-genesis/go && go run ./cmd/genesis
📂 Repo Layout
mcp-genesis/
├── python/ # Reference server in Python
│ ├── mcp_genesis/
│ │ ├── server.py
│ │ ├── tools.py
│ │ └── transports.py
│ └── pyproject.toml
├── typescript/ # Reference server in TypeScript
│ ├── src/
│ │ ├── server.ts
│ │ ├── tools.ts
│ │ └── transports.ts
│ └── package.json
├── go/ # Reference server in Go
│ ├── cmd/genesis/
│ └── go.mod
├── templates/ # Skeleton templates used by `genesis new`
├── examples/ # Real-world example servers
└── docs/ # Protocol notes, design decisions
All three implementations expose the same three example tools, so you can compare implementations apples-to-apples.
🛠️ Built-in Example Tools
| Tool | What it does |
|------|--------------|
| echo | Returns the input string. Useful smoke test. |
| now | Returns the current ISO-8601 timestamp + timezone. |
| read_file | Reads a file path with path-traversal protection and 1 MB cap. |
Each tool is implemented identically across all three languages.
🌐 Supported Languages
🐍 Python
from mcp_genesis import Server, tool
server = Server(name="genesis", version="0.1.0")
@tool
def echo(text: str) -> str:
"""Return the input string unchanged."""
return text
if __name__ == "__main__":
server.run_stdio()
🟦 TypeScript
import { Server, tool } from "mcp-genesis";
const server = new Server({ name: "genesis", version: "0.1.0" });
server.addTool(tool({
name: "echo",
description: "Return the input string unchanged.",
parameters: { text: { type: "string" } },
handler: ({ text }) => text,
}));
server.runStdio();
🐹 Go
package main
import "github.com/kasimmj/mcp-genesis/go/pkg/genesis"
func main() {
s := genesis.New("genesis", "0.1.0")
s.AddTool(genesis.Tool{
Name: "echo",
Description: "Return the input string unchanged.",
Handler: func(args map[string]any) (any, error) {
return args["text"], nil
},
})
s.RunStdio()
}
🔀 Side-by-side
| | Python | TypeScript | Go | |----------------------|---------------------|---------------------|---------------------| | Bundle size | ~150 KB | ~80 KB | ~5 MB (binary) | | Cold start | ~80 ms | ~120 ms | ~5 ms | | Best for | Data tools, AI utils | Web integrations | High-throughput, edge| | Auth helpers | ✅ | ✅ | ✅ | | Stdio transport | ✅ | ✅ | ✅ | | SSE transport | ✅ | ✅ | ✅ | | Docker image | python:3.12-slim | node:20-alpine | scratch + binary |
Pick the one that matches your team's stack. The protocol is the same; the ergonomics differ.
🧪 Connect to Claude Desktop
After running your server, add this to your Claude Desktop config:
{
"mcpServers": {
"genesis-python": {
"command": "python",
"args": ["-m", "mcp_genesis.server"]
}
}
}
Restart Claude Desktop → your tools appear in the picker.
📚 Docs
🤝 Contributing
We're looking for:
- New examples in
examples/(database connectors, SaaS integrations, file utils) - Bug reports for any of the three reference implementations
- Translations of docs
See CONTRIBUTING.md.
📜 License
MIT © 2026 Kasim Mohammed
Star ⭐ to bookmark for your next MCP project.