这是一个提供知识图谱管理功能的模型上下文协议服务器。该服务器使大语言模型能够创建、读取、更新和删除持久知识图谱中的实体和关系,帮助AI助手在对话之间维持记忆。这是官方TypeScript 内存 MCP 服务器的 Go 实现。
create_entities - 在知识图谱中创建多个新实体
entities(数组,必需):要创建的实体对象数组
name(字符串):实体名称entityType(字符串):实体类型observations(字符串数组):与实体相关的观察create_relations - 创建实体之间的多个新关系
relations(数组,必需):关系对象数组
from(字符串):关系开始的实体名称to(字符串):关系结束的实体名称relationType(字符串):关系类型(主动语态)add_observations - 向现有实体添加新的观察
observations(数组,必需):观察添加数组
entityName(字符串):要添加观察的实体名称contents(字符串数组):要添加的观察delete_entities - 删除多个实体及其相关关系
entityNames(数组,必需):要删除的实体名称数组delete_observations - 从实体中删除特定观察
deletions(数组,必需):观察删除数组
entityName(字符串):包含观察的实体名称observations(字符串数组):要删除的观察delete_relations - 从知识图谱中删除多个关系
relations(数组,必需):要删除的关系对象数组
from(字符串):源实体名称to(字符串):目标实体名称relationType(字符串):关系类型read_graph - 读取整个知识图谱
search_nodes - 根据查询搜索知识图谱中的节点
query(字符串,必需):匹配实体名称、类型和观察的搜索查询open_nodes - 通过名称打开知识图谱中的特定节点
names(数组,必需):要检索的实体名称数组使用单个命令安装最新版本:
curl -fsSL https://raw.githubusercontent.com/okooo5km/memory-mcp-server-go/main/scripts/install.sh | bash
选项:
curl -fsSL https://raw.githubusercontent.com/okooo5km/memory-mcp-server-go/main/scripts/install.sh | bash -s -- -v v0.2.3... | bash -s -- -d /usr/local/bin注意:Windows 用户,请参见下面的 Windows 部分。
从 GitHub 发布页面 下载适用于您平台的最新预构建二进制文件:
从 GitHub 发布页面 下载适用于您平台的二进制文件,并按照以下安装说明进行操作。
<details> <summary><b>macOS 安装</b></summary># 下载 arm64 构建 (.tgz)
curl -L https://github.com/okooo5km/memory-mcp-server-go/releases/latest/download/memory-mcp-server-go-darwin-arm64.tgz -o memory-mcp-server.tgz
tar -xzf memory-mcp-server.tgz
# 解压后的二进制文件是平台命名的(例如,memory-mcp-server-go-darwin-arm64)
BIN=$(tar -tzf memory-mcp-server.tgz | head -1)
chmod +x "$BIN"
# 移除检疫属性以避免安全警告
xattr -d com.apple.quarantine "$BIN" || true
# 使用统一名称安装到本地 bin 目录
mkdir -p ~/.local/bin
mv "$BIN" ~/.local/bin/memory-mcp-server-go
rm memory-mcp-server.tgz
# 下载 x86_64 构建 (.tgz)
curl -L https://github.com/okooo5km/memory-mcp-server-go/releases/latest/download/memory-mcp-server-go-darwin-amd64.tgz -o memory-mcp-server.tgz
tar -xzf memory-mcp-server.tgz
BIN=$(tar -tzf memory-mcp-server.tgz | head -1)
chmod +x "$BIN"
# 移除检疫属性以避免安全警告
xattr -d com.apple.quarantine "$BIN" || true
# 使用统一名称安装到本地 bin 目录
mkdir -p ~/.local/bin
mv "$BIN" ~/.local/bin/memory-mcp-server-go
rm memory-m-服务器.tgz
<!-- 当前发布不提供通用二进制文件。-->
</details>
<details>
<summary><b>Linux 安装</b></summary>
# 下载 amd64 构建 (.tgz)
curl -L https://github.com/okooo5km/memory-mcp-server-go/releases/latest/download/memory-mcp-server-go-linux-amd64.tgz -o memory-mcp-server.tgz
tar -xzf memory-mcp-server.tgz
BIN=$(tar -tzf memory-mcp-server.tgz | head -1)
chmod +x "$BIN"
# 使用统一名称安装到本地 bin 目录
mkdir -p ~/.local/bin
mv "$BIN" ~/.local/bin/memory-mcp-server-go
rm memory-mcp-server.tgz
# 下载 arm64 构建 (.tgz)
curl -L https://github.com/okooo5km/memory-mcp-server-go/releases/latest/download/memory-mcp-server-go-linux-arm64.tgz -o memory-mcp-server.tgz
tar -xzf memory-mcp-server.tgz
BIN=$(tar -tzf memory-mcp-server.tgz | head -1)
chmod +x "$BIN"
# 使用统一名称安装到本地 bin 目录
mkdir -p ~/.local/bin
mv "$BIN" ~/.local/bin/memory-mcp-server-go
rm memory-mcp-server.tgz
</details>
<details>
<summary><b>Windows 安装</b></summary>
memory-mcp-server-go.exe 移动到 PATH 中的位置memory-mcp-server-go.exe 移动到 PATH 中的位置确保安装目录在您的 PATH 中:
export PATH="$HOME/.local/bin:$PATH" 添加到您的 shell 配置文件(.bashrc、.zshrc 等)可选地验证校验和(推荐):发布包括 SHA256SUMS.txt。
# macOS/Linux 示例
cd ~/.local/bin/.. # 您下载工件的位置
shasum -a 256 -c SHA256SUMS.txt | grep memory-mcp-server-go || true
克隆仓库:
git clone https://github.com/okooo5km/memory-mcp-server-go.git
cd memory-mcp-server-go
构建项目:
使用 Make(推荐):
# 为当前平台构建
make build
# 一次性构建所有平台(纯 Go SQLite,无 CGO)
make build-all
# 为所有平台创建分发包
make dist
二进制文件将放置在 .build 目录中。所有构建都使用纯 Go SQLite 以获得最大兼容性。
直接使用 Go:
go build
安装二进制文件:
# 安装到用户目录(推荐,无需 sudo)
mkdir -p ~/.local/bin
cp memory-mcp-server-go ~/.local/bin/
确保 ~/.local/bin 在您的 PATH 中,通过添加到您的 shell 配置文件:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc # 或 ~/.bashrc
source ~/.zshrc # 或 source ~/.bashrc
服务器支持以下命令行参数:
-t, --transport:传输类型:stdio、sse 或 http(默认为 stdio)-m, --memory:存储知识图谱的自定义路径(可选)-p, --port:SSE 传输的端口号(默认为 8080)--storage:强制存储类型(sqlite 或 jsonl,未指定则自动检测)--auto-migrate:启用 JSONL 到 SQLite 的自动迁移(默认启用)--migrate:从 JSONL 文件迁移到 SQLite(独立操作)--migrate-to:迁移的目标 SQLite 文件--dry-run:执行迁移的干运行而不做更改--force:在迁移期间强制覆盖目标文件--http-endpoint, --http_ep:HTTP 端点路径(默认:/mcp)--http-heartbeat:心跳间隔,例如 30s,1m(默认:30s)--http-stateless:以无状态模式运行 HTTP 传输(无服务器端会话跟踪)--auth-bearer <token>:要求 Authorization: Bearer <token> 对于 SSE 和可流式传输的 HTTP 端点示例用法:
# 使用默认设置(stdio 传输,自动检测存储)
memory-mcp-server-go
# 指定自定义内存文件位置(自动迁移启用)
memory-mcp-server-go --memory /path/to/your/memory.json
# 强制使用 SQLite 存储(跳过自动检测)
memory-mcp-server-go --storage sqlite --memory /path/to/your/data.db
# 手动迁移 JSONL 到 SQLite
memory-mcp-server-go --migrate /path/to/memory.json --migrate-to /path/to/memory.db
# 使用特定端口的 SSE 传输
memory-mcp-server-go --transport sse --port 9000
# 使用可流式传输的 HTTP 传输,带有自定义端点和心跳
memory-mcp-server-go --transport http --port 8080 --http-endpoint /mcp --http-heartbeat 45s
# 启用 Bearer 认证(适用于 SSE/HTTP)
memory-mcp-server-go --transport http --port 8080 --http-endpoint /mcp --auth-bearer mytoken
Mcp-Session-Id):curl -i -X POST http://localhost:8080/mcp \
-H 'Content-Type: application/json' \
# 如果启动时使用了 --auth-bearer,则包含以下头部
-H 'Authorization: Bearer mytoken' \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"initialize",
"params":{
"protocolVersion":"2025-03-26",
"capabilities":{}
}
}'
curl -N http://localhost:8080/mcp \
-H 'Authorization: Bearer mytoken' \
-H 'Mcp-Session-Id: <粘贴步骤 1 中的会话 ID>'
search_nodes):curl -s http://localhost:8080/mcp \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer mytoken' \
-H 'Mcp-Session-Id: <粘贴步骤 1 中的会话 ID>' \
-d '{
"jsonrpc":"2.0",
"id":2,
"method":"tools/call",
"params":{
"name":"search_nodes",
"arguments":{"query":"idea"}
}
}'
curl -X DELETE http://localhost:8080/mcp \
-H 'Authorization: Bearer mytoken' \
-H 'Mcp-Session-Id: <粘贴步骤 1 中的会话 ID>'
当运行 --transport sse 并且 --auth-bearer mytoken:
# 连接 SSE 流
curl -N http://localhost:8080/sse -H 'Authorization: Bearer mytoken'
# 发送 JSON-RPC 消息
curl -s -X POST http://localhost:8080/message \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer mytoken' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{}}}'
--auth-bearer $(openssl rand -hex 32) 并定期轮换。Authorization 头转发到后端。示例(Nginx):location /mcp {
proxy_set_header Authorization $http_authorization;
proxy_pass http://127.0.0.1:8080/mcp;
}
location /sse {
proxy_set_header Authorization $http_authorization;
proxy_pass http://127.0.0.1:8080/sse;
}
location /message {
proxy_set_header Authorization $http_authorization;
proxy_pass http://127.0.0.1:8080/message;
}
Access-Control-Allow-Origin: *。不要依赖浏览器原点检查;在代理和服务器上强制认证。内存 MCP 服务器自动检测并升级您的存储以实现最佳性能:
SQLite(推荐)
JSONL(遗留)