examples/skills/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.
npx skillsauth add basher83/lunar-claude 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 (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.
Creating a high-quality MCP server involves four main phases:
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.
Optimize for Limited Context: Agents have constrained context windows - make every token count. Return high-signal information, not exhaustive data dumps. Provide "concise" vs "detailed" response format options. Default to human-readable identifiers over technical codes (names over IDs). Consider the agent's context budget as a scarce resource.
Actionable Error Messages: Error messages should guide agents toward solutions with specific suggestions and next steps. Suggest specific next steps: "Try using filter='active_only' to reduce results". Make errors educational, not just diagnostic. Help agents learn proper tool usage through clear feedback.
Use Evaluation-Driven Development: Create realistic evaluation scenarios early. Let agent feedback drive tool improvements. Prototype quickly and iterate based on actual agent performance.
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:
Recommended stack:
Load framework documentation:
For TypeScript (recommended):
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.mdFor Python:
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.mdUnderstand the API: Review the service's API documentation to identify key endpoints, authentication requirements, and data models. Use web search and WebFetch as needed. Read through ALL available API documentation:
Tool Selection:
Prioritize comprehensive API coverage. List endpoints to implement, starting with the most common operations. List the most valuable endpoints/operations to implement. Prioritize tools that enable the most common and important use cases. Consider which tools work together to enable complex workflows.
Shared Utilities and Helpers:
Identify common API request patterns. Plan pagination helpers. Design filtering and formatting utilities. Plan error handling strategies.
Input/Output Design:
Define input validation models (Pydantic for Python, Zod for TypeScript). Design consistent response formats (e.g., JSON or Markdown), and configurable levels of detail (e.g., Detailed or Concise). Plan for large-scale usage (thousands of users/resources). Implement character limits and truncation strategies (e.g., 25,000 tokens).
Error Handling Strategy:
Plan graceful failure modes. Design clear, actionable, LLM-friendly, natural language error messages which prompt further action. Consider rate limiting and timeout scenarios. Handle authentication and authorization errors.
See language-specific guides for project setup:
Create shared utilities:
For each tool:
Input Schema:
Output Schema:
outputSchema where possible for structured datastructuredContent in tool responses (TypeScript SDK feature)Tool Description:
Implementation:
Annotations:
readOnlyHint: true/falsedestructiveHint: true/falseidempotentHint: true/falseopenWorldHint: true/falseReview for:
To ensure quality, review the code for:
TypeScript:
npm run build to verify compilationnpx @modelcontextprotocol/inspectorPython:
python -m py_compile your_server.pyImportant: MCP servers are long-running processes that wait for requests over
stdio/stdin or sse/http. Running them directly in your main process (e.g.,
python server.py or node dist/index.js) will cause your process to hang
indefinitely.
Safe ways to test the server:
timeout 5s python server.pynpx @modelcontextprotocol/inspectorFor Python:
python -m py_compile your_server.pyFor Node/TypeScript:
npm run build and ensure it completes without errorsSee language-specific guides for detailed testing approaches and quality checklists.
To verify implementation quality, load the appropriate checklist from the language-specific guide:
After implementing your MCP server, create comprehensive evaluations to test its effectiveness.
Load ✅ Evaluation Guide for complete evaluation guidelines.
Use evaluations to test whether LLMs can effectively use your MCP server to answer realistic, complex questions.
To create effective evaluations, follow the process outlined in the evaluation guide:
Ensure each question is:
Create an XML file with this structure:
<evaluation>
<qa_pair>
<question>Find discussions about AI model launches with animal codenames. One model needed a specific safety designation that uses the format ASL-X. What number X was being determined for the model named after a spotted wild cat?</question>
<answer>3</answer>
</qa_pair>
<!-- More qa_pairs... -->
</evaluation>
Load these resources as needed during development:
https://modelcontextprotocol.io/sitemap.xml, then fetch specific pages with .md suffixhttps://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.mdhttps://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md🐍 Python Implementation Guide - Complete Python/FastMCP guide with:
@mcp.tool⚡ TypeScript Implementation Guide - Complete TypeScript guide with:
server.registerTooltesting
Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project memory optimization".
tools
Operational tooling for Talos Linux Kubernetes clusters via Sidero Omni with Proxmox infrastructure provider, covering machine classes, CEL storage selectors, and provider lifecycle management.
tools
Best practices for git workflow automation including atomic commits, branch naming, conventional commit format, and changelog generation.
tools
Summarize the current state of the git repository