Token导航 LogoToken导航TokenDH.com
Goldie MCP logo
数据服务未说明官方级别未说明来源级核验

Goldie MCP

MCP Server

Goldie是一个本地运行的多代理记忆服务器,通过共享的SQLite向量索引存储和管理多代理(如Claude、Codex等)的记忆。

工具数

9

提示词数

0

GitHub Stars

3

资源数

0
记忆管理本地运行GoClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

srfrog

提供方

srfrog

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

戈尔迪🐕

用Go编写的多代理内存MCP服务器,在您的机器上本地运行。戈尔迪商店打字,命名 回忆 在共享的SQLite向量索引中,这样多个代理(Claude、Codex等)就可以 remember, recall, update_memory,以及 forget 从一个池中--替换每个项目 MEMORY.md 所有文件都可以共享后端。

特性

  • 打字记忆:每个内存都有一个类型(user, feedback, project, reference, opinion, idea, todo, reminder),唯一名称、可选描述、正文、代理和源
  • 共享池:Scope是一个SQLite文件——将任意数量的代理指向同一数据库,它们共享内存
  • 语义回忆:在块嵌入上过滤KNN;recall返回父内存加上匹配的摘录
  • 多个嵌入后端:MiniLM(通过ONNX运行时本地)或Ollama(任何嵌入模型)
  • 文件摄取: index_file / index_directory 将文件导入为 reference 按绝对路径命名的内存(校验和门控追加)
  • 异步作业队列:长期运行的索引操作在后台运行,并具有进度跟踪功能

需求

MiniLM后端(需要ONNX运行时)

# macOS
brew install onnxruntime

# Ubuntu/Debian
sudo apt install libonnxruntime-dev

# Fedora/RHEL
sudo dnf install onnxruntime-devel

# Arch Linux
sudo pacman -S onnxruntime

Ollama后端

如果你想使用Ollama而不是MiniLM,你只需要安装Ollama:

# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# Pull an embedding model
ollama pull nomic-embed-text

如果您只打算使用Ollama,请跳过下面的ONNX Runtime安装。

安装

发布(推荐)

从下载预构建的二进制文件 发布页面:

平台二进制
macOS(苹果硅)goldie-mcp-darwin-arm64
macOS(英特尔)goldie-mcp-darwin-amd64
Linux(x86_64)goldie-mcp-linux-amd64
Linux(ARM64)goldie-mcp-linux-arm64
# Example for macOS Apple Silicon
curl -LO https://github.com/srfrog/goldie-mcp/releases/latest/download/goldie-mcp-darwin-arm64
chmod +x goldie-mcp-darwin-arm64
mv goldie-mcp-darwin-arm64 ~/bin/goldie-mcp

发布的二进制文件是专门为macOS编写的,并包含MiniLM模型,因此不需要额外下载。

从源代码构建

需要Go 1.22+、启用CGO和Git LFS(模型文件与LFS一起存储):

git lfs install  # if not already configured
git clone https://github.com/srfrog/goldie-mcp
cd goldie-mcp
make build

配置

命令行标志

标志描述默认值
-b嵌入后端: minilmollamaminilm
-l日志文件路径stderr

环境变量

变量描述默认值
GOLDIE_DB_PATHSQLite数据库的路径~/.local/share/goldie/index.db
GOLDIE_JOURNAL_MODESQLite日志模式PRAGMA。默认情况下,云同步存储是安全的。集 WAL 仅用于本地数据库,以在写入并发期间启用读取DELETE
ONNXRUNTIME_LIB_PATHlibonnxruntime共享库的路径(仅限MiniLM)自动检测到
OLLAMA_HOSTOllama API基本URL(仅限Ollama)http://localhost:11434
OLLAMA_EMBED_MODELOllama嵌入模型名称(仅限Ollama)nomic-embed-text
OLLAMA_EMBED_DIMENSIONS自定义型号尺寸(仅限Ollama)自动检测已知型号

支持的Olama嵌入模型

型号尺寸备注
nomic-embed-text768默认值,通用性良好
mxbai-embed-large1024质量更高,速度更慢
all-minilm384与MiniLM后端相同

对于其他型号,设置 OLLAMA_EMBED_DIMENSIONS 模型的输出维度。

使用Claude代码

使用MiniLM(默认)

claude mcp add -s user -e GOLDIE_DB_PATH=~/.local/share/goldie/index.db goldie /path/to/goldie-mcp

注: ONNXRUNTIME_LIB_PATH 如果库位于标准位置,则是可选的。

与Ollama

