MCP扩展工具

为LLM提供MCP协议支持,扩展LLM能力,支持多种外部工具和服务。

  • by llmspy
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 llmspy/fast_mcp

使用说明

快速MCP扩展

此扩展带来 模型上下文协议(MCP) 支持 llms.py,允许您使用各种外部工具和服务扩展LLM功能。

特性

  • 并行发现:所有配置的MCP服务器都会同时被发现,以实现快速启动。
  • 标准化工具访问:无缝连接到任何兼容MCP的服务器(Node.js、Python等)。
  • 动态发现:自动发现并注册配置的服务器公开的所有工具。
  • 确定性注册:工具按配置顺序注册;如果多个服务器提供同名工具,则配置中较晚的服务器会覆盖较早的服务器。
  • 可靠的执行:每次工具执行都使用与MCP服务器的新连接,以确保隔离和可靠性。
  • 错误记录:发现和工具执行的详细stderr日志存储在 logs/ 目录。

配置

该扩展通过 mcp.json 配置文件。它在两个位置搜索此文件(第一场比赛获胜):

  1. 用户配置: ~/.llms/user/default/fast_mcp/mcp.json
  2. 默认配置:The ui/mcp.json 文件与扩展名捆绑在一起。

服务器配置选项

每台服务器 mcpServers 支持 mcp_config字段:

字段 类型 必填 描述
command string Yes 要运行的可执行文件(例如。, npx, uvx, uv, python)
args array 否 传递给命令的命令行参数
env object 否 要为服务器进程设置的环境变量
timeout number 否 工具执行超时(秒)
description string 否 服务器的可读描述

环境变量替换

为了实现灵活和共享的配置,您可以使用 $ 两者都有前缀 args 和 env 值,例如:

  • $PWD -当前工作目录
  • $GEMINI_API_KEY -任何环境变量

选择性注册:MCP服务器仅在以下情况下注册 全部 引用的环境变量可用。如果缺少任何变量,则在发现过程中跳过该服务器。这允许您与可选服务器维护单个共享配置。

示例 mcp.json

{
    "mcpServers": {
        "git": {
            "command": "uvx",
            "args": [
                "mcp-server-git",
                "--repository",
                "$PWD"
            ]
        },
        "MiniMax": {
            "command": "uvx",
            "args": [
                "minimax-mcp",
                "-y"
            ],
            "env": {
                "MINIMAX_API_KEY": "$MINIMAX_API_KEY",
                "MINIMAX_MCP_BASE_PATH": "$PWD",
                "MINIMAX_API_HOST": "https://api.minimax.io",
                "MINIMAX_API_RESOURCE_MODE": "url"
            }
        },
        "gemini-gen": {
            "description": "Gemini Image and Audio TTS generation",
            "command": "uvx",
            "args": [
                "gemini-gen-mcp"
            ],
            "env": {
                "GEMINI_API_KEY": "$GEMINI_API_KEY"
            }
        },
        "omarchy": {
            "description": "Manage Omarchy Desktop Themes",
            "command": "uvx",
            "args": [
                "omarchy-mcp"
            ]
        }
    }
}

运作原理

发现阶段(启动)

  1. 延伸载荷 mcp.json 并过滤掉缺少环境变量的服务器
  2. 发现所有有效服务器 并行
  3. 启动每台服务器,通过以下方式查询其可用工具 list_tools()
  4. 工具已在中注册 配置顺序 (确定性-对于重复的工具名称,后续服务器会覆盖之前的服务器)

执行阶段(运行时)

当调用工具时:

  1. A. 新连接 已建立到相应的MCP服务器
  2. 该工具使用提供的参数执行(可配置超时,默认60秒)
  3. 执行后连接关闭

这种每次执行的新连接方法确保了工具调用之间的可靠性和隔离性。

环境变量

变量 默认值 描述
MCP_TIMEOUT 60.0 MCP工具执行超时(秒)
MCP_LOG_ERRORS 0 设置为 1 为工具执行启用详细的stderr日志记录

故障排除

如果工具未出现:

  • 检查MCP服务器命令是否可以在您的 PATH
  • 验证是否导出了所有必需的环境变量
  • 使用启用详细的错误记录 MCP_LOG_ERRORS=1
  • 查看中的日志 logs/ 特定错误消息的目录

如果工具超时:

  • 增加超时时间 MCP_TIMEOUT=120 (或以秒为单位的更高值)

日志文件

日志存储在扩展中 logs/ 目录:

日志文件 描述
{server}_discovery.stderr.log 发现阶段服务器的Stderr输出
{tool_name}.stderr.log 工具执行时的Stderr输出(当 MCP_LOG_ERRORS=1)

需求

  • Python 3.9+(用于保证字典插入顺序)
  • fastmcp -MCP客户端库