mcpField
O
obsidian-mcp-secure

obsidian-mcp-secure

本地服务
github.com/dewtech-technologies生产力025 周前更新

关于 obsidian-mcp-secure

obsidian-mcp-secure 是连接 Obsidian 笔记库与 Claude Desktop 等 MCP 客户端的服务,通过 Local REST API 插件读取和修改笔记。它提供专用笔记工具,并以路径校验、输入验证、破坏性操作确认和完整审计日志控制访问。

主要功能

  1. 01读取、列出和搜索笔记
  2. 02创建、编辑和删除笔记
  3. 03按名称查找笔记并列出标签
  4. 04为笔记添加 wikilinks
  5. 05路径限制与输入校验
  6. 06记录工具调用审计日志

适用场景

  1. 01在对话中查找和阅读笔记
  2. 02创建或更新 Obsidian 笔记
  3. 03清理笔记并确认删除操作
  4. 04查找标签并连接相关笔记

MCP 相关

该 MCP 服务向兼容客户端提供 Obsidian 笔记库工具,通过 Local REST API 插件访问本地 vault。支持 stdio 连接,工具调用会写入审计日志。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dewtech-technologies-obsidian-mcp-secure": {
"command": "npx",
"args": [
"-y",
"obsidian-mcp-secure"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>",
"LOG_DIR": "<LOG_DIR>"
}
}
}
}
启动命令npx -y obsidian-mcp-secure
需要配置的环境变量
OBSIDIAN_API_KEY密钥API Key generated by Obsidian's Local REST API plugin (Settings -> Local REST API -> API Key)
OBSIDIAN_HOSTHost of the Local REST API (default: http://127.0.0.1)
OBSIDIAN_PORTPort of the Local REST API (default: 27123)
LOG_DIRDirectory for audit logs (default: ./logs)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmobsidian-mcp-secure1.0.4

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

obsidian-mcp-secure

npm version npm downloads MCP Registry license npm audit CI coverage Smithery

安全的 Model Context Protocol 服务,可将你的 Obsidian 知识库转化为可靠的数据源,供任何兼容 MCP 的 AI 客户端使用——从零构建,包含 OWASP Top 10 防护措施和完整的审计日志。

已列入 Anthropic 官方 MCP Registry,名称为 io.github.dewtech-technologies/obsidian-mcp-secure。


🧭 定位——这不是 Obsidian 插件

恰恰相反:它是一个桥接工具,可让 Claude Desktop(或任何 MCP 客户端)安全地读取和写入 Obsidian 中的内容。你的 AI 助手仍在原来的位置;你的知识库则成为它可访问的结构化、可审计数据源。

┌─────────────────┐   MCP    ┌──────────────────────┐   HTTP   ┌────────────────────┐   FS   ┌─────────────┐
│                 │  stdio   │                      │  :27123  │                    │        │             │
│ Claude Desktop  │ ───────▶ │ obsidian-mcp-secure  │ ───────▶ │  Local REST API    │ ─────▶ │  Vault .md  │
│  (AI client)    │          │  (this package)      │          │ (Obsidian plugin)  │        │             │
└─────────────────┘          └──────────────────────┘          └────────────────────┘        └─────────────┘
工作流中的角色组件
你交谈的地方Claude Desktop(或任何 MCP 客户端)
桥接/访问控制obsidian-mcp-secure(此软件包)
Obsidian 内部的数据网关Local REST API 插件(由 Adam Coddington 开发)
你的知识知识库中的 .md 文件

一句话概括: Claude 是大脑,这个 MCP 是手臂,Obsidian 是记忆。

为什么还需要另一种 Obsidian + AI 集成?

有些插件会把 Claude 放进 Obsidian。这个工具恰好相反,推出它的原因是:

  • 你的助手是 Claude Desktop——通用对话都在这里进行。你的笔记会成为 Claude 可访问的众多上下文之一,与网页、GitHub、文件系统等并列。
  • 安全是首要考虑——有意控制攻击面,不提供 shell 访问,阻止路径遍历,使用 Zod 验证输入,并审计每次调用。
  • 无需构建,无需账户——运行 npx obsidian-mcp-secure 即可。它在 Windows、macOS 和 Linux 上的使用方式相同。
  • 可组合性——将此 MCP 与 fetch、文件系统、git、GitHub 等结合,Claude 就能在一次对话中交叉参考你的知识库和外部来源。

🛠️ 可用工具

工具用途
read_note按路径读取笔记
list_notes列出知识库或子目录中的文件/文件夹
create_note创建新的 .md 笔记
edit_note覆盖现有笔记(之前的内容会写入审计日志)
delete_note删除笔记——需要 confirm: true(否则 Zod 会拒绝)
search_notes使用 Obsidian 自带的搜索引擎进行全文/标签搜索
find_note_by_name按部分名称查找笔记——不区分大小写,无需提供完整路径
list_tags列出知识库中的所有标签及其使用次数;可按名称或频率排序
create_backlinks在笔记的 ## Relacionadas 区块中添加 [[wikilinks]]——明确且可审计

🔒 安全 — OWASP Top 10

控制项实现方式
A01 — 访问控制失效阻止路径遍历(../、..\\、编码变体);强制使用 .md 扩展名
A02 — 加密机制失效从 .env 或进程环境中读取 API 密钥;绝不硬编码,也绝不记录到日志
A03 — 注入使用 Zod 模式验证所有输入;不使用 eval、exec 或 shell
A04 — 不安全设计笔记大小上限为 512 KB;搜索结果上限为 50 条;破坏性操作必须显式设置 confirm: true
A05 — 安全配置错误仅接受 127.0.0.1 / localhost 作为主机
A09 — 日志记录与监控通过 winston 记录完整审计日志,并按大小轮转(5 MB / 10 个文件)

每次工具调用都会生成一条审计记录,包含 action、params(已清理)、success、error 和 timestamp。


⚡ 安装

前置条件
  1. 已打开一个库的 Obsidian 桌面版
  2. Local REST API 插件(由 Adam Coddington 开发)——从社区插件中安装并启用,然后:
    • 开启 “Enable Non-encrypted (HTTP) Server”(比 HTTPS 自签名证书更简单)
    • 复制插件设置中显示的 API Key
  3. Node.js 18+
  4. Claude Desktop(或其他兼容 MCP 的客户端)
配置 Claude Desktop

在 Windows 上打开 %APPDATA%\Claude\claude_desktop_config.json(或在 macOS 上打开 ~/Library/Application Support/Claude/claude_desktop_config.json),并添加:

{
  "mcpServers": {
    "obsidian-secure": {
      "command": "npx",
      "args": ["-y", "obsidian-mcp-secure"],
      "env": {
        "OBSIDIAN_API_KEY": "your-api-key-from-the-plugin",
        "OBSIDIAN_HOST": "http://127.0.0.1",
        "OBSIDIAN_PORT": "27123",
        "LOG_DIR": "C:/path/to/your/logs"
      }
    }
  }
}

**Windows 提示:**如果 npx 静默失败,请将 "command": "npx" 改为 "command": "npx.cmd"。某些 Claude Desktop 版本无法从 PATH 中解析裸的 npx。

重启 Claude Desktop(系统托盘 → 退出,然后重新打开),9 个工具便会显示在 obsidian-secure 下。


🤝 推荐搭配

MCP 的真正优势在于组合能力。要实现 “读取我的笔记 → 获取一个 URL → 告诉我是否正确应用了其中的内容” 这一工作流,请将官方的 fetch MCP 与此 MCP 一起添加:

{
  "mcpServers": {
    "obsidian-secure": { "...": "as above" },
    "fetch": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-fetch"]
    }
  }
}

