这是一个展示如何构建基于Model Context Protocol (MCP) 服务器的示例项目。它使用 FastMCP 库来简化 MCP 服务器的实现。

项目简介

该仓库是为 MCP 代理工作坊准备的代码,包含多个示例,其中最核心的是演示如何使用 FastMCP 搭建一个 MCP 服务器,并将其提供的工具集成到 LLM 代理应用中。

主要功能点

  • 工具托管与执行: 示例服务器能够注册并托管多种工具(如日期计算、数字相加、商品信息查询、退货政策查询等)。LLM 客户端可以通过标准协议调用这些工具。
  • 支持标准协议: 服务器示例代码默认支持 Stdio 传输协议,也提供了 SSE 协议的注释示例,符合 MCP 协议的传输要求。
  • 与LLM集成示例: 仓库提供了客户端代码,演示如何连接 MCP 服务器,获取工具列表,并将工具信息提供给 LLM(如 Google Gemini),然后根据 LLM 的决策调用相应的服务器工具。

安装步骤

  1. 克隆仓库: 将 GitHub 仓库克隆到本地。
    git clone https://github.com/Arvind-Narayan/MCP-Agents-Workshop.git
    cd MCP-Agents-Workshop
  2. 设置虚拟环境: 创建并激活 Python 虚拟环境。
    python3 -m venv .venv
    # 对于 macOS/Linux 用户
    source .venv/bin/activate
    # 对于 Windows 用户
    .venv\Scripts\activate
  3. 安装依赖: 安装项目所需的 Python 包,包括 'mcp' 和其他工具库。
    pip install -r requirements.txt
  4. 配置API Key (可选,仅用于LLM客户端示例): 如果需要运行LLM客户端示例 ('1_MCP/llm_client.py'),请在 '.env' 文件中配置您的 Google API Key。
    # 在项目根目录创建或编辑 .env 文件
    GOOGLE_API_KEY="YOUR_API_KEY"

服务器配置

MCP 客户端连接 MCP 服务器时,需要提供服务器的启动命令和参数。对于该仓库中的 '1_MCP/server.py' 示例服务器,其配置信息如下(这是客户端需要使用的信息,不是您需要编辑的文件):

{
  "name": "Workshop Demo", // 服务器名称,在服务器代码中定义
  "command": "python",     // 启动服务器的可执行命令
  "args": ["1_MCP/server.py"] // 传递给命令的参数,指向服务器脚本文件
}

注意:如果运行 '3_Langraph_MCP/mcp_server.py' 示例,'name' 将是 "Langgraph_MCP_Server",'args' 将是 '["3_Langraph_MCP/mcp_server.py"]'。

基本使用方法

  1. 启动MCP服务器: 在终端中运行服务器脚本。服务器将通过 Stdio 协议监听客户端连接。
    # 确保您已激活虚拟环境
    python 1_MCP/server.py
    # 或者运行另一个服务器示例
    # python 3_Langraph_MCP/mcp_server.py
    服务器启动后,会等待客户端连接。请保持此终端窗口开启。
  2. 启动MCP客户端: 在另一个终端窗口中,运行示例客户端脚本。客户端将启动服务器进程(如果尚未运行)并与之通信。
    # 确保在另一个终端中也激活了相同的虚拟环境
    python 1_MCP/simple_client.py
    # 或者运行 LLM 客户端示例(需要配置 GOOGLE_API_KEY)
    # python 1_MCP/llm_client.py
    # 或者运行 Langraph 代理客户端示例(需要配置 GOOGLE_API_KEY)
    # python 3_Langraph_MCP/mcp_client.py

客户端将连接到服务器,执行获取工具列表、调用工具等操作,并在终端中打印结果。

通过运行这些示例,您可以了解 MCP 服务器的基本工作原理以及客户端如何与其交互来获取和利用工具。

信息

分类

AI与计算