使用说明

项目简介

本项目是一个实现了 Model Context Protocol (MCP) 协议的服务器,旨在为大型语言模型(LLM)应用提供结构化的上下文管理服务。它允许开发者通过标准化的 API 接口,轻松地管理用户会话、存储和检索上下文数据,并利用配置的 AI 模型进行上下文处理和查询。

主要功能点

  • 会话管理: 支持创建、获取、更新和删除用户会话,方便跟踪用户交互历史。
  • 上下文存储与检索: 允许存储和检索与会话相关的上下文数据,例如对话历史、用户偏好等。
  • 模型查询: 支持使用存储的上下文数据向配置的 AI 模型发送查询请求,实现上下文相关的智能问答。
  • 上下文处理: 提供上下文合并和总结功能,帮助提炼和管理复杂的上下文信息。
  • API 鉴权: 所有 API 接口均通过 API 密钥进行保护,确保服务安全。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/evinhua/model-context-protocol-server.git
    cd model-context-protocol-server
  2. 安装依赖:

    npm install
  3. 配置环境变量: 在项目根目录下创建 '.env' 文件,并根据需要配置以下环境变量:

    PORT=3000                  # 服务器端口号 (默认: 3000)
    API_KEY=your_api_key_here   # API 密钥,用于接口鉴权 (请替换为你的密钥)
    MODEL_ENDPOINT=http://localhost:8000/v1/completions # AI 模型 API 接口地址 (请替换为你的模型服务地址)
    CONTEXT_DB_PATH=./data/context_db.json # 上下文数据存储路径 (默认: ./data/context_db.json)
    MODEL_TYPE=mistral          # 模型类型 (支持: mistral, openai, anthropic, generic,默认: mistral)

    注意: 'API_KEY' 环境变量用于保护服务器 API 接口,请务必设置一个安全的密钥。 'MODEL_ENDPOINT' 需要配置为你实际使用的 AI 模型服务的 API 地址。

  4. 启动服务器:

    npm start

    服务器成功启动后,将在控制台输出运行地址,例如 'MCP Server running on port 3000' 和 'API available at http://localhost:3000/api'。

服务器配置 (MCP 客户端)

对于 MCP 客户端,你需要配置以下信息以连接到此 MCP 服务器。以下是 JSON 格式的配置示例,请根据实际情况修改:

{
  "serverName": "MCP Context Server",
  "command": "npm",
  "args": ["start"],
  "description": "模型上下文管理服务器",
  "baseUrl": "http://localhost:3000/api"
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'npm'。
  • 'args': 启动命令的参数,这里使用 'start',对应 'npm start' 命令。
  • 'description': 服务器描述,可以自定义。
  • 'baseUrl': 服务器 API 的基础 URL,MCP 客户端将基于此 URL 构建请求。

MCP 客户端需要能够执行 'npm start' 命令来启动此 MCP 服务器。 实际部署时,请根据服务器的部署方式调整 'command' 和 'args' 配置。

基本使用方法

以下是一些基本 API 使用示例,你可以使用 'curl' 或其他 HTTP 客户端进行测试。

1. 创建会话:

curl -X POST http://localhost:3000/api/session \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"metadata": {"user": "example_user"}}'

成功创建会话后,服务器将返回包含会话信息的 JSON 响应。

2. 创建上下文:

curl -X POST http://localhost:3000/api/context \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "session_id_from_previous_step",
    "data": {
      "conversation": [
        {"role": "user", "content": "你好!"},
        {"role": "assistant", "content": "你好!很高兴为您服务。"}
      ]
    }
  }'

将 'session_id_from_previous_step' 替换为实际的会话 ID。成功创建上下文后,服务器将返回包含上下文信息的 JSON 响应。

3. 使用上下文查询模型:

curl -X POST http://localhost:3000/api/model/query \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "刚才我们聊了什么?",
    "contextId": "context_id_from_previous_step",
    "sessionId": "session_id_from_session_creation"
  }'

将 'context_id_from_previous_step' 和 'session_id_from_session_creation' 替换为实际的上下文 ID 和会话 ID。 服务器将返回模型生成的回复。

更多 API 接口和详细使用方法请参考仓库 README.md 文件和代码注释。

信息

分类

AI与计算