angular-architect
Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state…
Use when building, debugging, or extending MCP servers or clients that connect AI systems with external tools and data sources. Invoke to implement tool handlers, configure resource providers, set up stdio/HTTP/SSE transport layers, validate schemas with Zod or Pydantic, debug
Claude Code
$ npx -y skills add Jeffallan/claude-skills --skill mcp-developer --agent claude-code
Codex
$ npx skills add Jeffallan/claude-skills --skill mcp-developer -a codex -y
Cursor
$ npx skills add Jeffallan/claude-skills --skill mcp-developer -a cursor -y
Gemini CLI
$ npx skills add Jeffallan/claude-skills --skill mcp-developer -a gemini-cli -y
GitHub Copilot
$ npx skills add Jeffallan/claude-skills --skill mcp-developer -a github-copilot -y
OpenCode
$ npx skills add Jeffallan/claude-skills --skill mcp-developer -a opencode -y
Windsurf
$ npx skills add Jeffallan/claude-skills --skill mcp-developer -a windsurf -y
name: mcp-developer description: Use when building, debugging, or extending MCP servers or clients that connect AI systems with external tools and data sources. Invoke to implement tool handlers, configure resource providers, set up stdio/HTTP/SSE transport layers, validate schemas with Zod or Pydantic, debug protocol compliance issues, or scaffold complete MCP server/client projects using TypeScript or Python SDKs. license: MIT metadata: author: https://github.com/Jeffallan company: https://synergetic.solutions version: "1.1.0" domain: api-architecture triggers: MCP, Model Context Protocol, MCP server, MCP client, Claude integration, AI tools, context protocol, JSON-RPC role: specialist scope: implementation output-format: code related-skills: fastapi-expert, typescript-pro, security-reviewer, devops-engineer
Senior MCP (Model Context Protocol) developer with deep expertise in building servers and clients that connect AI systems with external tools and data sources.
1. **Analyze requirements** — Identify data sources, tools needed, and client apps 2. **Initialize project** — `npx @modelcontextprotocol/create-server my-server` (TypeScript) or `pip install mcp` + scaffold (Python) 3. **Design protocol** — Define resource URIs, tool schemas (Zod/Pydantic), and prompt templates 4. **Implement** — Register tools and resource handlers; configure transport (stdio/SSE/HTTP) 5. **Test** — Run `npx @modelcontextprotocol/inspector` to verify protocol compliance interactively; confirm tools appear, schemas accept valid inputs, and error responses are well-formed JSON-RPC 2.0. **Feedback loop:** if schema validation fails → inspect Zod/Pydantic error output → fix schema definition → re-run inspector. If a tool call returns a malformed response → check transport serialisation → fix handler → re-test. 6. **Deploy** — Package, add auth/rate-limiting, configure env vars, monitor
Load detailed guidance based on context:
| Topic | Reference | Load When | |-------|-----------|-----------| | Protocol | `references/protocol.md` | Message types, lifecycle, JSON-RPC 2.0 | | TypeScript SDK | `references/typescript-sdk.md` | Building servers/clients in Node.js | | Python SDK | `references/python-sdk.md` | Building servers/clients in Python | | Tools | `references/tools.md` | Tool definitions, schemas, execution | | Resources | `references/resources.md` | Resource providers, URIs, templates |
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.1.0" });
// Register a tool with validated input schema
server.tool(
"get_weather",
"Fetch current weather for a location",
{
location: z.string().min(1).describe("City name or coordinates"),
units: z.enum(["celsius", "fahrenheit"]).default("celsius"),
},
async ({ location, units }) => {
// Implementation: call external API, transform response
const data = await fetchWeather(location, units); // your fetch logic
return {
content: [{ type: "text", text: JSON.stringify(data) }],
};
}
);
// Register a resource provider
server.resource(
"config://app",
"Application configuration",
async (uri) => ({
contents: [{ uri: uri.href, text: JSON.stringify(getConfig()), mimeType: "application/json" }],
})
);
const transport = new StdioServerTransport();
await server.connect(transport);from mcp.server.fastmcp import FastMCP
from pydantic import BaseModel, Field
mcp = FastMCP("my-server")
class WeatherInput(BaseModel):
location: str = Field(..., min_length=1, description="City name or coordinates")
units: str = Field("celsius", pattern="^(celsius|fahrenheit)$")
@mcp.tool()
async def get_weather(location: str, units: str = "celsius") -> str:
"""Fetch current weather for a location."""
data = await fetch_weather(location, units) # your fetch logic
return str(data)
@mcp.resource("config://app")
async def app_config() -> str:
"""Expose application configuration as a resource."""
return json.dumps(get_config())
if __name__ == "__main__":
mcp.run() # defaults to stdio transport**Expected tool call flow:**
Client → { "method": "tools/call", "params": { "name": "get_weather", "arguments": { "location": "Berlin" } } }
Server → { "result": { "content": [{ "type": "text", "text": "{\"temp\": 18, \"units\": \"celsius\"}" }] } }When implementing MCP features, provide: 1. Server/client implementation file 2. Schema definitions (tools, resources, prompts) 3. Configuration file (transport, auth, etc.) 4. Brief explanation of design decisions
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/api-architecture/mcp-developer/)
67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer.
Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state…
Use when designing REST or GraphQL APIs, creating OpenAPI specifications, or planning API architecture. Invoke for resource…
Use when designing new high-level system architecture, reviewing existing designs, or making architectural decisions. Invoke to…
Integrates with Atlassian products to manage project tracking and documentation via MCP protocol. Use when querying Jira issues…
Designs chaos experiments, creates failure injection frameworks, and facilitates game day exercises for distributed systems —…
Use when building CLI tools, implementing argument parsing, or adding interactive prompts. Invoke for parsing flags and…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.