MCPSkill - 用于Claude代码技能的直接MCP封装器
一个轻量级的Python封装器,使得Claude Code能够通过技能与MCP(模型上下文协议)服务器进行交互,而无需将工具定义加载到上下文中。
什么是MCPSkill?
MCPSkill在Claude Code的技能系统与MCP服务器之间提供了一个简单的桥梁。它不是将所有MCP工具加载到Claude的上下文(Claude使用的是令牌)中,而是通过一个技能将MCP服务器暴露出来,Claude可以在需要时调用这个技能。
主要优势
- 零上下文使用MCP 工具定义未加载到 Claude Code 的上下文中
- 自动激活当相关时,Claude Code 会自动调用该技能
- 简单配置只需指向一个MCP服务器,无需LLM编排
- 快速执行直接传递到MCP服务器(无中间LLM)
- 最小化依赖仅需
mcp,pydantic,以及pyyaml
建筑
┌─────────────────────────┐
│ Claude Code │ ← Auto-invokes skill when user mentions MCP
│ (0 tools in context) │ keywords (filesystem, database, etc.)
└────────┬────────────────┘
│ Direct Python execution
┌────────▼──────────────────┐
│ orchestrate.py │ ← Simple CLI wrapper
│ (skill entry point) │
└────────┬──────────────────┘
│
┌────────▼──────────────────┐
│ DirectExecutor │ ← Lists available tools, no LLM
│ (executor.py) │ orchestration needed
└────────┬──────────────────┘
│ JSON-RPC via MCP
┌────────▼─────────┐
│ Downstream MCP │ ← filesystem, database, GitHub, etc.
│ Server │
└──────────────────┘何时使用MCPSkill
✅ 在以下情况下使用MCPSkill:
- 您希望Claude Code能够访问MCP服务器,而无需加载工具模式(或工具架构)
- MCP服务器拥有简洁且文档齐全的工具
- 您希望延迟最小,且不产生额外的API费用
- 您正在使用标准的MCP服务器(文件系统、SQLite等)
❌(表示错误或不正确的意思,具体含义需结合上下文理解) 在以下情况下不要使用MCPSkill:
- 你需要复杂的多工具协同逻辑
- 你需要使用中级大型语言模型(LLM)进行推理以选择工具
安装
第一步:安装MCPSkill
cd /path/to/mcpskill
pip install -e .步骤2:技能已配置完毕
这个技能位于 .claude/skills/mcp-orchestrator/ 在这个存储库中。
用于项目级应用你准备好了!这个技能在这个项目中有效。
适用于全球 (跨所有项目):
# macOS/Linux
cp -r .claude/skills/mcp-orchestrator ~/.claude/skills/
# Windows
xcopy .claude\skills\mcp-orchestrator %USERPROFILE%\.claude\skills\mcp-orchestrator /E /I第三步:配置
cd .claude/skills/mcp-orchestrator
cp config.example.yaml config.yaml
# Edit config.yaml for your use case配置
MCPSkill 使用简单的 YAML 配置文件:
# config.yaml
name: filesystem-assistant
description: "Access filesystem operations via MCP"
downstream:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-filesystem"
- "/Users/username/Documents"
env: {} # Optional environment variables for the MCP server配置示例
文件系统访问
name: filesystem
description: "File and directory operations"
downstream:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-filesystem"
- "/path/to/directory"SQLite 数据库
name: database
description: "SQLite database queries"
downstream:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-sqlite"
- "/path/to/database.db"GitHub 集成
name: github
description: "GitHub repository and issue management"
downstream:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-github"
env:
GITHUB_TOKEN: ${GITHUB_TOKEN} # Loaded from environment使用方法
安装后,当您提出相关请求时,Claude Code 将自动激活该技能。
示例:文件系统操作
您的请求:
列出/tmp目录中的所有Python文件
发生的事情:
- 克劳德在技能描述中认出了“文件系统”
- 克劳德呼唤道:
python orchestrate.py config.yaml "List all Python files in /tmp" - MCPSkill 连接到文件系统 MCP 服务器
- 返回可用的工具及其描述
- 克劳德随后可以直接使用MCP工具
示例:数据库查询
您的请求:
显示过去7天内注册的所有用户
发生的事情:
- 技能根据配置激活
- MCPSkill 连接到 SQLite MCP 服务器
- 返回可用的数据库查询工具
- 克劳德执行了相应的查询
手动测试
你可以直接在命令行中测试这个技能:
cd .claude/skills/mcp-orchestrator
python orchestrate.py config.yaml "What can you help me with?"调试
启用调试日志记录:
export MCPSKILL_LOG_LEVEL=DEBUG然后检查 stderr 输出以获取详细日志。
常见问题
问题: Error: MCPSkill package not found
解决方案:
cd /path/to/mcpskill
pip install -e .问题: Cannot connect to downstream server
解决方案:
- 直接测试MCP服务器命令
- 检查是否已安装 Node.js/npm(对于基于 npx 的服务器)
- 验证环境变量是否已设置
问题技能未激活
解决方案:
- 检查一下
SKILL.md存在于.claude/skills/mcp-orchestrator/ - 验证描述中是否提到了相关关键词
- 在您的请求中明确提及“MCP”或服务器类型
- 重启Claude代码
与MCProxy的比较
MCPSkill是MCProxy的简化版,针对Claude Code技能进行了优化:
| 特性 | MCProxy(完整版) | MCPSkill(简化版) |
|---|---|---|
| MCP服务器模式 | ✅ 是 | ❌ 否 |
| 中级大型语言模型(Intermediate LLM) | ✅ 是(可配置) | ❌ 否 |
| 克劳德编码技能 | ✅ 是 | ✅ 是(已优化) |
| 代币使用 | 最小(上下文中为0) | 最小(上下文中为0) |
| 延迟 | 中等(2跳) | 低(1跳) |
| API成本 | 中等(双大型语言模型) | 低(无额外大型语言模型) |
| 配置 | 复杂(LLM 设置) | 简单(仅 MCP 配置) |
| 用例 | 复杂的编曲 | 简单的直接访问 |
项目结构
mcpskill/
├── src/mcpskill/
│ ├── __init__.py
│ ├── client.py # MCP client for connecting to servers
│ ├── config.py # YAML configuration loader
│ ├── types.py # Pydantic models
│ └── executor.py # Direct tool execution (no LLM)
│
├── .claude/skills/mcp-orchestrator/
│ ├── SKILL.md # Skill definition for Claude Code
│ ├── README.md # Skill-specific documentation
│ ├── config.example.yaml # Example configuration
│ └── orchestrate.py # Entry point script
│
├── pyproject.toml # Package configuration
└── README.md # This file发展
运行测试
pip install -e ".[dev]"
pytest代码质量
# Format code
black src/
# Lint
ruff check src/
# Type checking
mypy src/做出贡献
这是一个简单的示例项目,旨在帮助您入门。请随意进行分支复制并根据您的需求进行修改!
资源
许可证
麻省理工学院(MIT)
常见问题解答(FAQ)
问:这与直接将MCP服务器加载到Claude Code中有什么不同?
A.Claude Code可以直接加载MCP服务器,但这会将所有工具定义都置于上下文中(使用令牌)。MCPSkill则将MCP服务器封装在一个技能中,该技能仅在需要时由Claude自动调用,从而保持您的上下文整洁。
问:我需要API密钥来进行编排吗?
A.不!MCPSkill不使用中间的大型语言模型,因此你无需提供下游MCP服务器要求之外的任何API密钥。
问:我可以使用多台MCP服务器吗?
A.是的,创建多个配置文件,并复制技能文件夹并使用不同的名称(例如。, mcp-filesystem, mcp-database)。 每个都有自己的配置。
问:如果我需要复杂的编排逻辑怎么办?
A.使用完整的MCProxy包,其中包含一个用于智能工具路由的中间大型语言模型(LLM)。MCPSkill经过优化,可实现简单、直接的访问。
