使用说明

项目简介

gibber-mcp 是一个基于 Model Context Protocol (MCP) 构建的微型服务器,专注于提供密码学工具。它使用 Express.js 框架开发,并利用 Stanford Javascript Crypto Library (SJCL) 提供密钥对生成、共享密钥推导以及消息加解密功能。此服务器通过 Server-Sent Events (SSE) 协议与客户端进行实时通信,为需要安全通信的 LLM 应用提供上下文服务。

主要功能点

  • 密钥对生成: 使用 SJCL P-256 算法生成公钥和私钥对,用于后续的密钥协商和加密通信。
  • 共享密钥推导: 基于用户的公钥和服务器的私钥,推导出共享密钥,为加密通信建立安全基础。
  • 消息加密与解密: 使用 AES-CCM 算法,利用共享密钥对消息进行加密和解密,保障通信内容的机密性。
  • SSE实时通信: 通过 Server-Sent Events 技术,实现服务器向客户端的实时数据推送,适用于需要即时响应的应用场景。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/anton10xr/gibber-mcp
    cd gibber-mcp/mcp-server
  2. 安装依赖: 确保已安装 Node.js 和 npm,然后运行:
    npm install

服务器配置

MCP 客户端需要配置以下信息以连接到 gibber-mcp 服务器。以下是基于仓库信息生成的配置示例(JSON 格式):

{
  "serverName": "gibber-mcp",  // 服务器名称,可自定义
  "command": "node",         // 启动服务器的命令,这里使用 Node.js 运行时
  "args": ["dist/index.js"]   // 启动命令的参数,指向编译后的服务器入口文件
  // 如果直接运行开发环境,可以将 args 修改为 ["src/index.ts"],并使用 "npm run dev" 启动
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端可以使用此名称来标识和管理不同的服务器连接。用户可以根据需要自定义名称。
  • 'command': 运行 MCP 服务器的命令。由于 gibber-mcp 是 Node.js 应用,所以这里使用 'node' 命令来执行 JavaScript 代码。
  • 'args': 传递给 'command' 的参数,用于指定服务器的入口文件。
    • '"dist/index.js"': 这是生产环境下编译后的 JavaScript 文件路径。在执行 'npm run build' 后生成。
    • '["src/index.ts"]': 如果需要在开发环境直接运行 TypeScript 代码,可以将 'args' 修改为 '["src/index.ts"]',同时需要确保使用 'npm run dev' 启动服务器,这通常会自动处理 TypeScript 的编译和运行。

注意: MCP 客户端需要根据实际部署环境和启动方式配置 'command' 和 'args'。如果修改了服务器的端口或部署路径,也需要在客户端配置中进行相应的调整。

基本使用方法

  1. 启动服务器:

    • 开发环境: 运行 'npm run dev' 启动开发服务器。
    • 生产环境: 先运行 'npm run build' 编译项目,然后运行 'npm start' 启动生产服务器。
    • 服务器默认监听 3006 端口,可以通过设置环境变量 'PORT' 来自定义端口号。
  2. 客户端连接:

    • MCP 客户端通过 GET 请求连接到服务器的 '/sse' 端点建立 SSE 连接。
    • 服务器会为每个连接生成唯一的 ID。
  3. 发送消息和调用工具:

    • 客户端通过 POST 请求向 '/messages/{connectionId}' 端点发送符合 MCP 协议的消息。
    • 消息内容可以是文本信息或工具调用请求。
    • 服务器会根据 MCP 协议处理请求,并返回 JSON-RPC 响应或发送 SSE 通知。
  4. 查看服务器状态:

    • 访问 '/status' 端点可以查看服务器的运行状态、版本信息、当前连接数等。

示例:

查看仓库 'README.md' 中提供的 "Example of a full Sonnet 3.7 LLM thread connected to this MCP server" 部分,可以了解 LLM 客户端如何与该 MCP 服务器进行交互,包括如何使用 'generateKeyPair', 'deriveSharedSecret', 'encrypt', 'decrypt' 等工具进行安全通信。

注意事项

  • 该服务器主要提供密码学相关工具,适用于需要进行安全通信的 LLM 应用。
  • 服务器使用 SSE 协议进行通信,客户端需要支持 SSE 协议。
  • 生产环境部署前,建议进行充分的安全测试和性能优化。

信息

分类

AI与计算