内容
# 二进制大脑 MCP
**您 AI 的长期记忆。模型无关。提供者无关。**
> 因为您的记忆不应该属于您的 AI 提供者。
Claude, GPT, Gemini — 他们都有内置的记忆。但切换提供者后,您的记忆将停留在原地。二进制大脑为您提供持久的记忆,您拥有这些记忆,存储在本地,可以从任何与 MCP 兼容的客户端访问。
## 快速入门(30 秒)
```bash
npx binary-brain-mcp init
```
向导创建 `~/.brain/config.json`,初始化 SQLite 数据库,并配置您的 Claude Desktop。不需要 Docker,不需要服务器,不需要 API 密钥。
然后开始对话:
> "brain_ingest 一个新锚点:我们选择 PostgreSQL 因为我们需要 pgvector 进行语义搜索。"
## 9 种工具
| 工具 | 功能 | 隐喻 |
|------|-------------|----------|
| `brain_ingest` | 存储新知识 | **Aufnehmen** — 原始知识进入大脑 |
| `brain_compose` | 将 N 个记忆合成新东西 | **Komponieren** — 从现有部分创建新的交响曲 |
| `brain_decompose` | 深入探讨一个主题,涵盖所有记忆 | **Kompostieren** — 分解为丰富、肥沃的上下文 |
| `brain_search` | 按类别、标签、领域、所有者筛选 | **Suchen** — 打开正确的抽屉,找到您需要的东西 |
| `brain_scan` | 时间窗口筛选(从/直到)并在输出中使用时间戳 | **Zeitfenster** — 什么进入了大脑在这个窗口? |
| `brain_find` | 智能搜索(全文 + 向量) | **Finden** — 开放探索,发现相关内容 |
| `brain_curate` | 更新元数据(标签、重要性、领域) | **Kuratieren** — 给您的收藏贴标签、分类和维护 |
| `brain_dissolve` | 删除记忆 | **Auflösen** — 记忆消失 |
| `brain_emerge` | 发现模式,浮现被遗忘的知识 | **Auftauchen** — 隐藏的联系浮现到表面 |
`brain_search`、`brain_find` 和 `brain_scan` 接受 `verbosity: 'compact' | 'full'` 和 `include_raw_content: boolean` 以进行完整内容 + 原始记录输出。默认情况下为紧凑型(150–200 个字符预览)。
### 为什么使用这些名称?
**Compose** 和 **Decompose** 带有刻意的二元性:
- **Compose** (komponieren)— 像作曲音乐一样,您取出个别音符(记忆)并创建比各个部分更有价值的东西。
- **Decompose** (kompostieren)— 像堆肥一样,您将积累的知识分解为丰富、肥沃的土壤,以滋养新的理解。
一个建立,另一个分解。两者都创造价值。
## 10 种类别
每个记忆都有一个类别 — 不是通用标签,而是含义分类:
| 类别 | 含义 | 示例 |
|----------|---------|---------|
| `signal` | 离散事实或信息 | "PostgreSQL 支持 pgvector 从 v0.5.0 开始" |
| `anchor` | 决策及其理由 | "我们选择 Jina 而不是 OpenAI 嵌入以支持多语言" |
| `spark` | 观察或洞察 | "用户与视觉仪表板的交互比表格更多" |
| `thread` | 循环模式 | "每个迁移都需要幂等回滚" |
| `mirror` | 反馈或纠正 | "不要在集成测试中模拟数据库" |
| `terrain` | 当前上下文或项目环境 | "Sprint 12,专注于身份验证重构" |
| `node` | 人或关系 | "Pavel Luksha — EDG 作者,于 2026 年 3 月联系" |
| `artifact` | 书、工具、文章或资源 | "设计数据密集型应用程序,作者:Kleppmann" |
| `north` | 目标或意图 | "在 2026 年 4 月之前启动开源脑-mcp" |
| `echo` | 元反思 | "我倾向于过度架构,而简单的解决方案会奏效" |
## 每夜大脑梦境
当二进制大脑在 PostgreSQL 上运行时(例如 Supabase),它会获得自主维护管道 — **大脑梦境**。就像人类大脑在睡眠期间一样,系统会巩固、连接和清理您的记忆。
### 梦境管道
```
04:30 Uhr — das Brain schläft ein
🕸️ Weave (Vernetzung)
│ pgvector cross-match: 找到语义相似的记忆对
│ 并将它们作为 memory_links 持久化(link_type='similar')
│
🔍 Lint (Gesundheit)
│ 6 个健康检查:遗忘的记忆、类别平衡、
│ 孤立标签、过期的记忆、矛盾、缺失的嵌入
│
🌱 Emerge (模式识别)
│ 发现密集的记忆集群(5+ 成员,Ø 相似度 > 0.6)
│ 并通过 Mistral AI 将它们合并为新的模式记忆
│
🌘 Fade (Vergessen)
自然遗忘:减少未使用的记忆的重要性(>90 天,从未访问)
和过期条目
→ Telegram: 详细的夜间报告与见解
```
### 示例夜间报告
```
🌙 大脑梦境 — 夜间报告
📅 18.04.2026 04:30 | 运行:a1b2c3d4
⏱️ 持续时间:42 秒 | ✅ 成功
━━━ 🕸️ 网络(5 秒)━━━━
• 发现 500 个连接(阈值:0.55)
• 持久化 500 个新连接
━━━ 🔍 健康(2 秒)━━━━
• 171 个记忆 | 6 个检查
• 📊 主导:spark(26%)
• 🏷️ 398/495 个孤立标签(80%)
━━━ 🌱 模式识别(28 秒)━━━━
• 2 个集群 → 创建 2 个线程
└ "积分 AI 视角"(8 个记忆,Ø 0.72)
└ "具身与实践"(5 个记忆,Ø 0.65)
━━━ 🌘 遗忘(1 秒)━━━━
• 0 个遗忘衰减 | 0 个过期
• 所有记忆都是新鲜的
━━━ 💡 见解━━━━
• 大脑:10 个类别中的 171 个记忆
• 强连接:500 个语义桥梁
• ⚠️ 标签卫生:80% 是单个标签
• 新模式:“积分 AI 视角”
```
### 扩展管道
添加新的梦境步骤需要两个文件:
```
1. _shared/dream-reflect.ts ← 核心逻辑(导出函数 + 模式)
2. _shared/dream-registry.ts ← 在 DREAM_PIPELINE 数组中添加一个条目
```
无需更改工作流程,无需重新部署其他功能。
### 架构
梦境管道作为 Supabase Edge Functions 运行,由单个 `nightly-dream-orchestrator` 函数编排。n8n 通过 cron(每天 04:30)触发它,并将报告转发到 Telegram。
```
n8n(调度)
└─▶ POST /nightly-dream-orchestrator(JWT 认证)
├─▶ weave() ← _shared/dream-weave.ts
├─▶ lint() ← _shared/dream-lint.ts
├─▶ emerge() ← _shared/dream-emerge.ts
└─▶ fade() ← _shared/dream-fade.ts
└─▶ formatTelegramReport()
└─▶ Telegram 夜间报告
```
每个步骤也可以作为独立的 Edge Function 进行部署,以便进行单独测试。
## 语音到大脑管道
二进制大脑通过 Telegram → n8n → Supabase 管道支持语音摄入:
```
🎤 Telegram 语音备忘录
→ n8n 工作流(语音转文本 + Mistral 分类)
→ brain_ingest 通过 Supabase PostgreSQL
→ Jina 嵌入(256d,写入时)
→ 可搜索的语义向量记忆
```
将语音备忘录发送到您的 Telegram 机器人,它将作为一个完全分类的嵌入式记忆进入您的大脑 — 准备好进行搜索、合成和梦境。
## 架构
```
~/.brain/
config.json ← 您的偏好设置
brain.db ← SQLite 数据库(默认)
binary-brain-mcp/
src/
server.ts ← 8 个 MCP 工具
storage/
adapter.ts ← StorageAdapter 接口
sqlite.ts ← 零配置默认
postgres.ts ← pgvector 强力用户选项
embedding/
provider.ts ← EmbeddingProvider 接口
none.ts ← 无嵌入(默认)
jina.ts ← Jina AI(最佳多语言)
openai.ts ← OpenAI
ollama.ts ← 本地通过 Ollama
emerge/
emerge.ts ← 记忆发现算法
search/
find.ts ← 混合搜索(全文 + 向量)
__tests__/
sqlite.test.ts ← 存储层测试
e2e.test.ts ← 完整生命周期测试
emerge.test.ts ← 模式发现测试
find.test.ts ← 搜索测试
scripts/
backfill-zettelkasten.mjs ← Zettelkasten 迁移工具
```
### 存储适配器
| 适配器 | 设置 | 向量搜索 | 最适合 |
|---------|-------|--------------|----------|
| **SQLite** (默认)| 零配置 | 内存余弦(最多 ~5k 记忆)| 入门使用,个人使用 |
| **PostgreSQL** | 连接字符串 | pgvector IVFFlat | 电源用户,大型大脑,生产环境 |
### 嵌入提供者
| 提供者 | 设置 | 质量 | 成本 |
|----------|-------|---------|------|
| **None** (默认)| 无需设置 | 仅关键词搜索 | 免费 |
| **Jina AI** | API 密钥 | 最佳多语言 | ~$0.01/1M tokens |
| **OpenAI** | API 密钥 | 优秀英语 | ~$0.02/1M tokens |
| **Ollama** | 本地安装 | 良好 | 免费(本地计算) |
## 搜索 vs. 查找
二进制大脑分离了两种查找记忆的方式:
**`brain_search`** — 您知道您要找什么。打开抽屉。
```
brain_search(category: "anchor", tag: "database")
→ 所有数据库决策,按重要性排序
```
**`brain_find`** — 您有问题。探索。
```
brain_find(query: "为什么我们更改了数据库?")
→ 全文 + 语义搜索,合并和排名
```
如果没有嵌入提供者,`brain_find` 使用全文搜索(FTS5)。添加嵌入以进行语义“基于含义”的搜索。
## 出现:记忆发现
`brain_emerge` 不是清理工具 — 它是发现工具。灵感来自大脑如何在梦境中浮现联系。
**4 个阶段:
| 阶段 | 发生情况 |
|-------|-------------|
| **表面** | 找到被遗忘的记忆(从未访问,超过 30 天) |
| **连接** | 发现不同领域之间的语义链接 |
| **结晶** | 确定可以合并的相似记忆 |
| **照亮** | 生成报告 — 供您审阅,而不是自动操作 |
**重要:** 陈旧记忆被 **呈现** ,不会被删除。您遗忘的内容中可能有价值。
通过 [夜间大脑梦境](#夜间大脑梦境) 管道,此发现每晚自动运行 — 编织新的联系,检测集群,并通过 AI 生成模式摘要。
## 访问跟踪
每个读取记忆内容的 操作都会增加 `access_count` 并更新 `last_accessed_at`:
- `brain_search`、`brain_find` — 跟踪所有返回的记忆
- `brain_compose`、`brain_decompose` — 跟踪源记忆
这为发现引擎提供支持:`brain_emerge` 浮现被遗忘的记忆(高重要性但 `access_count = 0`),夜间 Fade 步骤逐渐降低未触及记忆的重要性。
## 内容 vs. 原始内容
每个记忆有两个内容字段:
| 字段 | 目的 | 可搜索 | 嵌入 |
|-------|---------|-----------|----------|
| `content` | 摘要/精炼本质 | FTS + 向量 | 是 |
| `raw_content` | 完整原始(转录,语音备忘录) | 仅 FTS | 否 |
这意味着您的嵌入质量保持高(短,聚焦文本),而原始内容永远不会丢失。
## 升级路径```
从这里开始 按需添加
| |
v v
SQLite + None → SQLite + Jina/OpenAI
(关键词搜索) (语义搜索)
| |
v v
PostgreSQL + None → PostgreSQL + Jina/OpenAI
(结构化查询) (全部功能,pgvector)
|
v
PostgreSQL + Jina + 夜间梦境
(自主内存管理)
```
## 配置
### 配置文件(~/.brain/config.json)
```json
{
"storage": "sqlite",
"embedding": "none",
"owner": "your-name",
"dataDir": "~/.brain",
"sqlite": { "path": "~/.brain/brain.db" }
}
```
### PostgreSQL + Jina(强力用户)
```json
{
"storage": "postgres",
"embedding": "jina",
"owner": "your-name",
"dataDir": "~/.brain",
"postgres": { "connectionString": "postgresql://user:pass@host:5432/brain" },
"jina": { "apiKey": "jina_xxx", "dimensions": 256 }
}
```
### 中间层工具(仅限 PostgreSQL)
使用 Postgres 后端(binarybrain-core),额外提供 Entity Layer 工具:`entity_find` 和 **`cross_realm_search`** (全文 + 实体通过 brain/futursonanz/library, 按实体分组)。
`cross_realm_search` 有两个深度级别通过 `depth` 参数:
- **`resonance`** (默认):快速,仅限大脑共振层 (`brain_resonances`/`library_resonances` + 脑全文/嵌入式 + `entity_mentions`)。离线可用,无需额外设置。
- **`deep`**:另外,还包括通过 Edge Function `cross-realm-search` (binarybrain-core)对完整的 Kiosk 和 Library Corpus 进行实时搜索。需要 `crossRealm` 块:
```json
{
"crossRealm": {
"functionUrl": "https://<project-ref>.supabase.co/functions/v1/cross-realm-search",
"token": "<CROSS_REALM_TOKEN — 必须与 Edge Function 的 Vault Secret 匹配>"
}
```
如果没有 `crossRealm` 块,`depth:deep` 优雅地降级到共振层(并在输出中提示)。### Claude Desktop 集成
将以下内容添加到您的 Claude Desktop 配置:
```json
{
"mcpServers": {
"binary-brain": {
"command": "npx",
"args": ["-y", "binary-brain-mcp"]
}
}
}
```
或本地运行:
```json
{
"mcpServers": {
"binary-brain": {
"command": "node",
"args": ["/path/to/binary-brain-mcp/dist/src/stdio.js"]
}
}
}
```
## HTTP 传输
远程访问(服务器,Docker,VPS):
```bash
PORT=3100 node dist/src/http.js
```
端点:
- `GET /` — 服务器信息
- `GET /healthz` — 健康检查
- `ALL /mcp` — MCP 协议
## 示例技能
这些 Claude Code 技能展示了如何在 Binary Brain 上构建工作流:)
```
node scripts/backfill-zettelkasten.mjs --dry-run # 预览
node scripts/backfill-zettelkasten.mjs # 执行
```
将现有的 Zettelkasten markdown 文件映射到二进制大脑类别(feature → spark,bugfix → signal 等),生成 Jina 嵌入,并通过标题检测重复项。
## 测试
二进制大脑拥有一个全面的测试套件,包含 79 个测试:
```bash
npm test # 运行所有测试
npm run test:coverage # 带有覆盖率报告
```
| 套件 | 测试 | 覆盖率 |
|-------|-------|----------|
| SQLite 存储 | CRUD,FTS,向量搜索,统计数据 | 完整的适配器接口 |
| 端到端生命周期 | 摄入 → 搜索 → 整理 → 溶解 | 完整的工具链 |
| Emerge 发现 | 表面,连接,结晶 | 模式检测 |
| 查找/搜索 | 全文,语义,混合合并 | 搜索排名 |
| | | |
一个包含 20 个记忆的 [黄金数据集](src/__fixtures__/golden-dataset.ts) 确保测试的可重复性。
## 生态系统
二进制大脑是 Futursonanz 知识基础设施的一部分:
```
┌──────────────────────────────────────────────────────┐
│ 您(人类) │
│ 🎤 语音备忘录 💬 聊天 ✍️ 笔记 📄 文档 │
└──────┬───────────────┬────────────┬──────────────────┘
│ │ │
▼ ▼ ▼
Telegram 机器人 Claude/GPT 直接 API
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────┐
│ 二进制大脑 MCP(8 种工具) │
│ 摄入 · 合成 · 分解 · 搜索 · 查找 · 整理 · 溶解 │
└──────────────────────┬───────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ PostgreSQL + pgvector (Supabase) │
│ 记忆 · 记忆链接 · 嵌入(256d Jina) │
└──────────────────────┬───────────────────────────────┘
│
┌────────┴────────┐
▼ ▼
夜间梦境 按需(通过 MCP 工具)
(04:30 自动) ()
┌─────────────┐ ┌─────────────┐
│ 🕸️ 编织 │ │ brain_emerge │
│ 🔍 Lint │ │ brain_find │
│ 🌱 出现 │ │ brain_compose│
│ 🌘 渐隐 │ └─────────────┘
└──────┬──────┘
▼
📱 Telegram 报告
```
## 比较
| 功能 | 二进制大脑 | Mem0 | Letta/MemGPT | Claude 内存 |
|---------|-------------|------|--------------|---------------|
| 零配置 | SQLite,一条命令 | 需要向量数据库 | 复杂的设置 | 内置 |
| 模型无关 | 任意 MCP 客户端 | 是 | 是 | 仅限 Claude |
| MCP 原生 | 是 | 插件 | 否 | 否 |
| 语义搜索 | 可选(升级) | 必须 | 内置 | 内置 |
| 自主 | 是 | 云或自主 | 是 | 否 |
| 类别 | 10 个有意义的类型 | 自由形式 | 分层内存 | 自由形式 |
| 内存发现 | brain_emerge + 夜间梦境 | 否 | 否 | 自动梦境 |
| 夜间梦境 | 自动管道 | 否 | 否 | 否 |
| 语音摄入 | Telegram → 大脑 | 否 | 否 | 否 |
| 开源 | MIT | Apache-2.0 | Apache-2.0 | 专有 |
## 开发
```bash
git clone https://github.com/lukasschreck/binary-brain-mcp.git
cd binary-brain-mcp
npm install
npm run build
# 运行测试
npm test
# 使用 stdio 测试
npm run dev:stdio
# 使用 HTTP 测试
npm run dev:http
```
## 许可证
MIT - Lukas Schreck / [Futursonanz](https://futursonanz.de)
---
*由 [Futursonanz](https://futursonanz.de) 构建 — 通过整体监控系统解码时代精神。 二进制大脑最初是作为我们家庭的个人知识操作系统,现在对所有认为他们的记忆应该属于他们而不是 AI 提供者的每个人开放。*
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器