项目简介

'advanced-mcp-features' 仓库是一个用于深入学习和实践 Model Context Protocol (MCP) 高级功能的教程项目。它提供了一系列逐步构建的示例,展示了如何使用 MCP SDK 来创建功能完善的 AI 连接应用。其中最核心的示例是一个名为“EpicMe”的日记应用后端,它作为一个 MCP 服务器,向 LLM 客户端提供上下文信息和操作能力。

主要功能点

  • 资源管理: 托管和管理日记条目 (entries)、标签 (tags) 和视频 (videos) 等数据资源,并提供统一的URI访问接口,支持列表和自动补全功能。
  • 工具集成: 注册并执行多种工具,允许 LLM 客户端执行 CRUD(创建、读取、更新、删除)操作来管理日记条目和标签,并支持为用户日记生成年度总结视频。
  • Prompt 模板: 定义可重用的 Prompt 模板,例如用于向 LLM 请求为日记条目建议标签。
  • 会话管理与能力声明: 实现 MCP 服务器的会话管理,并声明服务器支持的各种能力(如工具、资源、Completion、Prompt、Elicitation 和 Sampling)。
  • 交互式学习: 仓库通过一系列“问题” (problem) 和“解决方案” (solution) 模块,指导开发者逐步掌握 MCP 协议的高级特性,包括工具注解、结构化输出、用户引导 (Elicitation) 和模型采样 (Sampling)。

安装步骤

  1. 克隆仓库: 使用 Git 克隆此仓库到本地。
    git clone --depth 1 https://github.com/epicweb-dev/advanced-mcp-features.git
    cd advanced-mcp-features
  2. 安装依赖: 运行 'npm run setup' 命令安装所有项目依赖。
    npm run setup
  3. 验证环境: 运行以下命令确保 Git、Node.js 和 npm 版本符合要求。
    git --version
    node --version
    npm --version
    请确保 Node.js 版本为 v22.13.0 或更高,npm 版本为 v8.16.0 或更高。

服务器配置 (供MCP客户端连接使用)

该仓库中的 MCP 服务器(例如,针对特定练习的"EpicMe"日记应用服务器)通过 Stdios 传输协议运行。要连接到这个 MCP 服务器,MCP 客户端需要知道服务器的启动命令和参数。

以下是 MCP 客户端可以使用的典型配置信息示例,请根据您想要运行的特定练习来调整路径:

{
  "serverName": "epicme",
  "command": "npm",
  "args": [
    "run",
    "dev:mcp",
    "--prefix",
    "exercises/02.elicitation/01.solution"
  ],
  "description": "MCP客户端的配置示例。其中 'serverName' 是MCP服务器的唯一标识符。'command' 是启动MCP服务器进程的命令。'args' 是传递给命令的参数,'--prefix' 后接的是您想要运行的特定练习的根目录路径(例如:'exercises/02.elicitation/01.solution'),MCP客户端会根据此命令启动服务器进程,并使用Stdio进行通信。"
}

请注意: 上述 'args' 数组中 '--prefix' 后面的路径 'exercises/02.elicitation/01.solution' 需要替换为您实际想要运行的某个练习或解决方案的根目录路径。例如,如果您想运行第一个高级工具练习的解决方案,路径可能是 'exercises/01.advanced-tools/01.solution.annotations'。

基本使用方法

  1. 启动工作坊应用: 在项目根目录运行 'npm start' 启动前端工作坊应用。
  2. 打开浏览器: 访问 'http://localhost:5639/exercise/05/03/solution?preview=solution' (或其他练习的 URL,如在 'README.md' 中说明)。
  3. 连接 MCP 服务器: 在页面上点击 "Start App" 按钮,然后点击 "Connect" 按钮。如果看到 MCP Inspector 应用中显示绿色圆点和 "Connected" 字样,表示 MCP 服务器已成功连接。此时,您可以通过 MCP Inspector 或兼容的 LLM 客户端与 EpicMe MCP 服务器进行交互,调用其注册的工具、访问资源或使用 Prompt 模板。

信息

分类

AI与计算