项目简介
该仓库是一个 AI 教程集合,其中包括了使用 'fastmcp' Python 库来构建和运行 Model Context Protocol (MCP) 服务器的示例。这些示例展示了如何定义 MCP 的核心组成部分:资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts),以及如何启动服务器以供 MCP 客户端连接和使用。
主要功能点
- 定义 MCP 资源: 示例展示了如何使用 '@mcp.resource()' 装饰器创建通过 URI 访问的数据端点。
- 定义 MCP 工具: 示例展示了如何使用 '@mcp.tool()' 装饰器创建可供 LLM 调用的外部功能。
- 定义 Prompt 模板: 示例展示了如何使用 '@mcp.prompt()' 装饰器创建 LLM 可以获取和使用的预定义 Prompt 结构。
- 运行 MCP 服务器: 示例包含启动一个基于 SSE (Server-Sent Events) 传输协议的 MCP 服务器的代码,使其能够接收来自 MCP 客户端的请求。
安装步骤
- 克隆仓库:
git clone https://github.com/yogev-ktuvim/AI-Tutorials.git cd AI-Tutorials - 安装依赖: 导航到包含服务器示例的目录(例如 'agent-using-mcp-tools/src/mcp_server' 或 'create-remote-mcp-server'),并安装所需的 Python 包。通常只需要 'fastmcp' 和其依赖项。
请根据具体示例目录下的 README 文件确认准确的依赖安装方式。# 例如,进入其中一个服务器示例目录 cd agent-using-mcp-tools/src/mcp_server # 安装依赖 pip install -r requirements.txt # 如果存在 requirements.txt # 或者手动安装 fastmcp 库 pip install fastmcp anyio
服务器配置
MCP 客户端需要配置服务器的启动信息才能连接。对于此示例,您可以根据服务器代码(如 'agent-using-mcp-tools/src/mcp_server/server.py' 或 'create-remote-mcp-server/server.py' 文件)构建客户端所需的 JSON 配置。典型的配置信息如下所示,客户端会使用这些信息来启动和连接到 MCP 服务器进程:
- 'server_name': 服务器的名称,例如 '"Echo"' (取决于 'FastMCP' 初始化时传入的名称)。
- 'command': 启动服务器进程的命令,通常是 '"python"'。
- 'args': 一个字符串列表,包含传递给 'command' 的参数,通常是服务器 Python 脚本的路径,例如 '["path/to/your/server.py"]'。
- 'transport': 服务器使用的传输协议,此示例中使用的是 '"sse"'。
- 'transport_config': 一个字典,包含传输协议的配置详情。对于 '"sse"',通常包含服务器监听的 URL,例如 '{"url": "http://127.0.0.1:8004/sse"}'。
注意:上述是配置信息描述,实际在客户端配置时需要按照 MCP 客户端的要求构建对应的 JSON 结构。
基本使用方法
- 启动 MCP 服务器: 打开终端,导航到包含服务器脚本的目录(例如 'agent-using-mcp-tools/src/mcp_server'),然后运行服务器脚本。
服务器将在指定的地址和端口(默认为 'http://0.0.0.0:8004')启动,并使用 SSE 传输。# 在服务器目录中运行 python server.py - 启动 MCP 客户端: 使用兼容 MCP 协议的客户端(例如仓库中提供的 'client.py' 示例,或任何支持 MCP 的 LLM 应用/框架),并配置其连接到刚刚启动的服务器地址 ('http://127.0.0.1:8004/sse')。客户端即可发现并调用服务器暴露的资源、工具和 Prompt。例如,示例服务器提供了 "echo" 资源、工具和 Prompt,客户端可以通过这些接口与服务器交互。
通过运行这些示例,您可以了解如何使用 'fastmcp' 库快速构建一个简单的 MCP 服务器并与客户端进行通信。
信息
分类
开发者工具