Token导航 LogoToken导航TokenDH.com
Obsidian Knowledge Management MCP Server logo
文档知识未说明官方级别未说明来源级核验

Obsidian Knowledge Management MCP Server

MCP Server

一个本地MCP服务器,提供对Obsidian vault的无状态I/O访问,使LLMs能够读取、分析和管理Obsidian的Markdown文件、YAML frontmatter和wikilinks。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
知识管理安全访问TypeScriptClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

TheOutcastVirus

提供方

TheOutcastVirus

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

黑曜石知识管理MCP服务器

本地MCP(模型上下文协议)服务器,提供对黑曜石保管库的无状态I/O访问。此服务器使LLM能够读取、分析和管理黑曜石标记文件、YAML frontmatter和维基链接。

主要特点

  • 无状态I/O层:纯数据访问和原子操作-无语义分析
  • 35+MCP工具:跨5个类别的全面保险库管理
  • 前台管理:解析、更新和验证YAML元数据
  • 维基链接操作:提取、分析和操作 [[wikilinks]]
  • 图的运算:构建链接图,查找反向链接,识别孤立笔记
  • 全文检索:跨vault的文字和正则表达式模式匹配
  • 安全:路径验证可防止目录遍历攻击

安装

npm install
npm run build

配置

创建一个 .env 文件基于 .env.example:

VAULT_PATH=./Test Vault
LOG_LEVEL=info
MAX_CONCURRENT_OPS=10

或者在运行时设置环境变量:

VAULT_PATH="./Test Vault" node dist/index.js

用法

运行服务器

服务器使用stdio传输进行MCP通信:

VAULT_PATH="./Test Vault" node dist/index.js

Claude桌面集成

添加到您的Claude Desktop MCP配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "obsidian-knowledge": {
      "command": "node",
      "args": ["/absolute/path/to/obsidian-knowledge-mcp/dist/index.js"],
      "env": {
        "VAULT_PATH": "/absolute/path/to/your/vault"
      }
    }
  }
}

可用工具(第1阶段-导航)

1.列表_注释

列出所有带有可选过滤功能的笔记。

参数:

  • folder (可选):按文件夹路径筛选
  • tags (可选):标签数组(注意必须包含所有标签)
  • dateRange (可选): { start, end } ISO格式
  • offset (可选):跳过N个笔记进行分页
  • limit (可选):返回最多N张钞票

示例:

{
  "folder": "Studies/MATH 31AH",
  "tags": ["MATH31AH"],
  "limit": 10
}

退货:数组 NoteMetadata 带有路径、标题、创建日期、标签、修改日期、大小。

2.read_note

阅读带有完整元数据的注释。

参数:

  • path (必填):保险库相对路径(例如。, "Studies/MATH 31AH/Vectors.md")

退货:

  • content:完整的降价内容
  • frontmatter:解析的YAML(如果缺失/格式错误,则为null)
  • frontmatterError:如果YAML格式不正确,则分析错误消息
  • outgoingLinks:带有目标、别名、标题、行、列的维基链接数组
  • headings:带级别、文本、行、id的标题数组
  • stats:行数、字符数、修改的时间戳

3.read_notes_batch

在一次通话中阅读多个笔记。

参数:

  • paths (必需):vault相对路径数组

退货:数组 ReadNoteResult (与read_note相同)

4.搜索_注释

在vault中进行全文搜索。

参数:

  • pattern (必填):搜索字符串或正则表达式
  • isRegex (可选):将模式视为正则表达式(默认值:false)
  • folder (可选):将搜索限制到文件夹
  • limit (可选):每条注释的最大出现次数(默认值:10)

退货:数组 SearchResult 使用路径、匹配计数和出现次数(使用行、列、上下文)。

5.get_vault_structure

使用笔记计数获取文件夹层次结构。

参数:无

退货: FolderNode 带有路径、名称、笔记计数和子项的树。

建筑

┌─────────────────────────────────────────┐
│  MCP Server (index.ts)                  │
│  - Tool registration                    │
│  - Request routing                      │
└─────────────────────────────────────────┘
                  ↓
┌─────────────────────────────────────────┐
│  Tool Handlers (tools/*.ts)             │
│  - navigation.ts - list, read, search   │
│  - notes.ts - create, update, move      │
│  - frontmatter.ts - get, update, bulk   │
│  - links.ts - get links, backlinks      │
│  - stats.ts - tags, titles              │
└─────────────────────────────────────────┘
                  ↓
┌──────────────────┬──────────────────────┐
│  Vault (vault.ts)│  Parser (parser.ts)  │
│  - Path security │  - Frontmatter parse │
│  - File I/O      │  - Wikilink extract  │
│  - Validation    │  - Heading extract   │
└──────────────────┴──────────────────────┘

错误处理

服务器返回结构化错误和可操作的建议:

{
  "success": false,
  "error": {
    "code": "FILE_NOT_FOUND",
    "message": "File not found: nonexistent.md",
    "context": { "path": "nonexistent.md" },
    "actionable": "Use list_notes or get_note_titles to find available notes"
  }
}

错误代码:

  • PATH_OUTSIDE_VAULT:路径包含 .. 或逃离保险库
  • FILE_NOT_FOUND:文件不存在
  • FILE_LOCKED:文件正被其他进程使用
  • INVALID_FRONTMATTER:YAML解析错误
  • INVALID_PATH:路径包含非法字符

发展

建筑

npm run build        # Compile TypeScript
npm run dev          # Watch mode

测试

npm test                  # Run all tests
npm run test:unit         # Unit tests only
npm run test:integration  # Integration tests with Test Vault

掉毛

npm run lint

路线图

第一阶段:基础和导航(已完成)

  • \[x\] MCP服务器初始化
  • \[x\] 具有路径安全性的保险库访问
  • \[x\] Frontmatter和wikilink解析
  • \[x\] 5个导航工具(列表、阅读、搜索、结构)

第二阶段:票据管理(计划中)

  • \[\]create_note-使用内容+frontmatter创建
  • \[\]update_note-替换或修补部分
  • \[\]move_note-重新定位+更新反向链接
  • \[\]delete_note-删除+清除悬空引用

第三阶段:前线人员行动(计划中)

  • \[\]get_frontmatter-解析元数据
  • \[\]update_front-修改字段
  • \[\]bulk_update_front-跨多个笔记更新
  • \[\]audit_front-根据架构进行验证

第4阶段:链路操作(计划中)

  • \[\]get_links-传出的维基链接
  • \[\]get_backlinks-传入链接
  • \[\]get_all_links-完整的链接图
  • \[\]插入链接-添加维基链接
  • \[\]get_orphan_notes-没有链接的笔记
  • \[\]get_headings-标题结构
  • \[\]find_text_occurrences-模式匹配

第五阶段:统计与波兰语(计划中)

  • \[\]get_tag_list-所有有计数的标签
  • \[\]get_note_titles-所有标题+别名
  • \[\]综合文件
  • \[\]集成测试
  • \[\]性能优化

设计原则

  1. 无状态:无缓存,每个调用都是独立的
  2. 安全:路径验证可防止逃逸
  3. 元数据:包括行号和位置,以便进行精确编辑
  4. 优雅降级:格式错误的frontmatter返回错误标志
  5. 坚实的原则:vault、解析器和工具层的清晰分离

许可证

麻省理工学院

贡献

欢迎投稿!该项目遵循SOLID原则,并在I/O层(服务器)和智能层(LLM)之间保持严格的分离。

目录标签

目录标签

知识管理安全访问TypeScriptClaude本地部署Markdown处理YAML解析无状态I/O

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明nonelocal-only

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP