From mcp-server
MCP (Model Context Protocol) server development — use when the user mentions MCP, Model Context Protocol, FastMCP, MCP server, MCP tool, Claude Code plugin, or building agent tools with MCP. Covers server implementation in Python or TypeScript, evaluation testing, production deployment, and plugin packaging. NOT for designing tool interfaces or tool consolidation patterns for agents (use tool-design), NOT for prompt engineering or prompt optimization (use prompt-engineering).
How this skill is triggered — by the user, by Claude, or both
Slash command
/mcp-server:mcp-serverThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive skill for developing Model Context Protocol (MCP) servers. MCP is a standardized protocol that enables AI agents (like Claude) to access external tools, data sources, and services through a unified interface.
assets/tools.jsonreferences/accessing_online_resources.mdreferences/api-comparison.mdreferences/architecture_patterns.mdreferences/best-practices.mdreferences/best_practices.mdreferences/building-servers.mdreferences/claude-code-docs/amazon-bedrock.mdreferences/claude-code-docs/analytics.mdreferences/claude-code-docs/checkpointing.mdreferences/claude-code-docs/cli-reference.mdreferences/claude-code-docs/common-workflows.mdreferences/claude-code-docs/costs.mdreferences/claude-code-docs/data-usage.mdreferences/claude-code-docs/devcontainer.mdreferences/claude-code-docs/github-actions.mdreferences/claude-code-docs/gitlab-ci-cd.mdreferences/claude-code-docs/google-vertex-ai.mdreferences/claude-code-docs/headless.mdreferences/claude-code-docs/hooks-guide.mdComprehensive skill for developing Model Context Protocol (MCP) servers. MCP is a standardized protocol that enables AI agents (like Claude) to access external tools, data sources, and services through a unified interface.
Covers: MCP protocol fundamentals, building servers in Python (FastMCP) and TypeScript, agent-centric tool design, Claude Code integration (plugins, skills, hooks), production deployment, evaluation-driven development, and plugin packaging.
Use this skill when:
Choose Python (FastMCP) when: Primary codebase is Python, integrating with data science/ML, or need rapid prototyping.
Choose TypeScript when: Primary codebase is Node.js/TypeScript, building full-stack apps, or need advanced type safety.
from fastmcp import FastMCP
from pydantic import Field
from typing import Annotated
mcp = FastMCP("my-server")
@mcp.tool()
def search_items(
query: str,
limit: Annotated[int, Field(ge=1, le=100)] = 10
) -> dict:
"""Search for items matching the query."""
results = perform_search(query, limit)
return {"results": results, "count": len(results)}
@mcp.resource("data://config")
def get_config() -> dict:
return {"setting": "value"}
if __name__ == "__main__":
mcp.run() # STDIO transport (default)
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "my-server", version: "1.0.0" });
server.registerTool("search_items", {
title: "Search Items",
description: "Search for items matching the query",
inputSchema: z.object({
query: z.string(),
limit: z.number().int().min(1).max(100).default(10),
}).strict(),
annotations: { readOnlyHint: true },
}, async (params) => {
const results = await performSearch(params.query, params.limit);
return { content: [{ type: "text", text: JSON.stringify({ results, count: results.length }, null, 2) }] };
});
const transport = new StdioServerTransport();
await server.connect(transport);
| Component | Purpose | Example |
|---|---|---|
| Tools | Executable functions for AI to call | search_repos, create_issue |
| Resources | Read-only data sources | data://config, file://readme.md |
| Prompts | Reusable prompt templates | explain_code, summarize_document |
| Transport | Use Case |
|---|---|
| STDIO | Local processes, Claude Desktop (default, most common) |
| HTTP | Remote services, REST APIs |
| SSE | Real-time streaming updates |
{
"mcpServers": {
"server-name": {
"command": "python",
"args": ["-m", "my_server"],
"env": {"API_KEY": "${ENV_VAR}"}
}
}
}
{service}_{action}_{resource}Field() with constraints.strict()destructiveHint annotation for state-changing toolsSee Extended Patterns for the full development workflow, Claude Code plugin integration, evaluation creation, complete reference file listings, and script documentation.
https://modelcontextprotocol.io/llms-full.txthttps://github.com/jlowin/fastmcphttps://docs.anthropic.com/claude-codenpx claudepluginhub viktorbezdek/skillstack --plugin mcp-serverProvides patterns, architecture diagrams, and decision trees for building, testing, and deploying Model Context Protocol (MCP) servers in Python and TypeScript with tools, resources, prompts, and transports like stdio, SSE, streamable HTTP.
Guides building MCP (Model Context Protocol) servers in Python and TypeScript to give Claude new tools, resources, and prompts.
Builds MCP servers and tools from scratch using TypeScript or Python. Covers specification, tool schema design, implementation, testing, deployment, and registry publishing.