claude mcp add -s user -e GOLDIE_DB_PATH=~/.local/share/goldie/index.db goldie /path/to/goldie-mcp -- -b ollama

注意:确保Ollama正在跑步(ollama serve)在启动Claude Code之前。

使用Claude Desktop

添加到您的Claude Desktop配置(claude_desktop_config.json):

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

使用MiniLM(默认)

{
  "mcpServers": {
    "goldie": {
      "type": "stdio",
      "command": "/path/to/goldie-mcp",
      "env": {
        "GOLDIE_DB_PATH": "/home/user/.local/share/goldie/index.db"
      }
    }
  }
}

与Ollama

{
  "mcpServers": {
    "goldie": {
      "type": "stdio",
      "command": "/path/to/goldie-mcp",
      "args": ["-b", "ollama"],
      "env": {
        "GOLDIE_DB_PATH": "/home/user/.local/share/goldie/index.db",
        "OLLAMA_EMBED_MODEL": "nomic-embed-text"
      }
    }
  }
}

使用OpenAI Codex

添加到您的Codex配置(~/.codex/config.toml):

使用MiniLM(默认)

[mcp_servers.goldie]
command = "/path/to/goldie-mcp"

[mcp_servers.goldie.env]
GOLDIE_DB_PATH = "/home/user/.local/share/goldie/index.db"
ONNXRUNTIME_LIB_PATH = "/path/to/libonnxruntime.so"

注: ONNXRUNTIME_LIB_PATH 如果库位于标准位置,则是可选的。Homebrew将把它安装到 /opt/homebrew/lib/libonnxruntime.dylib 在macOS上。在Linux中,使用 ldconfig -p | grep onnxruntime.

与Ollama

[mcp_servers.goldie]
command = "/path/to/goldie-mcp"
args = ["-b", "ollama"]

[mcp_servers.goldie.env]
GOLDIE_DB_PATH = "/home/user/.local/share/goldie/index.db"
OLLAMA_EMBED_MODEL = "nomic-embed-text"

内存模型

戈尔迪指数是一个持平的指数池 回忆每个存储器都有这些字段:

字段必填备注
nameyes数据库中唯一。名称冲突→ remember 失败(见下文)
type以下之一: user, feedback, project, reference, opinion, idea, todo, reminder
body是的全部内容。隐藏在引擎盖下,用于嵌入级别回忆
description单行摘要;参与语义回忆
agentno创建内存的代理(例如。 claude-opus-4-7, codex)
sourceno内存来源(文件路径、编辑器、URL)

分享。 “Scope”只是SQLite文件。多个代理指向同一个 GOLDIE_DB_PATH 共享相同的内存池——没有每个代理的隔离。使用 agentsource 在读取/删除时进行筛选。

命名和冲突。 名称必须是唯一的。 remember 是严格的,没有扰乱。如果两个代理试图创建相同的名称,则第二个代理会出错,预计会 recall 现有的内存和调用 update_memory (或选择其他名称)。

更新语义。 名称是不可变的。 update_memory 接受类型/描述/主体/源/代理的补丁;更改为 descriptionbody 重新嵌入块。

文件摄取。 index_file / index_directory 是 *一* 不扰乱销售规则的例外。它们将文件作为记忆导入 type=reference,与 name = source = 。当SHA-256校验和匹配时,对同一路径重新索引会跳过,当不匹配时,会替换正文。

可用工具

记住

创造新的记忆。如果失败 name 已在使用中——请回忆并使用 update_memory 相反。

参数:

  • name (必填):唯一标识符(例如。, feedback_testing)
  • type (必填):其中之一 user, feedback, project, reference, opinion, idea, todo, reminder
  • body (必填):完整内容
  • description (可选):单行摘要
  • agent (可选):创建内存的代理
  • source (可选):内存生成的位置

召回

语义回忆胜过记忆。返回最相关的记忆以及匹配的块摘录。按类型、代理或来源筛选以缩小范围。

参数:

  • query (必填):主题或问题
  • limit (可选):最大结果(默认5,最大20)
  • type, agent, source (可选):过滤器

update_memory

按id或名称更新现有内存。正文/描述更改重新嵌入。

参数:

  • id_or_name (必填)
  • type, description, body, source, agent (可选补丁)

忘记

删除记忆。需要至少一个过滤器或查询——拒绝擦除所有内容。通过查询,(可选)筛选器中的顶级匹配项将被删除。

参数:

  • name, type, agent, source (可选过滤器)
  • query (可选):语义匹配
  • limit (可选):给定查询时的最大匹配数(默认值5)

