使用说明
mcp工具箱
通过模型上下文协议(MCP)增强LLM功能的综合工具包。此包提供了一组工具,允许LLM与外部服务和API交互,将其功能扩展到文本生成之外。
- GitHub存储库: https://github.com/ai-zerolab/mcp-toolbox/
- (WIP)文档: https://ai-zerolab.github.io/mcp-toolbox/
特性
*nix是我们的主要目标,但Windows也应该工作。
- 命令行执行:通过LLM执行任何命令行指令
- Figma集成:访问Figma文件、组件、样式等
- 可扩展架构:轻松添加新的API集成
- MCP协议支持:与Claude Desktop和其他启用MCP的LLM兼容
- 综合测试:经过良好测试的代码库,具有高测试覆盖率
安装
使用紫外线(推荐)
我们建议使用 紫外线 管理您的环境。
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh # For macOS/Linux
# or
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # For Windows
然后你可以使用 uvx "mcp-toolbox@latest" stdio 作为运行最新版本的MCP服务器的命令。 默认安装中不包括音频和存储工具。,您可以通过安装 all 额外:
[音频]用于音频工具,[内存]用于内存工具,[全部]用于所有工具
uvx "mcp-toolbox[all]@latest" stdio
通过Smithery安装
通过以下方式自动安装克劳德桌面LLM增强工具箱 史密瑟里:
npx -y @smithery/cli install @ai-zerolab/mcp-toolbox --client claude
使用pip
pip install "mcp-toolbox[all]"
你可以使用 mcp-toolbox stdio 作为运行MCP服务器的命令。
配置
环境变量
可以配置以下环境变量:
FIGMA_API_KEY:用于Figma集成的API密钥TAVILY_API_KEY:Tavily集成的API关键DUCKDUCKGO_API_KEY:DuckDuckGo集成的API密钥BFL_API_KEY:用于Flux图像生成的API密钥API
记忆存储
存储工具将数据存储在以下位置:
- macOS:
~/Documents/zerolab/mcp-toolbox/memory(通过iCloud跨设备同步) - 其他平台:
~/.zerolab/mcp-toolbox/memory
完整架构
将mcp工具箱与Claude Desktop/Cline/Cursor/一起使用。..,将以下内容添加到配置文件中:
{
"mcpServers": {
"zerolab-toolbox": {
"command": "uvx",
"args": ["--prerelease=allow", "mcp-toolbox@latest", "stdio"],
"env": {
"FIGMA_API_KEY": "your-figma-api-key",
"TAVILY_API_KEY": "your-tavily-api-key",
"DUCKDUCKGO_API_KEY": "your-duckduckgo-api-key",
"BFL_API_KEY": "your-bfl-api-key"
}
}
}
}
有关完整功能:
{
"mcpServers": {
"zerolab-toolbox": {
"command": "uvx",
"args": [
"--prerelease=allow",
"--python=3.12",
"mcp-toolbox[all]@latest",
"stdio"
],
"env": {
"FIGMA_API_KEY": "your-figma-api-key",
"TAVILY_API_KEY": "your-tavily-api-key",
"DUCKDUCKGO_API_KEY": "your-duckduckgo-api-key",
"BFL_API_KEY": "your-bfl-api-key"
}
}
}
}
您可以使用以下命令生成调试配置模板:
uv run generate_config_template.py
可用工具
命令行工具
| 工具 | 说明 |
|---|---|
execute_command |
执行命令行指令 |
文件操作工具
| 工具 | 说明 |
|---|---|
read_file_content |
从文件中读取内容 |
write_file_content |
将内容写入文件 |
replace_in_file |
使用正则表达式替换文件中的内容 |
list_directory |
列出目录内容及详细信息 |
Figma工具
| 工具 | 说明 |
|---|---|
figma_get_file |
按键获取Figma文件 |
figma_get_file_nodes |
从Figma文件中获取特定节点 |
figma_get_image |
获取Figma文件中节点的图像 |
figma_get_image_fills |
获取Figma文件中使用的图像的URL |
figma_get_comments |
获取对Figma文件的评论 |
figma_post_comment |
在Figma文件上发表评论 |
figma_delete_comment |
从Figma文件中删除评论 |
figma_get_team_projects |
为团队获取项目 |
figma_get_project_files |
获取项目的文件 |
figma_get_team_components |
为团队获取组件 |
figma_get_file_components |
从文件中获取组件 |
figma_get_component |
按键获取组件 |
figma_get_team_component_sets |
为团队获取组件集 |
figma_get_team_styles |
为团队打造风格 |
figma_get_file_styles |
从文件中获取样式 |
figma_get_style |
按键获得风格 |
XiaoyuZhou FM工具
| 工具 | 说明 |
|---|---|
xiaoyuzhoufm_download |
从XiaoyuZhouFM下载播客集,可选择自动m4a到mp3转换 |
音频工具
| 工具 | 说明 |
|---|---|
get_audio_length |
获取音频文件的长度(秒) |
get_audio_text |
从音频文件中的特定时间范围获取转录文本 |
内存工具
| 工具 | 说明 |
|---|---|
think |
使用该工具思考某事,并将想法附加到日志中 |
get_session_id |
获取当前会话ID |
remember |
在内存数据库中存储内存(简要和详细) |
recall |
使用语义搜索从数据库中查询内存 |
forget |
清除内存数据库中的所有内存 |
标记工具
| 工具 | 说明 |
|---|---|
convert_file_to_markdown |
使用MarkItDown将任何文件转换为Markdown |
convert_url_to_markdown |
使用MarkItDown将URL转换为Markdown |
Web工具
| 工具 | 说明 |
|---|---|
get_html |
从URL获取HTML内容 |
save_html |
将URL中的HTML保存到文件 |
search_with_tavily |
使用Tavily搜索网页(需要API密钥) |
search_with_duckduckgo |
使用DuckDuckGo搜索网页(需要API密钥) |
通量图像生成工具
| 工具 | 说明 |
|---|---|
flux_generate_image |
使用Flux API生成图像并将其保存到文件中 |
使用示例
运行MCP服务器
# Run with stdio transport (default)
mcp-toolbox stdio
# Run with SSE transport
mcp-toolbox sse --host localhost --port 9871
与Claude Desktop一起使用
- 配置Claude Desktop,如配置部分所示
- 启动克劳德桌面
- 让Claude与Figma文件交互:
- “您能获取有关此Figma文件12345abcde的信息吗?”
- “显示此Figma文件中的组件:12345abcde”
- “从以下Figma文件中获取注释:12345abcde”
- 让Claude执行命令行指令:
- “当前目录中有哪些文件?”
- “当前系统时间是多少?”
- “显示特定文件的内容。”
- 请克劳德从《小禹周》FM下载播客:
- “下载此播客集:https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
- “下载并将此播客转换为MP3:https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
- 让Claude处理音频文件:
- “这个音频文件的长度是多少:audio.m4a?”
- “在audio.m4a中转录60到90秒的音频”
- “获取音频文件中2:30到3:00的文本”
- 让Claude将文件或URL转换为Markdown:
- “将此文件转换为Markdown:document.docx”
- “将此网页转换为Markdown:https://example.com"
- 让克劳德处理网络内容:
- “从以下位置获取HTML内容https://example.com"
- “从保存HTMLhttps://example.com到一个文件”
- “在网上搜索‘人工智能新闻’”
- 让Claude使用Flux生成图像:
- “生成山脉上美丽日落的图像”
- “创建一个未来城市的图像并将其保存到我的桌面上”
- “生成一张穿着太空服的猫的肖像”
- 让克劳德使用记忆工具:
- “记住这一重要事实:法国的首都是巴黎”
- “我当前的会话ID是什么?”
- “回忆起关于法国的任何信息”
- “思考气候变化的影响”
- “忘记所有存储的记忆”
发展
本地设置
分叉存储库并将其克隆到本地计算机。
# Install in development mode
make install
# Activate a virtual environment
source .venv/bin/activate # For macOS/Linux
# or
.venv\Scripts\activate # For Windows
运行测试
make test
运行检查
make check
建筑文件
make docs
添加新工具
要添加新的API集成,请执行以下操作:
- 更新
config.py使用任何必需的API密钥 - 在中创建新模块
mcp_toolbox/ - 实现API客户端和工具
- 为新功能添加测试
- 使用新的环境变量和工具更新README.md
请参阅 开发指南 了解更多详细说明。
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据存储库中包含的许可条款获得许可。