模型上下文协议服务器

MCP服务器是一个基于SQLite持久化和SSE实时通信的模型上下文管理服务,支持JSON-RPC 2.0协议,适用于AI辅助开发工具的上下文维护。

  • by Maf38
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 maf38/mcp-server

使用说明

MCP服务器(模型上下文协议)

与模型上下文协议(MCP)兼容的上下文管理服务器,使用SQLite进行持久性,使用服务器发送事件(SSE)进行实时通信。

实际版本:2.0.0

🚀 安装

Docker(单命令)

docker run -d --name mcp-server --restart unless-stopped -p 3000:3000 -v "$(pwd)/data":/app/data -e NODE_ENV=docker -e PORT=3000 -e DB_PATH=/app/data/context.db -e LOG_LEVEL=info --memory=512m --cpus=1 --health-cmd="wget -qO- http://localhost:3000/health || exit 1" --health-interval=30s --health-timeout=10s --health-retries=3 --health-start-period=10s --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 maf38/mcp-server:2.0.0

Docker Compose(高级安装)

version: '3'

services:
  mcp-server:
    image: maf38/mcp-server:2.0.0
    container_name: mcp-server
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - /path/to/data:/app/data
    environment:
      NODE_ENV: docker
      PORT: 3000
      DB_PATH: /app/data/context.db
      LOG_LEVEL: info
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: '1.0'

⚠️ 别忘了更换 /path/to/data 通过要存储数据库的实际路径。

取消突袭

  1. 转到应用程序
  2. 重新研究“MCP服务器”
  3. 点击安装

🔧 配置

环境变量

基本

  • PORT :服务器侦听端口(默认值:3000)
  • DB_PATH :数据库路径(默认值:/app/data/context.db)

日志记录

  • NODE_ENV :运行时环境(“docker”用于禁用日志文件)
  • LOG_LEVEL :日志级别(错误、警告、信息、http、调试)(默认值:信息)

📖 API

MCP路线

路由SSE(服务器发送事件)

GET /sse

建立SSE连接以接收实时更新。

消息MCP

POST /message
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "context/update",
  "params": {
    "key": "string",
    "value": "string",
    "metadata": {
      "type": "string",
      "timestamp": "string",
      "source": "string"
    }
  }
}

路线休息

保存/更新上下文

POST /context
Content-Type: application/json

{
  "key": "string",
  "value": "string",
  "metadata": {
    "type": "string",
    "timestamp": "string",
    "source": "string"
  }
}

恢复上下文

GET /context/:key

批处理操作(批处理)

POST /context/batch
Content-Type: application/json

[
  {
    "key": "string",
    "value": "string",
    "metadata": {
      "type": "string",
      "timestamp": "string",
      "source": "string"
    }
  }
]

删除上下文

DELETE /context/:key

道路系统

检查服务器状态

GET /health

获取服务器功能

GET /capabilities

🔍 日志记录

Docker环境

  • 日志发送到stdout/stderr
  • 可通过以下方式访问 docker logs mcp-server
  • 可通过配置日志级别 LOG_LEVEL

在标准环境中

  • 存储在文件夹中的日志 logs/
  • 每日文件旋转
  • 旧日志的自动压缩
  • 保护吊坠14 jours
  • 每个文件限制为20MB

日志格式

YYYY-MM-DD HH:mm:ss.SSS [LEVEL] [CONTEXT] Message {Metadata}

🔒 数据的持久性

数据存储在SQLite中指定的位置 DB_PATH. 对于Docker和Unraid,将卷装载到 /app/data.

🛠️ 发展

Prérequis

  • Node.js>=18
  • npm

安装

npm install
npm run build
npm start

测试

npm test

📦 发布Docker

图像可在Docker Hub上获得:

  • 版本稳定(2.0.0): maf38/mcp-server:2.0.0
  • 最新版本: maf38/mcp-server:latest

🔄 与GitHub副驾驶集成

该服务器实现了模型上下文协议(MCP),允许GitHub副驾驶在会话之间保持持久上下文。功能包括:

  • 通过SSE进行双向通信
  • JSON-RPC 2.0消息格式
  • 持久性SQLite
  • 元数据支持
  • 批处理操作

有关MCP协议的更多信息,请参阅文件中的文档 docs/.