调用 marsdawn 的三种方式。
MarsDawn 没有自己的 AI 模型:它是为了审阅 Markdown 而做的,不是用来写的,所以是哪个代理或模型写出这份 Markdown 并不重要。代理或脚本调用 marsdawn 有三种方式,最后都会运行同一个 export。
挑你的工具支持的那一种:免费的 marsdawn CLI、纯 Markdown 的 skill 文件,或是 marsdawn-mcp 这个 MCP 服务器。三者都调用同一个 marsdawn export,返回一样的 JSON 结果。
该用哪一个
| 如果你的代理 | 就用 | 需要 |
|---|---|---|
| 能运行 shell 命令 | 命令行工具 | macOS 15 或更高版本 |
| 会加载指令文件,例如 Claude Code | skill 文件 | 命令行工具(skill 会帮你安装) |
| 通过 MCP 调用工具 | marsdawn-mcp | marsdawn-mcp 0.2.1 或更高版本、marsdawn 0.5.0 或更高版本,以及 Node.js 20 或更高版本 |
CLI
marsdawn export notes.md --json 可以被任何能运行 shell 命令的代理或脚本调用,因为是命令行工具,天生就跟模型无关。它返回的每个字段都写在给 AI 代理的 marsdawn 参考里,那一页是 JSON schema 的权威来源,下面另外两种方式都会连回去。
Skill 文件
如果你的代理读的是纯 Markdown 指令,而不是直接运行 shell——目前是 Claude Code——marsdawn skill 就是一个文件,教它安装 marsdawn、运行 export、读懂结果。因为它就是纯 Markdown,其他会读指令文件的代理也能用同一个文件。
MCP 服务器
marsdawn-mcp 是另一个独立、公开、Apache-2.0 授权的 repository。它是一个有两个工具的 MCP 服务器,export_markdown_to_pdf 和 open_in_marsdawn,分别包住 marsdawn export --json 和 marsdawn open --json:把 MCP 客户端指向它,工具调用返回的 JSON 和 CLI 一样。
- 获取方式:以 MCP Bundle(
marsdawn.mcpb)的形式附在GitHub release 上,或从源代码以 stdio 运行服务器。 - Registry:已上架 MCP Registry,名称为
dev.southern-light.mcp/marsdawn。 - 托管:只能自架,没有代管服务。服务器跑在你自己的机器上,就在 marsdawn 旁边。
- 系统要求:macOS、marsdawn 0.5.0 以上,以及运行服务器需要的 Node.js 20 以上。
只能在你允许的文件夹里运行
两个工具都只能在你允许的文件夹里读写:扩展的「Allowed folders」设置(默认是空的),或者你的 MCP 客户端提供的 roots。两者都没设置时,每次调用都会被拒绝,拒绝消息会说明怎么设置。每个路径都必须是绝对路径,而 export_markdown_to_pdf 只会写出 .pdf 文件,不会通过 symlink 写。
安全性:请更新到 0.2.1——0.1.0 和 0.2.0 会让调用把 PDF 写到你账号能写入的任何路径,已在 GHSA-fqgj-hcxc-34qc 修复。
同一个 export,三扇门
不管从哪个界面调用,底层行为都一样:同一套导出程序、同样的主题和纸张大小,Mermaid 图表画不出来时也是同样的 diagramErrors。这页不重复那份规格——给 AI 代理的 marsdawn 参考里有完整内容。
接下来
- 完整 JSON schema 和所有退出代码:给 AI 代理的 marsdawn 参考。
- 给 Claude Code 等代理用的一个文件:marsdawn skill。
- 精简的 JSON 结果为什么对代理自己的 context 很重要:节省 token 的审阅方式。