使用说明
项目简介
本项目 'mcp-client-agent' 主要包含一个 MCP 客户端代理 ('mcp_client.py'),用于连接和使用 MCP 服务器提供的工具。仓库中同时包含了一个简单的示例 MCP 服务器 ('mcp_fake_server.py'),用于演示客户端代理的功能。
注意: 本仓库的重点是 MCP 客户端代理的实现,示例 MCP 服务器 ('mcp_fake_server.py') 仅用于演示和测试目的,功能较为基础,不适合用于生产环境。但它仍然是一个有效的 MCP 服务器实现,可以用于理解 MCP 服务器的基本概念和功能。
主要功能点
- 示例 MCP 服务器 ('mcp_fake_server.py'):
- 实现了基于 'FastMCP' 的简单 MCP 服务器。
- 提供了几个简单的工具,例如 'reverse_text'(反转文本)、'calculator_sum'(计算总和)、'calculator_multiply'(计算乘积)、'count_words'(统计单词数)和 'count_characters'(统计字符数)。
- 可以通过标准输入/输出来运行,并响应 MCP 客户端的请求。
- MCP 客户端代理 ('mcp_client.py'):
- 允许用户通过命令行界面 ('CLI') 与 MCP 服务器进行交互。
- 可以加载包含 MCP 服务器配置的 JSON 文件。
- 可以列出 MCP 服务器提供的所有工具。
- 允许用户通过自然语言指令,使用连接的 MCP 服务器提供的工具完成任务 (通过 'FunctionAgent' 和 DSPy 框架实现)。
安装步骤
-
克隆仓库:
git clone https://github.com/shane-kercheval/mcp-client-agent.git cd mcp-client-agent -
创建 '.env' 文件并配置 OpenAI API 密钥: 在项目根目录下创建 '.env' 文件,并添加你的 OpenAI API 密钥。
OPENAI_API_KEY=你的OpenAI_API_密钥注意: 示例服务器和客户端默认使用 'openai/gpt-4o-mini' 模型,需要配置 OpenAI API 密钥才能正常使用。
-
构建项目: 运行 'make build' 命令构建项目环境。这将会安装项目所需的 Python 依赖。
make build
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。本仓库提供了一个示例配置文件 'servers/mcp_fake_server_config.json',用于配置示例 MCP 服务器 ('mcp_fake_server.py')。
以下是 'servers/mcp_fake_server_config.json' 文件的内容和参数注释:
{ "mcpServers": { "fake-server": { // 服务器名称,可以自定义 "command": "python", // 启动服务器的命令,这里使用 python 解释器 "args": [ // 启动命令的参数列表 "servers/mcp_fake_server.py" // 示例 MCP 服务器脚本的路径 ] } } }
重要提示:
- 'command' 字段指定了启动 MCP 服务器的命令,通常是服务器程序的可执行文件或解释器。对于 Python 脚本,通常使用 'python' 或 'python3'。
- 'args' 字段是一个字符串列表,包含了传递给 'command' 的参数。对于示例服务器 'mcp_fake_server.py',参数是脚本自身的路径。
- MCP 客户端 (例如 'mcp_client.py') 需要读取这个配置文件,才能知道如何启动和连接到 MCP 服务器。 在运行 'mcp_client.py' 时,可以使用 '--config' 参数指定配置文件的路径。
基本使用方法
-
启动示例 MCP 服务器 (通过客户端间接启动):
使用 'make chat' 命令可以同时启动示例 MCP 服务器和客户端,并进入聊天模式。'make chat' 命令会读取 'servers/mcp_fake_server_config.json' 配置文件,并根据配置启动 'mcp_fake_server.py' 示例服务器。
make chat启动后,客户端会列出示例服务器提供的工具,并进入交互式聊天界面。你可以输入自然语言指令,客户端会使用示例服务器提供的工具来尝试完成你的请求。
-
与 MCP 客户端代理交互:
在聊天界面中,你可以输入自然语言问题,例如:
>> 反转文本 "hello world"客户端代理会分析你的问题,并尝试调用示例服务器提供的 'reverse_text' 工具来反转文本。
或者,你可以尝试使用计算器工具:
>> 计算 123 乘以 456 的结果客户端代理会调用 'calculator_multiply' 工具来计算乘积。
-
退出聊天:
在聊天界面中输入 'quit' 可以退出客户端。
总结
本仓库提供了一个用于演示 MCP 客户端代理功能的示例 MCP 服务器。虽然示例服务器功能简单,但它展示了 MCP 服务器的基本结构和工具注册机制。你可以参考示例服务器的代码,了解如何使用 'FastMCP' 框架构建更复杂的 MCP 服务器。
信息
分类
开发者工具