内容
<p align="center">
<img src="brainchair.png" alt="Brainchair" width="200">
</p>
<h1 align="center">Brainchair</h1>
<p align="center">
面向LLM应用的共享内存MCP服务器。
</p>
<p align="center">
<sub><i>以每个家庭都有的折叠椅命名——你把衣服扔上去,而不是折叠好放在架子上。Brainchair对你的记忆和数据也一样:扔上去,稍后(或从不)整理。</i></sub>
</p>
---
Brainchair是一个[模型上下文协议](https://modelcontextprotocol.io)服务器,为Claude Code、Claude Desktop和其他MCP客户端提供一个单一的SQLite支持的内存,所有客户端都可以读写。条目按**类别**组织——一个灵活的、建议性的类型系统,自动在第一次使用时注册,生成SQL视图,并为每个类别公开类型化的工具。
## 安装
需要Go 1.23+和C编译器(CGO)。
```bash
go build -tags "sqlite_fts5" -o brainchair .
```
数据库位于`~/.local/share/brainchair/brainchair.db`(可通过`BRAINCHAIR_DB`环境变量覆盖)。所有客户端通过SQLite WAL模式共享同一个文件。
## 配置
**Claude Code**
```bash
claude mcp add --transport stdio brainchair --scope user -- /path/to/brainchair
```
**Claude Desktop** - 编辑`claude_desktop_config.json`:
```json
{
"mcpServers": {
"brainchair": { "command": "/path/to/brainchair" }
}
}
```
## 工具
所有条目工具都接受数组——单个操作只是包含一个元素的数组。
**条目:** `store_entries`, `get_entries`, `search_entries`, `update_entries`, `delete_entries`, `get_entries_history`, `list_tags`, `get_memory_map`
**类别:** `register_kinds`, `update_kinds`, `list_kinds`, `get_kinds`, `deprecate_kinds`, `canonicalize_kind`
**自动生成:** 每个注册的类别及其示例都将获得一个类型化的`store_<kind>`包装器。
## 概念
**条目** - 核心单元:`类别`, `域`, `项目`, `标题`, `内容`, `元数据`(JSON), `标签`, `来源`.
**类别** - 一类条目的建议性类型规范。首次写入未知类别的条目时自动注册。每个类别都会获得一个SQL视图(`v_contacts`, `v_decisions`, …),查询字段的表达式索引和一个类型化的包装器工具。
**内存映射** - 所有存储知识的紧凑摘要,通过MCP `instructions`在会话开始时自动注入LLM的上下文中。
**历史** - 每次更新都会自动保存前一个版本(SQLite触发器)。可以通过`get_entries_history`检索。
**验证** - 默认建议性:形状不匹配时发出警告,而不是错误。在类别上设置`strict_enums`以拒绝无效的枚举值。
## 许可证
MIT