现在,Claude 可以在同一段对话中访问你的知识库和实时网络。


💬 示例提示词

启用 obsidian-secure + fetch 后:

“读取我的笔记 Projeto API Atendimento.md,然后获取 https://developers.facebook.com/docs/whatsapp,并告诉我我的实现是否符合最新的最佳实践。”

“搜索我的知识库,查找标签 #ideia,并总结最常出现的三个想法。然后创建一篇名为 Ideias recorrentes.md 的新笔记,并写入总结。”

“读取 Atomic Habits - Resumo.md,获取 https://jamesclear.com/atomic-habits,并指出我的笔记与原文有哪些出入。”

Claude 会自动协调工具调用,无需手动串联。


🧩 与 Obsidian 内插件的比较

如果你的工作流位于 Obsidian 侧边栏中,那么 obsidian-claude-code 之类的插件更适合你。此 MCP 面向不同的使用场景:

维度obsidian-claude-code(Obsidian 内)obsidian-mcp-secure(此项目)
AI 所在位置Obsidian 内的侧边栏Claude Desktop(或任何 MCP 客户端)
设置git clone + bun buildnpx obsidian-mcp-secure
工具读取/写入/编辑 + Bash + Grep + Glob + WebFetch9 个专用且经 Zod 验证的工具
安全状况可完全访问开发机器上的 shell严格的允许列表、经过审计,符合 OWASP Top 10
分发方式手动克隆,需要 Bunnpm + 官方 MCP Registry
与其他来源的组合能力在自身沙箱内任何兼容 MCP 的客户端都可将其与 fetch、GitHub、filesystem 等组合使用
最适合日常使用 Obsidian 的开发者主要使用 Claude Desktop 的专业人士

两者都各有价值,适用于不同的场景。


🔧 环境变量

变量必需默认值描述
OBSIDIAN_API_KEY✅—Local REST API 插件提供的 API 密钥
OBSIDIAN_HOSThttp://127.0.0.1主机(仅接受 127.0.0.1 和 localhost)
OBSIDIAN_PORT27123插件 HTTP 服务的端口
LOG_DIR./logs审计日志文件的目录

🗺️ 路线图

✅ 已在 v1.2.1 中发布
  • 修复错误:find_note_by_name 会搜索完整路径(文件夹 + 文件名)
  • 修复错误:list_tags 会规范化所有 API 响应格式(对象、字符串数组、包含 tagCount/taggedFilesCount 的对象数组)
✅ 已在 v1.2.0 中发布
  • DXT 包,可在 Claude Desktop 中一键安装(npm run build:dxt)
✅ 已在 v1.1.0 中发布
  • find_note_by_name — 在整个库中按名称进行部分匹配,不区分大小写
  • create_backlinks — 使用 [[wikilinks]] 连接相关笔记(明确、可审计)
  • list_tags — 列出库中的所有标签及其使用次数
  • 使用 Vitest 编写的单元测试套件(70 项测试 — utils、handlers、HTTP client)
  • 每次 PR 都会运行 CI 流水线:测试 + 覆盖率 + npm audit + 静态安全分析
🔜 后续计划
  • 在 Smithery 上架
  • 为共享 / 多用户设置提供只读模式标志

欢迎提交创意和 PR — 请参阅 CONTRIBUTING.md。


📜 许可证

MIT — 请参阅 LICENSE。

🙏 致谢


安全问题? 请参阅 SECURITY.md 了解披露说明。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。