mcp-builder/SKILL.md
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 external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
npx skillsauth add lidge-jun/cli-jaw-skills mcp-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create MCP servers that enable LLMs to interact with external services. Quality is measured by how well the server enables LLMs to accomplish real-world tasks.
github_create_issue, github_list_repos)Start with the sitemap: https://modelcontextprotocol.io/sitemap.xml
Fetch pages with .md suffix for markdown (e.g., https://modelcontextprotocol.io/specification/draft.md).
Key areas: specification overview, transport mechanisms (streamable HTTP, stdio), tool/resource/prompt definitions.
Recommended stack: TypeScript with streamable HTTP (remote) or stdio (local).
| Resource | Location |
|----------|----------|
| MCP Best Practices | reference/mcp_best_practices.md |
| TypeScript Guide | reference/node_mcp_server.md |
| Python Guide | reference/python_mcp_server.md |
| TypeScript SDK README | https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md |
| Python SDK README | https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md |
Review the service's API docs to identify key endpoints, auth requirements, and data models. Prioritize the most common operations.
See language-specific guides for setup:
Create shared utilities: API client with auth, error handling helpers, response formatting (JSON/Markdown), pagination support.
For each tool:
Input schema: Use Zod (TypeScript) or Pydantic (Python) with constraints, clear descriptions, and examples.
Output schema: Define outputSchema where possible; use structuredContent for structured responses.
Implementation:
Annotations: Set readOnlyHint, destructiveHint, idempotentHint, openWorldHint as appropriate.
Resources: Read-only data the model can fetch (file contents, API responses, config values). Register with registerResource() or resource() depending on SDK version. Handlers receive a uri argument.
Prompts: Reusable parameterised prompt templates the client can surface. Register with registerPrompt() or equivalent. Useful for complex multi-step workflows the model can invoke by name.
The SDK API for registration methods (tool() vs registerTool(), etc.) has changed across versions. Verify against the current SDK README or Context7 before using.
Best practices:
Code quality: no duplicated code, consistent error handling, full type coverage, clear tool descriptions.
Build and test:
npm run build, then npx @modelcontextprotocol/inspectorpython -m py_compile your_server.py, then MCP InspectorSee language-specific guides for detailed testing and quality checklists.
Test whether LLMs can effectively use your server to answer realistic, complex questions.
Load reference/evaluation.md for complete guidelines.
Each question should be: independent, read-only, complex (multiple tool calls), realistic, verifiable (single clear answer), and stable over time.
<evaluation>
<qa_pair>
<question>Find discussions about AI model launches with animal codenames...</question>
<answer>3</answer>
</qa_pair>
</evaluation>
| Language | Package | Notes |
|----------|---------|-------|
| TypeScript | @modelcontextprotocol/sdk (npm) | Use Context7 for current patterns |
| Go | modelcontextprotocol/go-sdk (GitHub) | Official Go SDK |
| C# | Official C# SDK for .NET | .NET ecosystem |
Current: MCP SDK v1.x (production). MCP v2 spec targeting stable release Q3 2026 (July 28, 2026).
fastmcp for quick server creation; mcp package for full controltools
Use only on the Codex CLI for native image generation or image editing without an API key. Save final PNG files under ~/.cli-jaw/uploads, report web-ready absolute-path markdown, and send to Telegram or Discord only when explicitly requested.
tools
Ranked repository structure map via `cli-jaw map`. Use for codebase overview, structure map, symbol overview, unfamiliar codebase exploration, architecture orientation. Triggers: repo map, structure map, codebase overview, 와꾸, project structure, unfamiliar code.
tools
cli-jaw Design workspace: create, preview, run, and export design pages from the right sidebar. Covers panel UX, direct-write workflow, artifact lifecycle, wireframe generation, design system, and Open Design adapter.
development
MUST USE for infrastructure and delivery work — container builds, deploy pipelines, Kubernetes, Infrastructure as Code, SRE foundations, edge/serverless, ML infrastructure. Triggers: Dockerfile, K8s manifests, CI/CD pipeline, Terraform/IaC, release/deploy, devops/infra/deploy or release_cd task_tags.