项目简介

该仓库是一个 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 客户端的请求。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/yogev-ktuvim/AI-Tutorials.git
    cd AI-Tutorials
  2. 安装依赖: 导航到包含服务器示例的目录(例如 'agent-using-mcp-tools/src/mcp_server' 或 'create-remote-mcp-server'),并安装所需的 Python 包。通常只需要 'fastmcp' 和其依赖项。
    # 例如,进入其中一个服务器示例目录
    cd agent-using-mcp-tools/src/mcp_server
    # 安装依赖
    pip install -r requirements.txt # 如果存在 requirements.txt
    # 或者手动安装 fastmcp 库
    pip install fastmcp anyio
    请根据具体示例目录下的 README 文件确认准确的依赖安装方式。

服务器配置

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 结构。

基本使用方法

  1. 启动 MCP 服务器: 打开终端,导航到包含服务器脚本的目录(例如 'agent-using-mcp-tools/src/mcp_server'),然后运行服务器脚本。
    # 在服务器目录中运行
    python server.py
    服务器将在指定的地址和端口(默认为 'http://0.0.0.0:8004')启动,并使用 SSE 传输。
  2. 启动 MCP 客户端: 使用兼容 MCP 协议的客户端(例如仓库中提供的 'client.py' 示例,或任何支持 MCP 的 LLM 应用/框架),并配置其连接到刚刚启动的服务器地址 ('http://127.0.0.1:8004/sse')。客户端即可发现并调用服务器暴露的资源、工具和 Prompt。例如,示例服务器提供了 "echo" 资源、工具和 Prompt,客户端可以通过这些接口与服务器交互。

通过运行这些示例,您可以了解如何使用 'fastmcp' 库快速构建一个简单的 MCP 服务器并与客户端进行通信。

信息

分类

开发者工具