MCP to Skill Converter
Convert any MCP server into a Claude Skill with progressive disclosure pattern, reducing context usage by 90%+.
When to Use This Skill
- Converting MCP servers to skills for context efficiency
- Listing available MCP servers in a project
- Batch converting multiple MCP servers
- Creating skills from
.mcp.jsonconfiguration
Quick Commands
All commands run from project root where the plugin is installed.
List Available Servers
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --list
Shows all MCP servers with compatibility status (stdio, http, and sse types are compatible).
Convert Single Server (auto-outputs to mcp-skills/)
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --name <server-name>
Example:
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --name github
# Outputs to: .claude/skills/mcp-skills/github/
# Automatically removes github from .mcp.json
# Updates mcp-skills/index.json
Convert All Compatible Servers
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --all
# Converts all compatible servers (stdio, http, sse) to mcp-skills/
Custom Output Directory
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --name github --output-dir /custom/path
Specify Custom .mcp.json
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --mcp-json /path/to/.mcp.json --name github --output-dir ./skills
CLI Options
| Option | Description |
|--------|-------------|
| --list | List all servers with compatibility info |
| --name NAME | Convert specific server by name |
| --all | Convert all compatible servers |
| --output-dir PATH | Output directory for generated skill(s) |
| --mcp-json PATH | Path to .mcp.json (auto-discovers if not specified) |
| --mcp-config PATH | [Legacy] Direct MCP config JSON file |
Server Compatibility
| Type | Compatible | Notes |
|------|------------|-------|
| stdio | ✅ Yes | Standard input/output protocol |
| http | ✅ Yes | Streamable HTTP protocol |
| sse | ✅ Yes | Server-Sent Events protocol |
Context Savings
| Scenario | Native MCP | As Skill | Savings | |----------|------------|----------|---------| | Idle | 30-50k tokens | ~100 tokens | 99%+ | | Active | 30-50k tokens | ~5k tokens | 85%+ | | Executing | 30-50k tokens | 0 tokens | 100% |
Workflow Example
Step 1: List available servers
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --list
Output:
📄 Servers in: /path/to/.mcp.json
Name Type Compatible Command
--------------------------------------------------------------------------------
github stdio ✅ Yes npx
context7 stdio ✅ Yes npx
livekit-docs http ❌ No https://...
📊 Total: 16 servers, 14 compatible
Step 2: Convert desired server
python ${PLUGIN_DIR}/skills/mcp-to-skill-converter/mcp_to_skill.py --name github
The converter automatically:
- Creates the skill in
.claude/skills/mcp-skills/github/ - Initializes the mcp-skills registry (SKILL.md + index.json) if needed
- Updates
index.jsonwith the new skill - Removes the server from
.mcp.jsonto avoid duplicate loading
Step 3: Add semantic trigger keywords (MANDATORY)
The converter generates a placeholder description. You MUST update it with meaningful trigger keywords based on what the MCP server actually does.
- Read the generated SKILL.md to understand what tools are available
- Identify semantic keywords - What would users naturally ask for?
- Think about user intent, not tool names
- "ToolUI", "chat components" NOT "assistantUIDocs"
- "create PR", "issues", "repository" NOT "create_pull_request"
- Update the SKILL.md description with trigger keywords:
# Before (auto-generated):
description: Dynamic access to assistant-ui MCP server (2 tools)
# After (agent-enhanced):
description: Use for assistant-ui documentation, ToolUI, generative UI, chat components, Thread, Composer, Message primitives, runtime integrations. Get docs and code examples for building AI chat interfaces.
- Update the registry SKILL.md (
mcp-skills/SKILL.md):- Add the skill to the "Available Skills" table
- Include the trigger keywords column
Example registry entry:
| Skill | Tools | Trigger Keywords |
|-------|-------|------------------|
| assistant-ui | 2 | ToolUI, generative UI, chat components, assistant-ui docs |
| github | 26 | PR, issues, repository, commits, code search |
Step 4: Use the generated skill Claude will auto-discover the new skill in the mcp-skills registry and can invoke MCP tools with minimal context overhead.
Generated Skill Structure
output-dir/server-name/
├── SKILL.md # Instructions and tool documentation
├── executor.py # Async MCP client wrapper
├── mcp-config.json # Server configuration
└── package.json # Dependency info
Using Generated Skills
Use the central executor from project root:
# List tools in a skill
python .claude/skills/mcp-skills/executor.py --skill <skill-name> --list
# Describe specific tool
python .claude/skills/mcp-skills/executor.py --skill <skill-name> --describe tool_name
# Call a tool
python .claude/skills/mcp-skills/executor.py --skill <skill-name> --call '{"tool": "tool_name", "arguments": {...}}'
Requirements
pip install mcp
Python 3.8+ required.
Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| "Server not found" | Name doesn't exist | Run --list to see available servers |
| "Type not supported" | Server is HTTP/SSE | Only stdio servers can be converted |
| "Could not find .mcp.json" | No config found | Use --mcp-json to specify path |
| "mcp package not found" | Missing dependency | Run pip install mcp |
Files in This Skill
SKILL.md- This documentationmcp_to_skill.py- The converter scripttemplates/- Template files for generated skills
This skill enables converting MCP servers to Claude Skills for 90%+ context savings.
Scan to contact