mcp-builder-ms
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate exte...
What this skill does
# MCP Server Development Guide ## When to Use Use this skill when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK). ## Overview Create MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. The quality of an MCP server is measured by how well it enables LLMs to accomplish real-world tasks. --- ## Microsoft MCP Ecosystem Microsoft provides extensive MCP infrastructure for Azure and Foundry services. Understanding this ecosystem helps you decide whether to build custom servers or leverage existing ones. ### Server Types | Type | Transport | Use Case | Example | |------|-----------|----------|---------| | **Local** | stdio | Desktop apps, single-user, local dev | Azure MCP Server via NPM/Docker | | **Remote** | Streamable HTTP | Cloud services, multi-tenant, Agent Service | `https://mcp.ai.azure.com` (Foundry) | ### Microsoft MCP Servers Before building a custom server, check if Microsoft already provides one: | Server | Type | Description | |--------|------|-------------| | **Azure MCP** | Local | 48+ Azure services (Storage, KeyVault, Cosmos, SQL, etc.) | | **Foundry MCP** | Remote | `https://mcp.ai.azure.com` - Models, deployments, evals, agents | | **Fabric MCP** | Local | Microsoft Fabric APIs, OneLake, item definitions | | **Playwright MCP** | Local | Browser automation and testing | | **GitHub MCP** | Remote | `https://api.githubcopilot.com/mcp` | **Full ecosystem:** See π· Microsoft MCP Patterns for complete server catalog and patterns. ### When to Use Microsoft vs Custom | Scenario | Recommendation | |----------|----------------| | Azure service integration | Use **Azure MCP Server** (48 services covered) | | AI Foundry agents/evals | Use **Foundry MCP** remote server | | Custom internal APIs | Build **custom server** (this guide) | | Third-party SaaS integration | Build **custom server** (this guide) | | Extending Azure MCP | Follow Microsoft MCP Patterns --- # Process ## π High-Level Workflow Creating a high-quality MCP server involves four main phases: ### Phase 1: Deep Research and Planning #### 1.1 Understand Modern MCP Design **API Coverage vs. Workflow Tools:** Balance comprehensive API endpoint coverage with specialized workflow tools. Workflow tools can be more convenient for specific tasks, while comprehensive coverage gives agents flexibility to compose operations. Performance varies by clientβsome clients benefit from code execution that combines basic tools, while others work better with higher-level workflows. When uncertain, prioritize comprehensive API coverage. **Tool Naming and Discoverability:** Clear, descriptive tool names help agents find the right tools quickly. Use consistent prefixes (e.g., `github_create_issue`, `github_list_repos`) and action-oriented naming. **Context Management:** Agents benefit from concise tool descriptions and the ability to filter/paginate results. Design tools that return focused, relevant data. Some clients support code execution which can help agents filter and process data efficiently. **Actionable Error Messages:** Error messages should guide agents toward solutions with specific suggestions and next steps. #### 1.2 Study MCP Protocol Documentation **Navigate the MCP specification:** Start with the sitemap to find relevant pages: `https://modelcontextprotocol.io/sitemap.xml` Then fetch specific pages with `.md` suffix for markdown format (e.g., `https://modelcontextprotocol.io/specification/draft.md`). Key pages to review: - Specification overview and architecture - Transport mechanisms (streamable HTTP, stdio) - Tool, resource, and prompt definitions #### 1.3 Study Framework Documentation **Language Selection:** | Language | Best For | SDK | |----------|----------|-----| | **TypeScript** (recommended) | General MCP servers, broad compatibility | `@modelcontextprotocol/sdk` | | **Python** | Data/ML pipelines, FastAPI integration | `mcp` (FastMCP) | | **C#/.NET** | Azure/Microsoft ecosystem, enterprise | `Microsoft.Mcp.Core` | **Transport Selection:** | Transport | Use Case | Characteristics | |-----------|----------|-----------------| | **Streamable HTTP** | Remote servers, multi-tenant, Agent Service | Stateless, scalable, requires auth | | **stdio** | Local servers, desktop apps | Simple, single-user, no network | **Load framework documentation:** - **MCP Best Practices**: π View Best Practices - Core guidelines **For TypeScript (recommended):** - **TypeScript SDK**: Use WebFetch to load `https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md` - β‘ TypeScript Guide - TypeScript patterns and examples **For Python:** - **Python SDK**: Use WebFetch to load `https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md` - π Python Guide - Python patterns and examples **For C#/.NET (Microsoft ecosystem):** - π· Microsoft MCP Patterns - C# patterns, Azure MCP architecture, command hierarchy #### 1.4 Plan Your Implementation **Understand the API:** Review the service's API documentation to identify key endpoints, authentication requirements, and data models. Use web search and WebFetch as needed. **Tool Selection:** Prioritize comprehensive API coverage. List endpoints to implement, starting with the most common operations. --- ### Phase 2: Implementation #### 2.1 Set Up Project Structure See language-specific guides for project setup: - β‘ TypeScript Guide - Project structure, package.json, tsconfig.json - π Python Guide - Module organization, dependencies - π· Microsoft MCP Patterns - C# project structure, command hierarchy #### 2.2 Implement Core Infrastructure Create shared utilities: - API client with authentication - Error handling helpers - Response formatting (JSON/Markdown) - Pagination support #### 2.3 Implement Tools For each tool: **Input Schema:** - Use Zod (TypeScript) or Pydantic (Python) - Include constraints and clear descriptions - Add examples in field descriptions **Output Schema:** - Define `outputSchema` where possible for structured data - Use `structuredContent` in tool responses (TypeScript SDK feature) - Helps clients understand and process tool outputs **Tool Description:** - Concise summary of functionality - Parameter descriptions - Return type schema **Implementation:** - Async/await for I/O operations - Proper error handling with actionable messages - Support pagination where applicable - Return both text content and structured data when using modern SDKs **Annotations:** - `readOnlyHint`: true/false - `destructiveHint`: true/false - `idempotentHint`: true/false - `openWorldHint`: true/false --- ### Phase 3: Review and Test #### 3.1 Code Quality Review for: - No duplicated code (DRY principle) - Consistent error handling - Full type coverage - Clear tool descriptions #### 3.2 Build and Test **TypeScript:** - Run `npm run build` to verify compilation - Test with MCP Inspector: `npx @modelcontextprotocol/inspector` **Python:** - Verify syntax: `python -m py_compile your_server.py` - Test with MCP Inspector See language-specific guides for detailed testing approaches and quality checklists. --- ### Phase 4: Create Evaluations After implementing your MCP server, create comprehensive evaluations to test its effectiveness. **Load β Evaluation Guide for complete evaluation guidelines.** #### 4.1 Understand Evaluation Purpose Use evaluations to test whether LLMs can effectively use your MCP server to answer realistic, complex questions. #### 4.2 Create 10 Evaluation Questions To create effective evaluations, follow the process outlined in the evaluation guide: 1. **Tool Inspection**: List available tools and understand their capabilities 2. **Content Exploration**: Use READ-ONLY operations to explore available data 3. **Question Generation**: Create 10 complex, realistic questions 4. **Answer Verification**: Solve each
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts β single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score β₯ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.