使用说明

项目简介

本项目 'mcp-for-next.js' 是一个基于 Next.js 框架构建的 Model Context Protocol (MCP) 服务器的示例实现。它展示了如何使用 MCP 协议在 LLM 客户端和后端服务之间建立标准化的上下文信息交互通道。该示例旨在帮助开发者快速理解和上手 MCP 服务器的开发与部署。

主要功能点

  • 资源管理 (Resources): 虽然示例中未显式展示资源管理功能,但 MCP 服务器的设计目标是支持资源托管和数据访问,开发者可以根据 MCP 协议规范在 'app/mcp.ts' 中扩展资源管理逻辑。
  • 工具注册 (Tools): 示例中已实现一个简单的 'echo' 工具,演示了如何注册工具并供 LLM 客户端调用。开发者可以在 'app/mcp.ts' 中添加更多工具,扩展 LLM 的功能。
  • Prompt 模板 (Prompts): 示例中未显式包含 Prompt 模板功能,但 MCP 服务器支持 Prompt 模板的定义和渲染,开发者可以根据 MCP 协议规范在 'app/mcp.ts' 中实现 Prompt 模板管理。
  • 基于 JSON-RPC 的通信: 服务器通过 JSON-RPC 协议与客户端通信,接收和处理来自客户端的 MCP 请求。
  • SSE 和 Message 路由: 提供 '/sse' 和 '/message' 两个路由,分别用于建立 SSE 长连接和处理短消息请求,支持不同的客户端通信模式。
  • Redis 支持: 使用 Redis 作为消息队列和会话管理的基础设施,保证服务器的可靠性和可扩展性。
  • Vercel 部署优化: 针对 Vercel 平台进行了优化,包括 Fluid Compute 和最大执行时长调整,方便用户快速部署和运行。

安装步骤

  1. 克隆仓库
    git clone https://github.com/vercel-labs/mcp-for-next.js
    cd mcp-for-next.js
  2. 安装依赖
    npm install  # 或 yarn install
  3. 配置 Redis
    • 本项目依赖 Redis。你需要在 Vercel 项目中附加一个 Redis 数据库,并将 Redis 连接 URL 配置到 'process.env.REDIS_URL' 环境变量中。如果你本地运行,也需要确保 Redis 服务可用,并设置 'REDIS_URL' 环境变量。

服务器配置

MCP 客户端需要配置 MCP 服务器的连接信息。对于本示例,客户端需要配置服务器的 URL 作为连接地址。以下是一个示例配置(JSON 格式):

{
  "serverName": "Next.js MCP Server",
  "command": "https://[你的Vercel部署域名]",
  "args": []
}

配置信息说明:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 请将 'https://[你的Vercel部署域名]' 替换为你实际部署到 Vercel 后的域名。 如果本地运行,可以使用本地开发服务器的地址,例如 'http://localhost:3000'。
  • 'args': 启动参数,本示例服务器不需要额外的启动参数,保持为空数组即可。

注意:

  • 请确保你的 Vercel 项目已启用 Fluid Compute 功能,以获得更高效的执行性能(尤其是在使用 Vercel Pro 或 Enterprise 账户时,可以调整 'app/sst/route.ts' 中的 'maxDuration' 参数以适应更长的处理时间)。

基本使用方法

  1. 部署到 Vercel
    • 按照 Vercel 的部署流程将本项目部署到 Vercel 平台。
    • 部署成功后,你将获得一个 Vercel 域名,这就是你的 MCP 服务器地址。
  2. 运行示例客户端 (可选)
    • 仓库中包含一个示例客户端 'script/test-client.mjs',你可以使用 Node.js 运行它来测试服务器:
      node scripts/test-client.mjs https://[你的Vercel部署域名]
      将 'https://[你的Vercel部署域名]' 替换为你实际的 Vercel 域名。
  3. 扩展服务器功能
    • 修改 'app/mcp.ts' 文件,可以添加更多的工具 (使用 'server.tool(...)')、资源和 Prompt 模板,以扩展服务器的功能。
    • 开发者需要根据 MCP 协议规范,实现具体的资源管理、工具逻辑和 Prompt 模板渲染功能。

通过以上步骤,你就可以部署和使用这个基于 Next.js 的 MCP 服务器示例,并根据需要进行扩展和定制,以满足你的 LLM 应用的上下文服务需求。

信息

分类

AI与计算