使用说明
项目简介
本项目是一个基于 Python FastMCP 框架实现的 MCP 服务器示例,旨在演示如何快速构建一个提供工具服务的 MCP 后端。该服务器目前提供了一个用于检索文档的功能,可以根据用户查询和指定的框架,搜索相关文档内容。
主要功能点
- 工具注册与调用: 通过 'FastMCP' 框架轻松注册 Python 函数为 MCP 工具,并通过 JSON-RPC 协议对外提供服务。
- 文档检索工具: 内置 'get_docs' 工具,可以搜索指定框架(如 crewai, llamaindex, smolagents)的文档,并返回检索结果。
- 标准MCP服务器实现: 遵循 MCP 协议,能够与任何兼容 MCP 协议的客户端进行通信。
- Stdio 传输协议: 使用 Stdio 作为默认传输协议,方便本地开发和调试。
安装步骤
-
安装 Python 依赖: 确保已安装 Python 3.8 或更高版本。在项目根目录下,打开终端并执行以下命令安装所需的 Python 库:
pip install fastmcp duckduckgo_search beautifulsoup4 requests -
克隆仓库: 将 'mcp-agent' 仓库克隆到本地。
服务器配置
MCP 服务器需要配置启动命令和参数,以便 MCP 客户端能够正确连接和调用服务。以下是针对 'mcp-agent' 示例服务器的配置信息(JSON 格式):
{ "server_name": "docs-server", "command": "uv", "args": [ "--directory", "path/to/mcp-agent", // 请替换为 mcp-agent 仓库在您本地的实际路径 "run", "main.py" ] }
配置参数说明:
- 'server_name': 服务器名称,可以自定义,用于在客户端识别不同的 MCP 服务器。例如 "docs-server"。
- 'command': 启动服务器的命令。这里使用 'uv',你需要确保你的环境中已安装 'uv' (可以使用 'pip install uv' 安装)。'uv' 是一个更快的 pip 和 venv 替代品,这里用于运行 Python 脚本。你也可以根据你的环境使用 'python' 或 'python3' 命令。
- 'args': 传递给启动命令的参数列表。
- '--directory': 指定工作目录为 'mcp-agent' 仓库的根目录,请将 'path/to/mcp-agent' 替换为实际路径。
- 'run main.py': 使用 'uv run' 命令运行 'main.py' 文件,即 MCP 服务器的入口文件。
注意: 请务必将 '"path/to/mcp-agent"' 替换为您本地 'mcp-agent' 仓库的绝对路径。
基本使用方法
- 启动 MCP 服务器: 在配置好 MCP 客户端后,客户端会根据您提供的服务器配置信息自动启动 'mcp-agent' 示例服务器。
- 客户端调用工具: 客户端可以使用注册的工具,例如 'get_docs' 工具。'get_docs' 工具接受两个参数:'query' (搜索关键词) 和 'framework' (要搜索的框架名称,如 "crewai", "llamaindex", "smolagents")。客户端可以通过 MCP 协议发送 JSON-RPC 请求来调用这些工具。
示例 (客户端请求调用 'get_docs' 工具): 以下是一个简化的客户端请求示例,展示如何调用 'get_docs' 工具 (实际客户端交互会更复杂,通常由 LLM 或 Agent 框架自动处理):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "tool_name": "get_docs", "tool_args": { "query": "如何使用 Agent", "framework": "crewai" } }, "id": 1 }
服务器收到请求后,会执行 'get_docs' 函数,搜索 crewai 文档中关于 "如何使用 Agent" 的内容,并将结果以 JSON-RPC 响应的形式返回给客户端。
查看 'my_agent.py' 了解客户端如何使用 MCP 服务器提供的工具。 'my_agent.py' 文件展示了如何使用 'smolagents' 框架作为 MCP 客户端,连接并使用 'mcp-agent' 示例服务器提供的工具。您可以参考 'my_agent.py' 中的代码来理解如何配置和使用 MCP 客户端。
信息
分类
开发者工具