关于 second-brain-mcp
second-brain-mcp 是面向 Obsidian 和本地 Markdown 文件夹的 MCP 服务,用于捕捉阅读与个人想法,并将其组织成相互关联的概念图谱。它还可按主题找回相关笔记并检查图谱健康状况,所有内容都保存在用户自己的文件中。
主要功能
- 01记录阅读与摘录
- 02将想法整理为永久笔记
- 03按文本找回关联笔记
- 04检查孤立、断链及重复概念
- 05在项目中暂存并晋升笔记
- 06通过 MCP 资源读取完整笔记
适用场景
- 01阅读时记录书籍或文章摘录
- 02围绕主题找回旧想法
- 03清理 Obsidian 图谱中的问题
- 04将项目笔记整理进个人知识图谱
MCP 相关
该 MCP 服务向客户端提供笔记摄取、搜索、关联、图谱检查等工具,并将每条笔记作为 MCP 资源公开。还提供用于引导摄取流程的提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
13收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| autor | string | 否 | |
| temas | array | 否 | |
| titulo | string | 是 | |
| formato | enum | 否 | libro | articulo | video | curso |
详细介绍
second-brain-mcp
西班牙语 · English
你的第二大脑,就在你的 Obsidian 里,与你的助手对话。
这是一个 MCP 服务,可将 Markdown 文件夹变成一个真正的第二大脑:捕捉你读到的内容,用自己的话把它转化为想法,再让这些想法彼此连接,最终形成一张与你一起思考的图谱:当你着手做某件事时,相关笔记会自动浮现。
一切都是西班牙语。一切都在你自己的文件里。没有数据库,没有云端,也没有你无法用文本编辑器打开的魔法。
用起来是什么感觉?
你对助手说:
“我正在读《原子习惯》,记下这句话:环境比意志力更能左右结果”
它会在阅读记录不存在时创建一条,保存这则摘记;等这个想法成熟后,还会把它转化为一条永久笔记,并关联到 [[Hábitos]] 这个概念上。这个概念会不断积累你对该主题的所有思考,无论它们来自哪本书。
几周后,你在做另一件事时,问起如何设计早晨的日常安排,系统便会把*“环境替你做决定”*连同对应的原文段落一起带回来。这就是第二大脑:不是你来记住,而是让它来记住。
图谱
每个标签都采用 方法 / 是什么 的格式;两个主要入口还附有触发它的短语:
tú + tu asistente
│ ▲
ingerir / ingesta │ │ resurgir / recuerdo
«añade esto» ▼ │ «¿qué sé de esto?»
┌──────────────┐
│ second-brain │
└───────┬──────┘
clasifica lo que entra
┌───────────────────────────┼───────────────────────────┐
│ lectura_crear / ficha │ nota_permanente / idea │ mini_nota / apunte
│ lectura_nota / apuntes │ │
▼ ▼ ▼
┌──────────────┐ ┌─────────────┐ ┌────────────────┐
│ 40-Lecturas/ │ │ 50-Notas/ │ │ proyecto/brain/│
│ lo que entra │ │ lo que queda│ │ el taller │
└──────┬───────┘ └──────┬──────┘ └────────┬───────┘
│ │ │
│ nota_permanente / │ temas │ mini_promover /
│ la idea madura │ │ madura o resuena
└──────────────────────────▶│───────────┐ │
│ ▼ │
nota_enlazar / │ ┌───────────────┐ │
relacionar con │ │ 60-Conceptos/ │◀──────┘
motivo (2-3 máx) ▼ │ lo que conecta│
otras ideas└───────────────┘
jardin / poda «¿cómo está el jardín?» · concepto_fusionar / coser nodos
vault_buscar / grep «busca dónde dije X» · mini_listar / cosecha del taller
安装
最快方式:一行命令,无需任何配置
如果你使用 Claude Code:
claude mcp add --scope user second-brain -- npx -y @toportal/second-brain-mcp
使用其他任何 MCP 客户端:
{
"mcpServers": {
"second-brain": {
"command": "npx",
"args": ["-y", "@toportal/second-brain-mcp"]
}
}
}
无需设置环境变量,也无需做任何选择:你的大脑会创建在
~/second-brain 中,三个文件夹和首页都已准备就绪。告诉你的助手
“帮我完成第二大脑的入门设置”,你就可以开始了。
更想把它放在你一直使用的 Obsidian 库里?添加
BRAIN_VAULT=/ruta/a/tu/vault 就行——服务只会写入三个
子文件夹,不会碰其他内容。如果你已经在默认库里开始使用了,
把文件夹移到你想放的位置,再将 BRAIN_VAULT 指向那里即可:这些都是
Markdown 文件,无需迁移任何内容。
无需终端:双击即可
如果你使用 Claude Desktop,不想接触任何命令或 JSON,
请下载
second-brain.mcpb
并双击:Claude Desktop 会打开它,让你选择大脑所在的文件夹(如果有 Obsidian 库,就选它;或者选择任意空文件夹),然后就完成了。你无需安装 Node,也无需修改任何配置文件。如果还想以图谱形式查看大脑,
请安装 Obsidian,并将同一个文件夹作为库打开。
使用终端,自行选择文件夹
你需要 Node 18 或更高版本。使用 Claude Code 时,可在用户级别进行配置 (在你的所有项目中都可用):
claude mcp add --scope user second-brain \
--env BRAIN_VAULT=/ruta/a/tu/vault \
-- npx -y @toportal/second-brain-mcp
使用其他任何 MCP 客户端:
{
"mcpServers": {
"second-brain": {
"command": "npx",
"args": ["-y", "@toportal/second-brain-mcp"],
"env": { "BRAIN_VAULT": "/ruta/a/tu/vault" }
}
}
}
就这么简单。创建第一条笔记时,会自动创建所需的文件夹。
有一项保护措施:如果你配置的路径不存在,其父文件夹也不存在,服务会认为你可能输错了路径,并在对话中告诉你,而不是直接在一个不存在的文件夹里创建库。如果父文件夹存在,服务就会直接创建目标文件夹,不会询问:这正是你想要的。
如果你想从一开始就准备好库(文件夹 + 首页),可以使用初始化脚手架:
npx -y @toportal/second-brain-mcp --init /ruta/a/tu/vault
此操作具有幂等性:不会改动已经存在的库。
环境变量
| 变量 | 作用 | 默认值 |
|---|---|---|
BRAIN_VAULT | 你的库路径(也可作为第一个参数)。如果不设置,则使用默认库 | ~/second-brain |
BRAIN_MODO | resurgir 的引擎:lexico 或 rag | lexico |
BRAIN_RAG_UMBRAL | 可建议使用 rag 模式的笔记数量下限 | 50 |
你的首次会话
不用自己琢磨:告诉助手“带我完成 second brain 的入门引导”(这是提示词 empezar;在 Claude Code 中显示为命令 /mcp__second-brain__empezar),它就会一步步引导你:查看你的 vault 状态,和你一起用自己的话记录第一篇阅读和第一个想法,让你看看 resurgir 会从你的内容中返回什么,并给你一份日常三种操作的速查表。如果 vault 里已经有内容,它不会把你当新手,而是带你浏览现有内容。
30 秒快速体验
仓库在 ejemplo/ 中附带了一个已经搭建好的示例 vault,包含两篇阅读、四个想法和四个相互关联的概念,因此你还没写下自己的任何笔记,就能看到图谱的运行效果:
git clone https://github.com/Portaltocoding/second-brain-mcp
cd second-brain-mcp && npm install
claude mcp add second-brain --env BRAIN_VAULT=$PWD/ejemplo -- node src/server.js
然后问助手一个类似“我对意志力了解多少?”的问题。你也可以在 Obsidian 中打开 ejemplo/ 文件夹作为 vault,查看绘制好的图谱。
一次真实会话
日常使用就是这样,不用记住任何工具:
你: 把这件事加到我的 second brain,记录最重要的部分:“这几周我注意到,如果早上把手机放在另一个房间,我就能连续工作两小时;如果手机在手边,我就会每隔十分钟看一眼,工作断断续续。”
助手: 这是你已经消化过的想法,所以会作为永久笔记,以提炼模式保存。我看到的核心想法是:“手机的物理距离决定了工作的专注深度”,关联到你图谱中已有的概念
Foco和Entorno。这样创建可以吗?你: 好
助手: 已创建。它还与 “专注是设计出来的,不是靠召唤出来的” 高度共鸣(评分 8):两者都在谈准备好环境,而不是依赖意志力。要把它们用这个主题关联起来吗?
你: 好
助手: 已关联,并在两篇笔记中写明了关联原因。我把打开它的链接发给你:
obsidian://open?path=...
注意这个顺序:助手提出建议,你来决定,每个关联都会写明原因。这就是整个系统。
三个文件夹
tu-vault/
├── 40-Lecturas/ lo que entra: libros, artículos, vídeos, cursos
├── 50-Notas/ lo que queda: ideas permanentes, tuyas, con tu título
└── 60-Conceptos/ lo que conecta: cada tema es una nota real con backlinks
黄金法则:任何内容都不能孤立存在。每个想法都要关联到其来源、涉及的概念,并适度关联其他想法。适度很重要:最多关联 2-3 篇相关笔记,每条关联都要写明原因。一个塞满 12 条链接的抽屉什么也连接不起来;三条写明缘由的链接才是一张地图。
能做什么
捕捉。 lectura_crear 用于创建书籍或文章的信息卡;lectura_nota 用于在阅读时保存笔记(“第 3 章:……”);当某个想法真正属于你时,nota_permanente 会将它存入 50-Notas/,并把主题转化为可浏览的概念。nota_enlazar 用于关联两个想法,并写明原因。
思考。 resurgir 是核心:给它一段文本(一项任务、一个疑问、一个尚未成熟的想法),它就会返回与之关联最紧密的笔记。只有存在真实关联时才会显示;如果没有相关内容,它不会凭空捏造。vault_buscar 就是传统的 grep,但会限制结果数量,避免信息过载(最多 20 条结果,并在结果更多时提醒你)。
修剪。 图谱会在不知不觉中腐坏。jardin 会展示孤立笔记、失效链接、无人定义的概念、关联过多的笔记,以及重复概念(例如 “Hábito” 和 “Habitos” 把反向链接分散成两组)。concepto_fusionar 用于合并分裂的节点。
项目工作区。 任何仓库都可以在本地拥有一个 brain/ 文件夹,存放原始笔记(mini_nota)。mini_listar 会告诉你哪些笔记值得提升到知识库(与现有内容高度共鸣,或已经沉淀了一周),mini_promover 则会将它们提升上去。工作区在下,知识库在上;是否提升,始终由你决定。
摄取:一个动作
你不必记住这些工具。告诉你的助手:
“把这个直接添加到我的第二大脑” “把这里面最重要的内容添加进来” “记下我正在写的内容”
然后就会按需触发摄取。服务端附带了书面流程
(MCP 提示词 ingerir;在 Claude Code 中显示为命令
/mcp__second-brain__ingerir):对文本进行分类(是带来源的阅读内容、你的想法,
还是研讨会笔记?),应用相应模式(directo 完整保存,destilar 用你自己的话
提炼出 1-3 个核心想法,并在创建任何内容之前展示给你,auto 自动决定并告知你),
识别 2-4 个概念(优先选择图谱中已有的概念,而不是编造同义词),然后编织关联。
决定权在你手中,并且会明确标出:哪些想法被纳入,以及创建了哪些关联。适用于粘贴的
一段文字、一个章节,或你正在写的 Word 文档:直接粘贴,或传入文件。
阅读笔记:资源
图谱中的每条笔记也是一个MCP 资源,因此完整阅读它不会消耗一次工具调用
(在 Claude Code 中,你还可以用 @ 附加它):
vault://lectura/{titulo}
vault://nota/{titulo}
vault://concepto/{nombre}
有效的模式是:先低成本搜索(vault_buscar、resurgir),再完整阅读
真正感兴趣的内容(资源)。
如果我不用 Claude 呢?
效果一样,因为这是标准 MCP,几乎所有人都已经支持这个协议。完整的选择阶梯,从最方便 到最独立:
- Claude Desktop:通过
.mcpb双击使用。唯一无需任何设置的方式。 - 任何其他 MCP 客户端(桌面版 ChatGPT、Cursor、VS Code、 Windsurf、Zed、Gemini CLI……):使用上面的 JSON 配置块,所有客户端都通用。
- 无需任何账号,也无需互联网:LM Studio 支持使用本地模型的 MCP,因此你的第二大脑可以 与运行在你自己电脑上的模型对话,而你的笔记永远不会离开你的硬盘。
- 完全不用 AI:知识库就是普通的 Markdown 文件,带有普通的 wikilink。 只用 Obsidian,你就能拥有一个完全可用的手动第二大脑;服务端是帮助你捕捉、提炼并 找回想法的副驾驶,但你的笔记永远不会受制于任何人。
与 Obsidian 的配合方式
这里就是它的家。一切都是带有原生 wikilink 的纯 Markdown:图谱视图、反向链接
和悬停预览无需插件即可使用。服务端总是重新读取(从不缓存),并以原子方式写入,因此你可以在
服务端运行时用 Obsidian 编辑,不会发生冲突。jardin 对链接的判断方式与 Obsidian 相同:
不区分大小写。
两个实用细节:
- 每条新建的笔记都会返回其磁盘上的
ruta——始终可用——以及一个abrir链接 (obsidian://open?path=...):点击一下,就能在应用中打开笔记(前提是你已安装应用)。 它使用绝对路径,因此无论你的知识库叫什么名字,或目标笔记位于哪个子文件夹,都没有影响。 temas和relacionadas位于属性中(frontmatter)。Obsidian 会将它们 视为真正的链接,但若要在图谱视图中查看,请在图谱设置中启用“属性”。
那 Notion 呢? 不支持。此服务端基于本地 Markdown 文件运行。 这正是它的优点:数据属于你,可以用任何编辑器打开,图谱的速度取决于硬盘,而非 API。 Obsidian 也不是必需的(任何
.md文件夹都可以);它只是最佳的查看器。如果你从 Notion 迁移过来: 将笔记导出为 Markdown,然后放入知识库,这样就能正常使用了。
词法模式与 rag 模式
resurgir 有两种引擎,系统会告诉你何时切换:
lexico(默认):按匹配内容的重要程度评分: 标题 ×3、主题 ×2、正文 ×1。直接、透明;对于小型或中型 brain, 这就够用了。rag:基于 片段 的 BM25,支持西班牙语词干提取:「hábito」可以匹配 「hábitos」;它不只告诉你连接的是哪条笔记,还会返回直接回答问题的 确切段落,可直接用作上下文。适合 brain 日益壮大、笔记也变长的情况。
该用哪个?不用多想:从 lexico 开始,让系统引导你。
只有在确实需要时,才会建议切换到 rag,也就是以下两种情况同时出现时:
- 你的 brain 已经有一大批笔记(50+,可通过
BRAIN_RAG_UMBRAL配置),并且 - 你刚才的搜索在词法模式下效果不佳(没有结果,或低于强连接的门槛);也就是说, 正是 rag 能派上用场的时候。
而且每个会话只提示一次:系统会告诉你并解释原因,不会再反复提醒。词法模式找到强匹配时,不会有人打断你。试用没有成本:用 modo: "rag" 重复查询并比较;如果觉得合适,就通过 BRAIN_MODO=rag 固定下来。不需要重建索引或下载模型:
两种引擎都会即时重新读取 vault,因此你可以放心继续在
Obsidian 中编辑。
设计原则(如果你好奇为什么这样设计)
- 稀缺即意义。 只有在连接很强时才会出现连接建议(最多两条)。把所有内容都相互 链接,和什么都不链接没有区别。
- 是否链接由你决定。 系统只提供建议;由你决定。不会创建任何 附带连接。
- vault 说了算。 服务端始终重新读取,不做缓存:你可以手动编辑、使用 Obsidian, 或按自己喜欢的方式同步。采用原子写入,并逐行编辑 frontmatter:不会改动你的格式。
- 上下文需要付出代价。 使用精简 JSON 响应、限制搜索范围、
为诊断设置上限。只读工具会标记为 (
readOnlyHint),唯一的破坏性工具 (concepto_fusionar) 也会标记,让你的客户端在适当时请求确认。
开发
npm install
npm test
许可证
MIT。使用它、修改它,让它成为你自己的。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。