返回市场
MCP客户端代理

MCP客户端代理

作者:shane-kercheval23 星标更新:2025-03-10

项目介绍

MCP-Agent

./clients/mcp_client.py 是一个使用 DSPy 与 MCP 服务器交互的命令行界面 (CLI)。其目标是提供类似于 Claude Desktop 的体验。特别是,DSPy 代理使用 MCP 服务器中定义的工具定义,自主且迭代地使用这些工具来完成用户的请求。

CLI 程序采用与 Claude Desktop 相同格式的配置文件,并加载配置中的所有服务器。所有服务器上的工具都可供代理使用。

运行项目

Makefile 中可以找到运行项目的有用命令。

快速开始

  • 在项目目录中创建一个 .env 文件,并添加 OPENAI_API_KEY 键及其值。
  • 根据需要调整此路径 /Users/shanekercheval/repos/mcp-client-agent/servers./servers/mcp_fake_server_config.json 中。
  • make build
  • make chat
    • 使用 ./servers/mcp_fake_server_config.json 配置启动 chat CLI 命令,以启动 MCP 服务器 ./servers/mcp_fake_server.py
      • 此 MCP 服务器包含简单的工具如 count_characterscalculator_multiply
    • 此命令使用 openai/gpt-4o-mini 作为模型(DSPy 模型路径格式),并需要在 .env 文件中设置 OPENAI_API_KEY

使用 make chat 命令和 mcp_fake_server.py 的示例:

将以下两个文本中的字符数相乘:"Lorem ipsum odor amet, consectetuer adipiscing elit. Nisl ligula molestie nec a sodales morbi vel. Diam interdum metus ante semper, lorem ornare massa. Accumsan dapibus lacus venenatis; elementum varius nascetur nibh sodales ipsum. Suspendisse mauris cubilia sit elit netus mattis. Rhoncus vivamus ridiculus nostra sociosqu bibendum. Eleifend ultricies orci proin maecenas justo felis sagittis. Elit blandit mattis dis consectetur morbi quisque penatibus." 和 "Lorem ipsum odor amet, consectetuer adipiscing elit. Proin maximus condimentum fusce nam, dictum adipiscing maximus. Lacinia pellentesque magna senectus adipiscing massa cras elementum tortor. Habitant hendrerit sodales, consectetur amet conubia ullamcorper. Suscipit aliquet curae lobortis imperdiet, montes lectus. Hendrerit penatibus commodo semper laoreet viverra eu elit nisl."

应使用 count_characterscalculator_multiply 工具,结果应为 455 * 381 = 173,355

启动 Claude 时遇到的错误

在通过 uv run mcp install ./servers/mcp_fake_server.py 安装服务器后启动 Claude 时,我遇到了这些错误。当使用 Docker 容器时不会出现这些问题。其中一个问题是除非提供路径(通过 which uv 找到),否则找不到 uv 命令。另一个问题是 MCP 服务器无法从它尝试导入的不同目录中找到文件。

以下是我在调试时得到的错误信息(tail -n 20 -F ~/Library/Logs/Claude/mcp*.log 帮助了我进行调试):

与服务器 Demo 的 MCP 连接出错:Error: spawn uv ENOENT
[error] 无法启动 MCP 服务器 Demo:Error: spawn uv ENOENT

解决方案是在 command 中添加完整路径,并添加 --directory 标志,引用服务器导入的源文件的项目目录:

{
  "mcpServers": {
    "fake-server": {
      "command": "/Users/shanekercheval/.local/bin/uv",
      "args": [
        "run",
        "--directory", 
        "/Users/shanekercheval/repos/mcp-client-agent",
        "--with",
        "mcp",
        "mcp",
        "run",
        "servers/mcp_fake_server.py"
      ]
    }
  }
}

似乎没有直接从安装命令执行此操作的方法。