使用说明

项目简介

AI Cookbook 仓库的 MCP (Model Context Protocol) 演示部分,展示了如何创建和使用 MCP 将外部数据源和服务集成到 LLM 应用中。本演示提供了 TypeScript 和 Python 两种 MCP 服务器的实现,并演示了如何通过 STDIO 和 SSE 协议与 LangGraph Agent 服务器集成。

主要功能点

  • 资源管理: 虽然演示中没有明确的资源定义和管理,但 MCP 服务器的核心概念是管理资源,示例中的 "calendar" 和 "booking" 服务可以被视为对外部数据或服务的抽象资源。
  • 工具注册与执行: 演示包含了 'create_event', 'list_events', 'make_reservation', 'get_user_reservations', 'get_hotels' 等工具的注册和执行示例,展示了 MCP 服务器如何暴露功能供 LLM 调用。
  • Prompt 模板: 虽然演示中没有明确的 Prompt 模板定义,但 MCP 服务器的设计理念是为了支持 Prompt 模板的渲染,以便 LLM 客户端可以定制交互模式。LangGraph 本身也支持 Prompt 模板,结合 MCP 可以实现更灵活的 Prompt 管理。
  • JSON-RPC 通信: MCP 服务器通过 JSON-RPC 协议与客户端通信,虽然代码中没有直接展示 JSON-RPC 细节,但 MCP 协议本身基于 JSON-RPC,且 SDK 内部处理了协议细节。
  • 会话管理和能力声明: MCP 服务器具备会话管理能力(通过 'ClientSession'),并在初始化时声明自身能力(通过 'FastMCP' 或 'McpServer' 的工具注册)。
  • 多种传输协议: 演示支持 STDIO 和 SSE 两种传输协议,展示了 MCP 服务器的灵活性。
  • LangGraph 集成: 演示了如何将 MCP 服务器与 LangGraph Agent 服务器集成,构建更强大的 AI 应用。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/akveo/ai-cookbook
  2. 进入 agent 目录:
    cd ai-cookbook/agent
  3. 安装 agent 服务器依赖:
    poetry install
  4. 进入 mcp-servers/booking-mcp 目录:
    cd ../mcp-servers/booking-mcp
  5. 安装 booking-mcp 服务器依赖:
    bun install
  6. 返回 mcp-servers 目录:
    cd ..
  7. 进入 mcp-servers/calendar-mcp 目录:
    cd calendar-mcp
  8. 安装 calendar-mcp 服务器依赖:
    uv sync
  9. 返回项目根目录:
    cd ../../
  10. 在 '/agent' 目录下创建 '.env' 文件,并设置 'OPENAI_API_KEY' (参考 '.env.example')

服务器配置

  • Booking MCP Server (SSE 协议):
    {
      "server name": "booking",
      "transport protocol": "sse",
      "url": "http://localhost:3001/sse"
    }
  • Calendar MCP Server (SSE 协议):
    {
      "server name": "calendar",
      "transport protocol": "sse",
      "url": "http://localhost:3002/sse"
    }
  • Booking MCP Server (STDIO 协议):
    {
      "server name": "booking",
      "transport protocol": "stdio",
      "command": "npx",
      "args": ["tsx", "/path/to/ai-cookbook/mcp-servers/booking-mcp/src/stdio-server.ts"]
    }
    注意: '/path/to/ai-cookbook/mcp-servers/booking-mcp/src/stdio-server.ts' 需要替换为你的本地仓库中 'stdio-server.ts' 文件的绝对路径。
  • Calendar MCP Server (STDIO 协议):
    {
      "server name": "calendar",
      "transport protocol": "stdio",
      "command": "uvx",
      "args": ["--with", "mcp", "python", "/path/to/ai-cookbook/mcp-servers/calendar-mcp/calendar-mcp-server.py"]
    }
    注意: '/path/to/ai-cookbook/mcp-servers/calendar-mcp/calendar-mcp-server.py' 需要替换为你的本地仓库中 'calendar-mcp-server.py' 文件的绝对路径。

基本使用方法

  1. 启动 Booking MCP 服务器 (SSE 协议):
    cd mcp-servers/booking-mcp && npm start
    或 (STDIO 协议): 无需单独启动,Agent服务器会自动启动 STDIO MCP 服务器。
  2. 启动 Calendar MCP 服务器 (SSE 协议):
    cd mcp-servers/calendar-mcp && uv run python calendar-mcp-server.py sse
    或 (STDIO 协议): 无需单独启动,Agent服务器会自动启动 STDIO MCP 服务器。
  3. 启动 Agent 服务器 (带 MCP 功能):
    cd agent && poetry run server --mcp
  4. 启动 Next.js 客户端:
    cd client && npm run dev
  5. 在浏览器中访问 http://localhost:3000,开始与 AI Agent 交互,Agent 将能够调用 MCP 服务器提供的工具。

信息

分类

开发者工具