使用说明
mcp到技能转换器
将任何MCP服务器转换为Claude Skill,可节省90%的上下文。
为什么存在
MCP服务器很棒,但在启动时会将所有工具定义加载到上下文中。有了20多种工具,在克劳德做任何工作之前,就已经有3-50k个代币消失了。
此转换器将“渐进式披露”模式(受剧作家技能启发)应用于任何MCP服务器:
- 初创公司:~100个令牌(仅元数据)
- 使用时:约5k个代币(完整说明)
- 执行:0个令牌(在外部运行)
快速开始
# 1. Create your MCP config file
cat > github-mcp.json << 'EOF'
{
"name": "github",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "your-token-here"}
}
EOF
# 2. Convert to Skill
python mcp_to_skill.py \
--mcp-config github-mcp.json \
--output-dir ./skills/github
# 3. Install dependencies
cd skills/github
pip install mcp
# 4. Copy to Claude
cp -r . ~/.claude/skills/github
完成!Claude现在可以在最小的上下文中使用GitHub工具。
它做什么
转换器:
- 读取您的MCP服务器配置
- 生成一个技能结构,其中包含:
SKILL.md-克劳德须知executor.py-动态处理MCP呼叫- 配置文件
- Claude仅加载元数据(约100个令牌)
- 需要技能时加载完整指令
- 执行器在上下文之外运行MCP工具
上下文节省
之前(MCP):
20 tools = 30k tokens always loaded
Context available: 170k / 200k = 85%
之后(技能):
20 skills = 2k tokens metadata
When 1 skill active: 7k tokens
Context available: 193k / 200k = 96.5%
真实示例
GitHub MCP服务器(8个工具):
| 度量 | MCP | 技能 | 节省 |
|---|---|---|---|
| 闲置 | 8000个代币 | 100个代币 | 98.75% |
| 活跃 | 8000个代币 | 5000个代币 | 37.5% |
兼容
任何标准MCP服务器:
- ✅ @modelcontextprotocol/server github
- ✅ @模型上下文协议/服务器松弛
- ✅ @模型上下文协议/服务器文件系统
- ✅ @模型上下文协议/服务器postgres
- ✅ 您的自定义MCP服务器
何时使用
在以下情况下使用此转换器:
- 您有10+个工具
- 上下文空间紧张
- 大多数工具不会在每次对话中使用
- 工具是独立的
在以下情况下坚持使用MCP:
- 您有1-5个工具
- 需要复杂的OAuth流程
- 需要持久连接
- 跨平台兼容性至关重要
最佳方法:两者都用
- 核心工具MCP
- 扩展工具集的技能
需求
pip install mcp
需要Python 3.8+。
运作原理
┌─────────────────────────────────────┐
│ Your MCP Config │
│ (JSON file) │
└──────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ mcp_to_skill.py │
│ - Reads config │
│ - Generates Skill structure │
└──────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Generated Skill │
│ ├── SKILL.md (100 tokens) │
│ ├── executor.py (dynamic calls) │
│ └── config files │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Claude │
│ - Loads metadata only │
│ - Full docs when needed │
│ - Calls executor for tools │
└─────────────────────────────────────┘
示例
示例1:GitHub集成
# Create config
cat > github.json << 'EOF'
{
"name": "github",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "ghp_your_token"}
}
EOF
# Convert
python mcp_to_skill.py --mcp-config github.json --output-dir ./skills/github
# Result: GitHub tools accessible with 100 tokens vs 8k
示例2:多个服务器
# Convert multiple MCP servers
for config in configs/*.json; do
name=$(basename "$config" .json)
python mcp_to_skill.py --mcp-config "$config" --output-dir "./skills/$name"
done
故障排除
“找不到mcp包”
pip install mcp
“MCP服务器没有响应”
检查您的配置文件:
- 命令正确
- 环境变量集
- 服务器可访问
测试生成的技能
cd skills/your-skill
# List tools
python executor.py --list
# Describe a tool
python executor.py --describe tool_name
# Call a tool
python executor.py --call '{"tool": "tool_name", "arguments": {...}}'
局限性
- 早期阶段(欢迎反馈)
- 需要
mcpPython包 - 一些复杂的身份验证可能需要调整
- 并非所有MCP服务器都经过测试
贡献
这是一个概念证明。欢迎捐款:
- 使用更多MCP服务器进行测试
- 改进错误处理
- 添加更多示例
- 更好的文档
鸣谢
灵感来源:
许可证
麻省理工学院
了解更多
状态:功能性但处于早期阶段
反馈:欢迎问题和PR
问题:打开一个问题