LLM增强工具包

一个通过模型上下文协议(MCP)增强LLM能力的综合工具包,提供与外部服务和API交互的功能,扩展LLM的文本生成能力。

  • by ai-zerolab
  • Python
  • 本地部署
  • 31 星标
  • 更新于
在 GitHub 查看 ai-zerolab/mcp-toolbox

使用说明

mcp工具箱

通过模型上下文协议(MCP)增强LLM功能的综合工具包。此包提供了一组工具,允许LLM与外部服务和API交互,将其功能扩展到文本生成之外。

特性

*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一起使用

  1. 配置Claude Desktop,如配置部分所示
  2. 启动克劳德桌面
  3. 让Claude与Figma文件交互:
    • “您能获取有关此Figma文件12345abcde的信息吗?”
    • “显示此Figma文件中的组件:12345abcde”
    • “从以下Figma文件中获取注释:12345abcde”
  4. 让Claude执行命令行指令:
    • “当前目录中有哪些文件?”
    • “当前系统时间是多少?”
    • “显示特定文件的内容。”
  5. 请克劳德从《小禹周》FM下载播客:
    • “下载此播客集:https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
    • “下载并将此播客转换为MP3:https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
  6. 让Claude处理音频文件:
    • “这个音频文件的长度是多少:audio.m4a?”
    • “在audio.m4a中转录60到90秒的音频”
    • “获取音频文件中2:30到3:00的文本”
  7. 让Claude将文件或URL转换为Markdown:
    • “将此文件转换为Markdown:document.docx”
    • “将此网页转换为Markdown:https://example.com"
  8. 让克劳德处理网络内容:
    • “从以下位置获取HTML内容https://example.com"
    • “从保存HTMLhttps://example.com到一个文件”
    • “在网上搜索‘人工智能新闻’”
  9. 让Claude使用Flux生成图像:
    • “生成山脉上美丽日落的图像”
    • “创建一个未来城市的图像并将其保存到我的桌面上”
    • “生成一张穿着太空服的猫的肖像”
  10. 让克劳德使用记忆工具:
    • “记住这一重要事实:法国的首都是巴黎”
    • “我当前的会话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集成,请执行以下操作:

  1. 更新 config.py 使用任何必需的API密钥
  2. 在中创建新模块 mcp_toolbox/
  3. 实现API客户端和工具
  4. 为新功能添加测试
  5. 使用新的环境变量和工具更新README.md

请参阅 开发指南 了解更多详细说明。

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据存储库中包含的许可条款获得许可。