mcp-builder

Guides building and evaluating MCP servers in Python or TypeScript.

2|Updated May 30, 2026
One-click install
npx skills add https://github.com/virahitvin8/crafty-gis --skill mcp-builder-virahitvin8
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mcp-builder
Source: https://github.com/virahitvin8/crafty-gis/tree/main/GIT_STAR/assignment-generator/antigravity-skills-main/antigravity-skills-main/skills/mcp-builder
Command: npx skills add https://github.com/virahitvin8/crafty-gis --skill mcp-builder-virahitvin8

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires anthropic, mcp, and includes scripts (resource) and references (resource) components.

What problem does it solve? Building MCP (Model Context Protocol) servers that LLMs can actually use effectively requires careful tool design, schema validation, transport selection, and evaluation—this Skill provides a structured four-phase workflow covering research, implementation, review, and evaluation. ## Core Features & Use Cases - End-to-End MCP Development Workflow: Walks through research, planning, implementation, testing, and evaluation phases for MCP servers in Python (FastMCP) or TypeScript (MCP SDK). - Language-Specific Reference Guides: Includes detailed implementation guides covering Zod/Pydantic schemas, tool registration, pagination, error handling, and transport configuration (stdio vs streamable HTTP). - Evaluation Harness: Ships Python scripts to create XML-based evaluation question sets and run automated LLM-based tests against your MCP server with accuracy reports. - Use Case: You want to expose the GitHub API to an LLM agent. Use this Skill to design well-named tools with proper annotations, implement them in TypeScript, then generate 10 complex evaluation questions and measure how well an LLM answers them using only your server. ## Quick Start Ask the AI to help you build an MCP server for your chosen API, specifying whether you want Python or TypeScript.

Frequently Asked Questions about mcp-builder

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build an MCP server in TypeScript?

Use the MCP TypeScript SDK's McpServer class and registerTool method with Zod schemas for input validation. Initialize the server with a name following the {service}-mcp-server convention, then connect via StdioServerTransport for local use or StreamableHTTPServerTransport for remote deployment.

Should I use Python or TypeScript for an MCP server?

TypeScript is recommended due to high-quality SDK support, static typing, and strong linting tools, though Python with FastMCP is fully supported. Both languages have official SDKs with tool registration, schema validation, and multiple transport options.

What is the difference between stdio and streamable HTTP transports in MCP?

Stdio runs the server as a local subprocess for single-client command-line scenarios, while streamable HTTP deploys the server as a web service supporting multiple simultaneous clients. Streamable HTTP is preferred for remote servers; SSE is deprecated in favor of it.

How do I test whether my MCP server works well with LLMs?

Create an XML evaluation file with 10 complex, read-only questions having single verifiable answers, then run the evaluation.py script against your server. The harness uses Claude to attempt each question and reports accuracy, tool call counts, and per-task feedback.

What makes a good MCP tool description?

Tool descriptions should concisely state functionality, document all parameters with types and constraints, and specify the return value schema. Include usage examples, error conditions, and annotations like readOnlyHint and destructiveHint so agents can select tools correctly.

Why do MCP evaluation questions need stable answers?

Evaluation answers must remain constant over time so results are reproducible via direct string comparison. Questions based on current state like open issue counts become invalid as data changes, so evaluations should target historical or closed data.