skills/create-mcp-servers/SKILL.md
Create Model Context Protocol (MCP) servers that expose tools, resources, and prompts to Claude. Use when building custom integrations, APIs, data sources, or any server that Claude should interact with via the MCP protocol. Supports both TypeScript and Python implementations.
npx skillsauth add glittercowboy/taches-cc-resources create-mcp-serversInstall 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.
<essential_principles>
<the_5_rules> Every MCP server must follow these:
${VAR} expansion in configs, environment variables in codecwd Property - Isolates dependencies (not --cwd in args)which uv to find paths, never relative~/Developer/mcp/{server-name}/uv for Python - Better than pip, handles venvs automatically
</the_5_rules><security_checklist>
<architecture_decision> Operation count determines architecture:
Traditional: Each operation is a separate tool On-demand: 4 meta-tools (discover, get_schema, execute, continue) + operations.json </architecture_decision>
<context> MCP servers expose: - **Tools**: Functions Claude can call (API requests, file operations, calculations) - **Resources**: Data Claude can read (files, database records, API responses) - **Prompts**: Reusable prompt templates with argumentsStandard location: ~/Developer/mcp/{server-name}/
</context>
</essential_principles>
<routing> Based on user intent, route to appropriate workflow:No context provided (skill invoked without description): Use AskUserQuestion:
Context provided (user described what they want): Route directly to workflows/create-new-server.md </routing>
<workflows_index> | Workflow | Purpose | |----------|---------| | create-new-server.md | Full 8-step workflow from intake to verification | | update-existing-server.md | Modify or extend an existing server | | troubleshoot-server.md | Diagnose and fix connection/runtime issues | </workflows_index>
<templates_index> | Template | Purpose | |----------|---------| | python-server.py | Traditional pattern starter for Python | | typescript-server.ts | Traditional pattern starter for TypeScript | | operations.json | On-demand discovery operations definition | </templates_index>
<scripts_index> | Script | Purpose | |--------|---------| | setup-python-project.sh | Initialize Python MCP project with uv | | setup-typescript-project.sh | Initialize TypeScript MCP project with npm | </scripts_index>
<references_index> Core workflow:
Architecture patterns:
Language-specific:
Advanced topics:
<quick_reference>
# List servers
claude mcp list
# Add server (Python)
claude mcp add --transport stdio <name> \
--env API_KEY='${API_KEY}' \
-- uv --directory ~/Developer/mcp/<name> run python -m src.server
# Add server (TypeScript)
claude mcp add --transport stdio <name> \
--env API_KEY='${API_KEY}' \
-- node ~/Developer/mcp/<name>/build/index.js
# Remove server
claude mcp remove <name>
# Check logs
tail -f ~/Library/Logs/Claude/mcp-server-<name>.log
# Find paths
which uv && which node && which python
</quick_reference>
<troubleshooting_quick>
Server not appearing: Check claude mcp list, verify config in ~/.claude/settings.json
"command not found": Use absolute paths from which uv / which node
Environment variable not found:
echo $MY_API_KEY # Check if set
echo 'export MY_API_KEY="value"' >> ~/.zshrc && source ~/.zshrc
Secrets visible in conversation: STOP. Delete conversation. Rotate credentials. Never paste secrets in chat.
Full troubleshooting: workflows/troubleshoot-server.md </troubleshooting_quick>
<success_criteria> A production-ready MCP server has:
claude mcp list shows ✓ Connected)tools
Search The Pirate Bay for torrents and extract magnet links via the apibay.org JSON API. Use when asked to "find a torrent", "search pirate bay", "get a magnet link", "download torrent", "find seeders", "top torrents", or any torrent search task. Can operate via CLI tool or direct API calls.
data-ai
Set up and configure Geoffrey Huntley's original Ralph Wiggum autonomous coding loop in any directory with proper structure, prompts, and backpressure.
tools
Build professional native macOS apps in Swift with SwiftUI and AppKit. Full lifecycle - build, debug, test, optimize, ship. CLI-only, no Xcode.
tools
Build professional native iPhone apps in Swift with SwiftUI and UIKit. Full lifecycle - build, debug, test, optimize, ship. CLI-only, no Xcode. Targets iOS 26 with iOS 18 compatibility.