list_memories

列出与筛选器匹配的内存,最新的优先。仅返回元数据(无正文)。

参数:

  • type, agent, source (可选过滤器)
  • limit (可选)

count_memories

统计与过滤器匹配的内存。

索引文件

将文件导入为 reference 记忆。记忆的 name 是绝对路径;当校验和更改时,重新索引更新。

参数:

  • path (必填)

索引目录

将目录中的每个匹配文件导入为 reference 回忆。

参数:

  • directory (必填)
  • pattern (可选,默认 *)
  • recursive (可选,默认 false)

job_status、list_jobs、clear_queue

管理异步索引队列。 index_fileindex_directory 将后台完成的作业排队;使用 job_status 检查进度。

跳过模式

在索引目录时,Goldie会自动跳过某些文件和目录,以避免索引无关的内容。

默认跳过模式

如果没有 .goldieskip 文件存在于被索引的目录中,Goldie使用以下默认值:

图案描述
.[!.]*所有点文件和点目录(.git/, .env, .vscode/等等)
node_modules/Node.js依赖关系
vendor/Go/PHP供应商目录
__pycache__/Python字节码缓存
AGENTS.mdAI代理配置
CLAUDE.md克劳德配置

自定义跳过模式

创建一个 .goldieskip 目录中的文件以定义自定义模式。这 替换 完全违约。格式与 .gitignore,具有相同的模式语法。

# .goldieskip example
# Lines starting with # are comments

# Skip all dotfiles/dotdirs
.[!.]*

# Skip dependencies
node_modules/
vendor/
.venv/

# Skip build outputs
dist/
build/
target/

# Skip specific files
*.log
*.tmp
secrets.json

模式语法:

  • * 匹配任何字符序列
  • ? 匹配任何单个字符
  • [abc] 匹配集合中的任何字符
  • [!abc] 匹配不在集合中的任何字符
  • 以结尾的模式 / 匹配目录

示例提示

您可以使用Claude Code、Claude Desktop或Codex的示例提示:

记住

Remember as a feedback memory named "feedback_testing": don't mock the database in integration tests — we got burned last quarter by mock/prod divergence.
Remember this user fact named "user_role": senior Go engineer, ten years of experience, currently learning React.
Save an opinion named "ui_dark_mode": dark mode is easier on the eyes for long sessions.

召回

Recall what you know about database testing
Recall feedback memories about pull request size
What memories do I have about the API design?

update_memory

Update memory "feedback_testing": new body is "use a real Postgres in CI; the staging DB is reset nightly".

忘记

Forget all opinion memories from agent "claude-opus-4-7"
Forget memories matching "old API design notes"

list_memories/count_memories

List my feedback memories
How many memories has agent "codex" written?

index_file/index_directory

Index the file ~/project/README.md
Index all *.md files in ~/docs recursively

代理配置

代理商默认情况下不会去找goldie——Claude Code有自己的 /memory,Codex有自己的上下文处理。回购提供了两个固执己见的模板,将它们推向共享池。两者都很短,可以按原样安全地进入。

克劳德代码

复制 templates/CLAUDE.md~/.claude/CLAUDE.md (它被加载到每个Claude Code会话中):

cp templates/CLAUDE.md ~/.claude/CLAUDE.md

对于项目范围的行为,请将其复制到 /CLAUDE.md.

Codex(命令行界面/应用程序)

复制 templates/AGENTS.md~/.codex/AGENTS.md (食品法典载荷 AGENTS.override.mdAGENTS.md$CODEX_HOME,默认值 ~/.codex):

cp templates/AGENTS.md ~/.codex/AGENTS.md

作为安全带和吊带的措施,请在 ~/.codex/config.toml 因此,即使Codex未加载AGENTS.md,该规则也会在会话开始时触发:

developer_instructions = """
At session start, read and obey ~/.codex/AGENTS.md when it exists.
For persistent memory operations, prefer Goldie over local memory when the Goldie MCP server is connected.
"""

定制

这两个模板都是起点。将它们编辑为:

  • 限制内存 type代理应该创建什么
  • 为添加特定于项目的命名约定 name (例如。 _)
  • 覆盖默认值 agent 价值
  • 收紧或放松“何时不使用黄金”规则

跨机器共享一个数据库

Goldie的“作用域”是SQLite文件,因此跨机器(iCloud、Dropbox、Syncthing)同步数据库文件可以在不运行服务器的情况下为您提供跟我走内存。默认日记模式(DELETE)在云同步下已经可以安全使用了——只有一个 .db 文件存在,没有WAL/SHM sidecar出现故障。一个警告:

