使用说明
开发人员内存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存储库
安装
-
克隆存储库:
git clone https://github.com/agaonker/mcp-memory-server.git cd mcp-memory-server -
安装依赖项:
go mod download -
构建服务器:
go build -o mcp-server cmd/server/main.go
用法
-
启动服务器:
./mcp-server -repo /path/to/your/repo -port 9000 -
服务器将:
- 创建一个
.mcp存储库中的目录 - 开始监视文件更改
- 开始捕获上下文
- 创建一个
-
访问API:
- REST端点:
GET /context-获取所有上下文POST /context/add-添加新上下文POST /context/clear-清除所有上下文POST /context/search-搜索上下文
- WebSocket端点:
ws://localhost:9000/ws-实时更新
- REST端点:
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