内容
@sy-labs/nodiom-mcp
**用于 [nodiom](https://github.com/Syabs/nodiom) 的 MCP 服务器 — 为 AI 代理提供结构化的 Markdown 文档读写访问。**
[](https://www.npmjs.com/package/@synexiom-labs/nodiom-mcp)
[](./LICENSE)
将 nodiom 的结构化 Markdown 操作暴露为 [模型上下文协议](https://modelcontextprotocol.io) 工具。任何与 MCP 兼容的 Claude Desktop、Claude Code 或任何自定义 MCP 客户端 — 都可以使用结构化选择器读取、写入、追加和删除 Markdown 文件中的内容,而无需使用正则表达式或字符串操作## 安装
```bash
npm install -g @synexiom-labs/nodiom-mcp
直接使用 `npx`安装):
```bash
@synexiom-labs-mcp
```
---
##### Claude Desktop
将添加到您的 `claude_des.json`:
**mac~/Library/Application Support//claude_desktop_config.json:** `%APPDATAaude\claude_desktop_config.json`
```json
{
cpServers": {
"": {
"command": "npx",
"args-y", "@synexabs/nodiom-mcp }
}
}
```
###
```bash
claude add -s user nodi npx -y @synexiom-labs/nodiom-m```
`-s user` 全局注册到所有项目没有该标志,服务器仅在 Claude Code 的工作目录与运行匹配时才处于活动### 任意 MCP 客户端 传输)
```json
{
"command": "npx",
"args": ["-y", "@synexiom-labs/nodiom-mcp"]
}
## 工具
服务器暴露 种工具,所有工具都 Markdown 文件的绝对路径进行 `nodiom_tree读取或修改文档之前,结构大纲。
```
文件:.md"
→ 返回的嵌套 JSON 树### `nodiom位置的内容。
"/path/to/wiki.md器: "# 项目极光任务 > ### 活动 返回该部分的 Markdown 内容
`nodiom_read_list某个部分下所有列表 JSON 数组。
```
文件:/to/wiki.md"
选择器: "# 项目极光 > ## ["- 爱丽丝 — 技术负责人", "- 鲍勃·马丁内斯 — 机器学习工程师", ...]
`nodiom_write`
的内容(保留标题)文件: "/path/to/wiki器: "# 项目 > ## 概述"
内容项目极光有望在第三季度交付。"
→ 仅替换概述部分。其他内容保持不变。
```
### `nodiom_append`
在某个部分中追加内容到最后一个项目之后。
```
文件: "/path/to/wiki.md"
选择器: "# 项目极光 > ## 任务 > ### 活动"
内容: "- [ ] 部署到预发布环境"
→ 在活动部分末尾添加新任务。现有任务保持不变。
```
### `nodiom_delete`
删除某个节点或部分。
```
文件: "/path/to/wiki.md"
选择器: "# 项目极光 > ## 任务 > ### 已完成 > li[0]"
→ 删除第一个已完成的任务。
```
### `nodiom_query`
检查某个部分是否存在并获取其元数据。
```
文件: "/path/to/wiki.md"
选择器: "# 项目极光 > ## 任务"
→ { "exists": true, "type": "heading", "depth": 2, "childCount": 3, "index": 4 }
```
---
## 选择器语法
选择器是使用 `" > "` 分隔的标题和元素段的路径:
```
"# 项目" → H1 部分
"# 项目 > ## 任务" → H1 下的 H2
"# 项目 > ## 任务 > ### 活动" → H1 下的 H2 下的 H3
"## 任务 > li[0]" → 第一个列表项
"## 任务 > li[-1]" → 最后一个列表项
"## 备注 > p[0]" → 第一段
"## 架构 > table[0]" → 第一个表格
```
当选择器不匹配时,错误信息将包含模糊建议:`"您是否想的是 '## 任务'?"`
---
## 示例代理提示
配置好服务器后,您可以自然地指示 Claude> "查看我的项目维基,位于 `/Users/me/projects/aurora/wiki.md`。有哪些活跃的任务?添加一个新任务:'编写集成测试'。然后将第一个已完成的任务移动到新的 '## 存档' 部分。"
Claude 将使用 `nodiom_tree` 来理解结构,使用 `nodiom_read_list` 来获取任务,使用 `nodiom_append` 来添加新任务,并nodiom_read` + `nodiom_delete` + `nodiom_append` 来移动已完成的任务 — 所有这些操作都无需将整个文件作为字符串加载。
---
## Nodiom 生态系统的一部分
| 包 ||---|---|
| [`@synexiom-labs/nodiom`](https://github.com/Synexiom-Labs/nodiom) | 核心库 — 直接在 Node.js 代码中使用 |
| `@synexiom-labs/nodiom-mcp` | 此包 — 用于 AI MCP 服务器 |
---
## 许可证
MIT — [Synexiom Labs Inc.](synexiomlabs.com)