不要同时从两台机器上写字。 云同步不是协调层。如果两台机器在断开连接时写入,同步客户端会选择一个赢家,另一方的写入将丢失(或创建冲突副本)。工作流程:在切换机器之前退出任何goldie会话,让同步解决,启动新机器。

对于真正的多写入器多机设置,请在服务器上运行goldie并通过Tailscale连接,或使用 文学流 将WAL更改流式传输到S3/B2。

选择仅适用于本地DB的WAL

如果您的数据库位于本地磁盘上(没有云同步),并且您希望在多代理负载繁重的情况下在写并发期间进行读取,请设置 GOLDIE_JOURNAL_MODE=WAL。对于典型的内存存储工作负载,性能差异可以忽略不计,但选项是存在的。

替换每个项目的内存.md

Goldie旨在取代每个项目 MEMORY.md Claude Code等代理在磁盘上创建的文件。让每个代理都指向同一个目标 GOLDIE_DB_PATH,指示他们使用 remember / recall / update_memory / forget 而不是基于文件的内存,你会得到:

  • Claude(任何会话、任何项目)、Codex和任何其他MCP感知代理共享一个池
  • 语义召回而不是文件全局搜索
  • 通过 agent 字段,可通过以下方式查询 recall/forget 过滤器
  • 过滤清理(例如“忘记所有 feedback 来自代理X的记忆”)

对现有成绩单进行索引

您还可以将旧的Claude Code对话记录批量导入为 reference 记忆使他们参与回忆:

Index all *.md files in ~/.claude/projects recursively

然后问:

Recall what I know about authentication bugs
What memories do I have about Docker?

故障排除

macOS:二进制立即终止(信号9)

在macOS上复制二进制文件时,Gatekeeper可能会添加隔离属性(com.apple.provenance)这会导致双星在发射时被杀死。使用 make install DEST= 它直接构建到目标并对二进制文件进行代码签名以避免此问题。

食品法典委员会不召回

  • Codex中的MCP支持是实验性的,需要更多的引导才能正常工作。索引内容后,尝试 recall 并检查它是否使用 goldie.recall() 函数,表示它正在使用MCP后端。
  • Codex有时不信任回忆中的内容,也不会将其添加到上下文中,需要重复调用 goldie.search_index()你可以试试 recall and consolidate 推送更新。

建筑

goldie-mcp/
├── main.go                 # MCP server setup and tool handlers
├── internal/
│   ├── embedder/           # Embedding interface and backends
│   │   ├── minilm/         # MiniLM backend (ONNX Runtime)
│   │   └── ollama/         # Ollama backend (API client)
│   ├── goldie/             # Memory operations (Remember/Recall/Update/Forget)
│   │   ├── goldie.go       # Core, file ingestion, chunking
│   │   └── memory.go       # Type whitelist + memory CRUD
│   ├── store/              # SQLite memory + chunk + vec storage
│   │   ├── store.go        # Connection, jobs
│   │   └── memory.go       # Memory schema and queries
│   └── queue/              # Async job processing
├── go.mod
└── Makefile

模式

三个SQLite表组成了内存索引:

  • memories --每个内存一行: id, name UNIQUE, type, description, body, agent, source, checksum, created_at, updated_at
  • memory_chunks --为了嵌入粒度,主体被分割成重叠的块: id, memory_id, chunk_index, content
  • memories_vecvec0 基于块嵌入的虚拟表,在回忆时连接回记忆

Recall对块进行KNN,然后对不同的记忆进行重复数据删除,为每个记忆返回最匹配的摘录。

嵌入后端

MiniLM后端(-b minilm)

用途 全迷你LM-L6-v2 通过ONNX运行时:

  • 384维嵌入
  • 针对语义相似性进行了优化
  • 在本地运行,模型嵌入二进制文件中

Ollama后端(-b ollama)

使用Ollama的嵌入API与您选择的模型:

  • nomic-embed-text (768维)-默认,质量和速度的良好平衡
  • mxbai-embed-large (1024维)-更高质量的嵌入
  • all-minilm (384维度)-与MiniLM后端型号相同
  • 任何其他Olama嵌入模型(集 OLLAMA_EMBED_DIMENSIONS)

注: 不同的嵌入模型产生不同的维度向量。用一个后端/模型索引的内存不能用另一个具有不同维度的后端/模型调用。切换时使用单独的数据库或重新索引。

许可证

麻省理工学院

目录标签

目录标签

记忆管理本地运行GoClaude本地部署SQLite向量索引多代理系统

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP