MCP Builder
Create MCP servers that let agents interact with external services through clean tools.
Process
1. Research
- Review the MCP specification at
https://modelcontextprotocol.io/sitemap.xml. - Fetch the TypeScript or Python SDK README from GitHub.
- Read the target API docs to identify endpoints, auth, pagination, and data models.
2. Plan
- List the tools to implement. Prefer comprehensive API coverage over one-off workflow tools.
- Use consistent, action-oriented names with prefixes, e.g.
github_create_issue,github_list_repos. - Decide transport: streamable HTTP for remote, stdio for local.
3. Implement
TypeScript (default)
- Use the MCP SDK with Zod for input schemas.
- Define
outputSchemaandstructuredContentwhere supported. - Annotate tools with
readOnlyHint,destructiveHint,idempotentHint,openWorldHint.
Python
- Use FastMCP with Pydantic models.
- Add
@mcp.tool()decorators.
Shared rules:
- Async I/O for network calls.
- Actionable error messages.
- Pagination on list operations.
- Return both text and structured data when possible.
4. Test
- Build and run the server.
- Test with the MCP Inspector:
npx @modelcontextprotocol/inspector
5. Evaluate
Create 10 read-only, complex, realistic questions that require multiple tool calls. Verify answers yourself. Store as evals.xml or evals/evals.json.
Reference
references/mcp-best-practices.md— server and tool conventionsreferences/node-mcp-server.md— TypeScript patternsreferences/python-mcp-server.md— Python patternsreferences/evaluation.md— evaluation guidelines