关于 MCP-Agent
使用 DSPy 与 MCP 服务交互的命令行工具,提供类似 Claude Desktop 的体验。自动读取 MCP 配置,让 Agent 调用来自多个服务的工具完成任务。
主要功能
- 01DSPy Agent 自动工具调用
- 02支持 Claude Desktop 配置格式
- 03多服务工具集成
- 04OpenAI 模型集成
适用场景
- 01通过 Agent 自动完成复杂任务
- 02与本地 MCP 服务交互
- 03开发和测试 MCP 服务
MCP 相关
该 CLI 加载 MCP 配置文件中定义的服务,使 DSPy Agent 能够访问和调用这些服务暴露的所有工具。
详细介绍
MCP-Agent
./clients/mcp_client.py 是一个命令行工具,使用 DSPy 与 MCP 服务交互。目标是提供与 Claude Desktop 类似的体验。特别是,DSPy Agent 使用 MCP 服务中定义的工具定义来自主且迭代地使用工具以完成用户的请求。
该命令行程序采用 Claude Desktop 使用的同一格式的配置文件,并加载配置中的所有服务。所有服务中的工具都可供 Agent 使用。
运行项目
运行项目的有用命令可在 Makefile 中找到。
快速开始
- 在项目目录中创建
.env文件,并添加OPENAI_API_KEY键和值。 - 相应调整
./servers/mcp_fake_server_config.json中的路径/Users/shanekercheval/repos/mcp-client-agent/servers make buildmake chat- 使用
./servers/mcp_fake_server_config.json配置启动chat命令行命令,以启动 MCP 服务./servers/mcp_fake_server.py- 此 MCP 服务包含
count_characters或calulator_multiply等琐碎工具
- 此 MCP 服务包含
- 此命令使用
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_characters 和 calculator_multiply 工具,结果应为 455 * 381 = 173,355。
启动 Claude 时的错误
在通过 uv run mcp install ./servers/mcp_fake_server.py 安装服务后启动 Claude 时,我收到了这些错误。使用 Docker 容器时不会发生这些错误。一个问题是 uv 命令似乎找不到,除非我提供路径(通过 which uv 找到)。另一个问题是 MCP 服务无法从它尝试导入的不同目录中找到文件。
以下是我收到的错误(tail -n 20 -F ~/Library/Logs/Claude/mcp*.log 帮助我进行调试):
Error in MCP connection to server Demo: Error: spawn uv ENOENT
[error] Could not start MCP server 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"
]
}
}
}
似乎没有办法直接从 install 命令中执行此操作。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。