开发者记忆MCP服务器

一个基于Go的服务器,用于捕获、持久化和提供项目上下文(代码、差异、日志等)以支持LLM驱动的助手。

  • by agaonker
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 agaonker/mcp-memory-server

使用说明

开发人员内存MCP服务器

一个基于Go的服务器,为LLM驱动的助手捕获、持久化和提供项目上下文(代码、差异、日志等)。将其视为一个按仓库的结构化内存库,与Git和VSCode干净集成。

特性

  • 🕵️‍♂️ 文件监视:使用fsnotify实时监视文件更改
  • 💾 上下文存储:通过版本控制在BoltDB中持久化上下文
  • 🔄 Git集成:捕获提交历史和差异
  • 🌐 API服务器:用于上下文访问的REST和WebSocket端点
  • 🤖 LLM就绪:LLM消费的结构化数据格式

建筑

                  +--------------------+
                  |    VSCode Plugin   |
                  +---------+----------+
                            |
                            v
            +---------------+---------------+
            |   Developer Memory MCP Server |
            +---------------+---------------+
                            |
        +-------------------+--------------------+
        |                        |                |
        v                        v                v
+---------------+      +----------------+    +----------------+
| File Watcher  |      | Git Context    |    | Build/Run Logs |
+---------------+      +----------------+    +----------------+
        |                      |                      |
        v                      v                      v
                +-----------------------------+
                |  Context Store (BoltDB)     |
                +-----------------------------+
                            |
                            v
                 +----------------------+
                 |   LLM Integration    |
                 +----------------------+

入门指南

先决条件

  • 转到1.21或更高版本
  • 要监视的Git存储库

安装

  1. 克隆存储库:

    git clone https://github.com/agaonker/mcp-memory-server.git
    cd mcp-memory-server
    
  2. 安装依赖项:

    go mod download
    
  3. 构建服务器:

    go build -o mcp-server cmd/server/main.go
    

用法

  1. 启动服务器:

    ./mcp-server -repo /path/to/your/repo -port 9000
    
  2. 服务器将:

    • 创建一个 .mcp 存储库中的目录
    • 开始监视文件更改
    • 开始捕获上下文
  3. 访问API:

    • REST端点:
      • GET /context -获取所有上下文
      • POST /context/add -添加新上下文
      • POST /context/clear -清除所有上下文
      • POST /context/search -搜索上下文
    • WebSocket端点:
      • ws://localhost:9000/ws -实时更新

api参考

REST端点

GET/上下文

检索存储库的所有上下文。

答复:

{
  "files": {
    "path/to/file": {
      "type": "write",
      "timestamp": "2024-03-21T10:00:00Z",
      "size": 1024,
      "mode": "-rw-r--r--"
    }
  },
  "commits": {
    "abc123": {
      "message": "Initial commit",
      "author": "John Doe",
      "timestamp": "2024-03-21T09:00:00Z"
    }
  }
}

POST/上下文/添加

向存储添加新上下文。

请求:

{
  "files": {
    "path/to/file": {
      "type": "write",
      "timestamp": "2024-03-21T10:00:00Z"
    }
  }
}

POST/上下文/清除

从存储中清除所有上下文。

POST/上下文/搜索

搜索与查询匹配的上下文。

请求:

{
  "type": "write",
  "timestamp": "2024-03-21T10:00:00Z"
}

WebSocket事件

WebSocket连接接收有关文件更改的实时更新:

{
  "type": "file_change",
  "path": "path/to/file",
  "event": "write",
  "timestamp": "2024-03-21T10:00:00Z"
}

发展

项目结构

.
├── cmd/
│   └── server/
│       └── main.go
├── internal/
│   ├── server/
│   │   └── server.go
│   ├── store/
│   │   └── store.go
│   └── watcher/
│       └── watcher.go
├── go.mod
└── README.md