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).
npx claudepluginhub viktorbezdek/skillstack --plugin mcp-serverThis skill uses the workspace's default tool permissions.
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.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
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.
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-code