本项目是用于构建自定义 Model Context Protocol (MCP) 服务器的样板(boilerplate),提供了实现 MCP 协议基础功能的结构。它可以作为连接大型语言模型 (LLM) 客户端与外部工具和数据源的后端。

项目简介

MCP 服务器旨在以标准化方式为 LLM 提供上下文和服务。此样板实现了 MCP 的服务器端部分,支持 Server-Sent Events (SSE) 传输协议,提供了一个可扩展的框架,方便开发者在此基础上添加自己的工具和功能。

主要功能点

  • MCP 服务器核心实现: 基于官方 MCP SDK 构建,处理 MCP 协议规定的请求和响应。
  • 工具注册与调用: 提供注册自定义工具的机制,LLM 客户端可以通过协议发现并调用这些工具(已包含一个计算器工具示例)。
  • 日志通知: 支持不同级别的日志记录,并能向客户端发送日志通知。
  • SSE 传输支持: 使用 Server-Sent Events 作为与客户端通信的传输协议。
  • 安全认证: 集成了 API Key 鉴权机制,保护服务器接口。
  • 会话管理: 管理多个客户端连接会话的状态。
  • 优雅关停: 支持接收中断信号(SIGINT, SIGTERM)并执行清理工作。

安装步骤

  1. 确保安装 Node.js 和 npm。
  2. 克隆或下载仓库代码。
  3. 进入项目目录,安装依赖:
    npm install
  4. 创建 '.env' 文件: 在项目根目录创建名为 '.env' 的文件,并配置端口和 API Key:
    PORT=4005
    API_KEY=你的安全密钥
    将 '你的安全密钥' 替换为一个您自己设定的字符串。
  5. 构建项目:
    npm run build
  6. 启动服务器 (SSE 模式):
    npm run start:sse
    服务器将会在 '.env' 文件中指定的端口启动。

服务器配置 (面向 MCP 客户端)

此 MCP 服务器使用 HTTP/SSE 传输协议。要将 MCP 客户端连接到此服务器,您需要在 MCP 客户端的配置中添加一个服务器条目。主要的配置信息是服务器的连接 URL,其中需要包含您的 API Key 进行认证。

例如,如果服务器运行在 'localhost:4005' 端口,并且您在 '.env' 文件中设置的 'API_KEY' 是 'my_secret_key',则客户端配置中需要使用的连接 URL 类似于:

'http://localhost:4005/sse?API_KEY=my_secret_key'

请根据您实际部署的服务器地址、端口和设定的 API Key 来构建正确的 URL。在 MCP 客户端的配置中,您通常会为此 URL 指定一个本地名称(例如 'mcp-server' 或任何您喜欢的名字),并将 URL 配置到相应的字段中。MCP 客户端会自动识别这是基于 HTTP/SSE 的连接。

基本使用方法

  1. 按照上述步骤安装和启动 MCP 服务器。
  2. 配置您的 MCP 客户端,使其连接到服务器的 SSE URL (例如 'http://localhost:4005/sse?API_KEY=您的密钥')。
  3. 在连接成功后,MCP 客户端可以请求列出服务器提供的工具(如计算器)。
  4. LLM 可以根据工具描述调用这些工具,并向服务器发送带有参数的工具调用请求。
  5. 服务器会执行相应的工具处理器并将结果返回给客户端。服务器日志会显示请求和处理过程。

信息

分类

AI与计算