Skip to content

MCP 工具参考

本页面记录了 Claude(或其他 AI 助手)连接 VMark 时可用的所有 MCP 工具。

VMark 暴露了一组 复合工具协议工具资源——全部记录如下。复合工具使用 action 参数选择操作——这减少了 token 开销,同时保持所有功能可访问。

推荐工作流

对于大多数写作任务,你只需要少量操作:

了解: structureget_digestdocumentsearch读取: structureget_sectiondocumentread_paragraph / get_content写入: structureupdate_section / insert_sectiondocumentwrite_paragraph / smart_insert控制: editorundo / redosuggestionsaccept / reject文件: workspacesavetabsswitch / list

其余操作提供针对高级自动化场景的精细控制。

Mermaid 图表

通过 MCP 使用 AI 生成 Mermaid 图表时,考虑安装 mermaid-validator MCP 服务器——它在图表进入你的文档之前使用相同的 Mermaid v11 解析器捕获语法错误。


document

读取、写入、搜索和转换文档内容。12 个操作。

所有操作接受可选的 windowId(字符串)参数以指定目标窗口,默认为当前聚焦窗口。

get_content

获取完整文档内容(Markdown 文本)。

set_content

替换整个文档内容。

参数类型必需描述
contentstring新文档内容(支持 Markdown)。

仅限空文档

为安全起见,此操作只允许在目标文档 为空 时使用。对于非空文档,请使用 insert_at_cursorapply_diffselectionreplace——这些操作会创建需要用户批准的建议。

insert_at_cursor

在当前光标位置插入文本。

参数类型必需描述
textstring要插入的文本(支持 Markdown)。

返回: { message, position, suggestionId?, applied }

建议系统

默认情况下,此操作会创建需要用户批准的 建议。文本以幽灵文字预览形式出现。用户可以接受(Enter)或拒绝(Escape)。如果在设置 → 集成中启用了 自动批准编辑,更改会立即应用。

insert_at_position

在指定字符位置插入文本。

参数类型必需描述
textstring要插入的文本(支持 Markdown)。
positionnumber字符位置(从 0 开始)。

返回: { message, position, suggestionId?, applied }

在文档中搜索文本。

参数类型必需描述
querystring要搜索的文本。
caseSensitiveboolean区分大小写搜索。默认:false。

返回: 包含位置和行号的匹配数组。

replace_in_source

在 Markdown 源码层面替换文本,绕过 ProseMirror 节点边界。

参数类型必需描述
searchstring在 Markdown 源码中查找的文本。
replacestring替换文本(支持 Markdown)。
allboolean替换所有出现位置。默认:false。

返回: { count, message, suggestionIds?, applied }

何时使用

优先使用 apply_diff——它更快更精确。只有当搜索文本跨越格式边界(粗体、斜体、链接等)且 apply_diff 无法找到时,才回退到 replace_in_source

batch_edit

原子性地应用多个操作。

参数类型必需描述
operationsarray操作数组(最多 100 个)。
baseRevisionstring用于冲突检测的预期版本。
requestIdstring幂等键。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

每个操作需要 typeupdateinsertdeleteformatmove)、nodeId,以及可选的 text/content

返回: { success, changedNodeIds[], suggestionIds[] }

apply_diff

使用匹配策略控制查找并替换文本。

参数类型必需描述
originalstring要查找的文本。
replacementstring替换文本。
baseRevisionstring用于冲突检测的预期版本。
matchPolicystringfirstallntherror_if_multiple。默认:first
nthnumber要替换的第几个匹配(从 0 开始,用于 nth 策略)。
scopeQueryobject缩小搜索范围的过滤器。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

返回: { matchCount, appliedCount, matches[], suggestionIds[] }

replace_anchored

使用上下文锚定精确替换文本。

参数类型必需描述
anchorobject{ text, beforeContext, afterContext }
replacementstring替换文本。
baseRevisionstring用于冲突检测的预期版本。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

read_paragraph

按索引或内容匹配读取文档中的段落。

参数类型必需描述
targetobject{ index: 0 }{ containing: "text" }
includeContextboolean包含周围段落。默认:false。

返回: { index, content, wordCount, charCount, position, context? }

write_paragraph

修改文档中的段落。

参数类型必需描述
baseRevisionstring用于冲突检测的文档版本。
targetobject{ index: 0 }{ containing: "text" }
operationstringreplaceappendprependdelete
contentstring条件新内容(delete 以外的操作都需要)。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

返回: { success, message, suggestionId?, applied, newRevision? }

smart_insert

在文档常见位置插入内容。

参数类型必需描述
baseRevisionstring用于冲突检测的文档版本。
destination多种插入位置(见下文)。
contentstring要插入的 Markdown 内容。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

目标选项:

  • "end_of_document" — 在末尾插入
  • "start_of_document" — 在开头插入
  • { after_paragraph: 2 } — 在索引为 2 的段落之后插入
  • { after_paragraph_containing: "conclusion" } — 在包含文本的段落之后插入
  • { after_section: "Introduction" } — 在指定章节标题之后插入

返回: { success, message, suggestionId?, applied, newRevision?, insertedAt? }

何时使用

  • 结构化文档(带标题):使用 structureget_sectionupdate_sectioninsert_section
  • 平面文档(无标题):使用 documentread_paragraphwrite_paragraphsmart_insert
  • 文档末尾:使用 documentsmart_insert,目标为 "end_of_document"

structure

文档结构查询和章节操作。8 个操作。

所有操作接受可选的 windowId 参数。

get_ast

获取文档的抽象语法树。

参数类型必需描述
projectionstring[]要包含的字段:idtypetextattrsmarkschildren
filterobjecttypelevelcontainshasMarks 过滤。
limitnumber最大结果数。
offsetnumber跳过数量。
afterCursorstring用于游标分页的节点 ID。

返回: 包含节点类型、位置和内容的完整 AST。

get_digest

获取文档结构的紧凑摘要。

返回: { revision, title, wordCount, charCount, outline[], sections[], blockCounts, hasImages, hasTables, hasCodeBlocks, languages[] }

list_blocks

列出文档中所有块及其节点 ID。

参数类型必需描述
queryobjecttypelevelcontainshasMarks 过滤。
projectionstring[]要包含的字段。
limitnumber最大结果数。
afterCursorstring用于游标分页的节点 ID。

返回: { revision, blocks[], hasMore, nextCursor? }

节点 ID 使用前缀:h-0(标题)、p-0(段落)、code-0(代码块)等。

resolve_targets

变更的预检——按查询查找节点。

参数类型必需描述
queryobject查询条件:typelevelcontainshasMarks
maxResultsnumber最大候选数。

返回: 解析后的目标位置和类型。

get_section

获取文档章节的内容(标题及其内容,直到下一个同级或更高级标题)。

参数类型必需描述
headingstring | object标题文本(字符串)或 { level, index }
includeNestedboolean包含子章节。

返回: 包含标题、正文和位置的章节内容。

update_section

更新章节内容。

参数类型必需描述
baseRevisionstring文档版本。
targetobject{ heading, byIndex 或 sectionId }
newContentstring新章节内容(Markdown)。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

insert_section

插入新章节。

参数类型必需描述
baseRevisionstring文档版本。
afterobject插入其后的章节目标。
sectionHeadingobject{ level, text } — 标题级别(1-6)和文本。
contentstring章节正文内容。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

move_section

将章节移动到新位置。

参数类型必需描述
baseRevisionstring文档版本。
sectionobject要移动的章节:{ heading, byIndex 或 sectionId }
afterobject移动到其后的章节目标。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

selection

读取和操作文本选区与光标。5 个操作。

所有操作接受可选的 windowId 参数。

get

获取当前文本选区。

返回: { text, range: { from, to }, isEmpty }

set

设置选区范围。

参数类型必需描述
fromnumber起始位置(包含)。
tonumber结束位置(不包含)。

TIP

fromto 设为相同值可在不选择文本的情况下定位光标。

replace

用新文本替换选中文本。

参数类型必需描述
textstring替换文本(支持 Markdown)。

返回: { message, range, originalContent, suggestionId?, applied }

建议系统

默认情况下,此操作会创建需要用户批准的 建议。原文显示删除线,新文本以幽灵文字显示。如果在设置 → 集成中启用了 自动批准编辑,更改会立即应用。

get_context

获取光标周围的文本以了解上下文。

参数类型必需描述
linesBeforenumber光标前的行数。默认:3。
linesAfternumber光标后的行数。默认:3。

返回: { before, after, currentLine, currentParagraph, block }

block 对象包含:

字段类型描述
typestring块类型:paragraphheadingcodeBlockblockquote
levelnumber标题级别 1-6(仅限标题)
languagestring代码语言(仅限设置了语言的代码块)
inListstring如果在列表内,列表类型:bulletorderedtask
inBlockquoteboolean如果在引用块内,则为 true
inTableboolean如果在表格内,则为 true
positionnumber块开始的文档位置

set_cursor

设置光标位置(清除选区)。

参数类型必需描述
positionnumber字符位置(从 0 开始)。

format

文本格式化、块类型、列表和列表批量操作。10 个操作。

所有操作接受可选的 windowId 参数。

toggle

在当前选区切换格式标记。

参数类型必需描述
markstringbolditaliccodestrikeunderlinehighlight

在选中文本上创建超链接。

参数类型必需描述
hrefstring链接 URL。
titlestring链接标题(工具提示)。

移除选区中的超链接。无其他参数。

clear

移除选区中的所有格式。无其他参数。

set_block_type

将当前块转换为指定类型。

参数类型必需描述
blockTypestringparagraphheadingcodeBlockblockquote
levelnumber条件标题级别 1-6(heading 必需)。
languagestring代码语言(用于 codeBlock)。

insert_hr

在光标处插入水平线(---)。无其他参数。

toggle_list

在当前块切换列表类型。

参数类型必需描述
listTypestringbulletorderedtask

indent_list

增加当前列表项的缩进。无其他参数。

outdent_list

减少当前列表项的缩进。无其他参数。

list_modify

批量修改列表的结构和内容。

参数类型必需描述
baseRevisionstring文档版本。
targetobject{ listId }{ selector }{ listIndex }
operationsarray列表操作数组。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

操作:add_itemdelete_itemupdate_itemtoggle_checkreorderset_indent


table

表格操作。3 个操作。

所有操作接受可选的 windowId 参数。

insert

在光标处插入新表格。

参数类型必需描述
rowsnumber行数(至少 1)。
colsnumber列数(至少 1)。
withHeaderRowboolean是否包含标题行。默认:true。

delete

删除光标位置处的表格。无其他参数。

modify

批量修改表格的结构和内容。

参数类型必需描述
baseRevisionstring文档版本。
targetobject{ tableId }{ afterHeading }{ tableIndex }
operationsarray表格操作数组。
modestringdryRun 可在不应用的情况下预览。应用与建议由用户设置控制。

操作:add_rowdelete_rowadd_columndelete_columnupdate_cellset_header


editor

编辑器状态操作。3 个操作。

所有操作接受可选的 windowId 参数。

undo

撤销上一次编辑操作。

redo

重做上一次撤销的操作。

focus

聚焦编辑器(将其置于前台,准备接受输入)。


workspace

管理文档、窗口和工作区状态。12 个操作。

对特定窗口操作的操作接受可选的 windowId 参数。

list_windows

列出所有已打开的 VMark 窗口。

返回: { label, title, filePath, isFocused, isAiExposed } 数组

get_focused

获取当前聚焦窗口的标签。

focus_window

聚焦指定窗口。

参数类型必需描述
windowIdstring要聚焦的窗口标签。

new_document

创建新的空文档。

参数类型必需描述
titlestring可选文档标题。

open_document

从文件系统打开文档。

参数类型必需描述
pathstring要打开的文件路径。

save

保存当前文档。

save_as

将文档保存到新路径。

参数类型必需描述
pathstring新文件路径。

get_document_info

获取文档元数据。

返回: { filePath, isDirty, title, wordCount, charCount }

close_window

关闭窗口。

list_recent_files

列出最近打开的文件。

返回: { path, name, timestamp } 数组(最多 10 个文件,最新的在前)。

get_info

获取当前工作区状态信息。

返回: { isWorkspaceMode, rootPath, workspaceName }

reload_document

从磁盘重新加载活跃文档。

参数类型必需描述
forceboolean即使文档有未保存的更改也强制重新加载。默认:false。

如果文档未命名或有未保存的更改且未设置 force: true,则操作失败。


tabs

管理窗口内的编辑器标签页。6 个操作。

所有操作接受可选的 windowId 参数。

list

列出窗口中所有标签页。

返回: { id, title, filePath, isDirty, isActive } 数组

switch

切换到指定标签页。

参数类型必需描述
tabIdstring要切换到的标签页 ID。

close

关闭标签页。

参数类型必需描述
tabIdstring要关闭的标签页 ID。默认为活跃标签页。

create

创建新的空标签页。

返回: { tabId }

get_info

获取详细的标签页信息。

参数类型必需描述
tabIdstring标签页 ID。默认为活跃标签页。

返回: { id, title, filePath, isDirty, isActive }

reopen_closed

重新打开最近关闭的标签页。

返回: { tabId, filePath, title } 或无可用标签页时的提示信息。

VMark 每个窗口记录最近关闭的 10 个标签页。


media

插入数学公式、图表、媒体、wiki 链接和中日韩格式化。11 个操作。

所有操作接受可选的 windowId 参数。

math_inline

插入内联 LaTeX 数学公式。

参数类型必需描述
latexstringLaTeX 表达式(例如 E = mc^2)。

math_block

插入块级数学公式。

参数类型必需描述
latexstringLaTeX 表达式。

mermaid

插入 Mermaid 图表。

参数类型必需描述
codestringMermaid 图表代码。

markmap

插入 Markmap 思维导图。使用标准 Markdown 标题定义树形结构。

参数类型必需描述
codestring包含定义思维导图树的标题的 Markdown。

svg

插入 SVG 图形。SVG 内联渲染,支持平移、缩放和 PNG 导出。

参数类型必需描述
codestringSVG 标记(带 <svg> 根的有效 XML)。

插入 wiki 风格链接。

参数类型必需描述
targetstring链接目标(页面名称)。
displayTextstring显示文本(如果与目标不同)。

结果: [[target]][[target|displayText]]

video

插入 HTML5 视频元素。

参数类型必需描述
srcstring视频文件路径或 URL。
baseRevisionstring文档版本。
titlestringtitle 属性。
posterstring封面图路径或 URL。

audio

插入 HTML5 音频元素。

参数类型必需描述
srcstring音频文件路径或 URL。
baseRevisionstring文档版本。
titlestringtitle 属性。

video_embed

插入视频嵌入(iframe)。支持 YouTube(隐私增强型)、Vimeo 和 Bilibili。

参数类型必需描述
videoIdstring视频 ID(YouTube:11 字符;Vimeo:数字;Bilibili:BV ID)。
baseRevisionstring文档版本。
providerstringyoutube(默认)、vimeobilibili

cjk_punctuation

在半角和全角之间转换标点。

参数类型必需描述
directionstringto-fullwidthto-halfwidth

cjk_spacing

在中日韩字符和拉丁字符之间添加或移除间距。

参数类型必需描述
spacingActionstringaddremove

suggestions

管理待用户批准的 AI 生成编辑建议。5 个操作。

当 AI 使用 documentinsert_at_cursor / insert_at_position / replace_in_sourceselectionreplacedocumentapply_diff / batch_edit 时,更改会作为需要用户批准的建议暂存。

所有操作接受可选的 windowId 参数。

撤销/重做安全

建议在被接受之前不会修改文档。这保留了完整的撤销/重做功能——用户可以在接受后撤销,拒绝时不会在历史记录中留下任何痕迹。

自动批准模式

如果在设置 → 集成中启用了 自动批准编辑,更改会直接应用,不会创建建议。下面的操作只在自动批准禁用时(默认)才需要。

list

列出所有待处理的建议。

返回: { suggestions: [...], count, focusedId }

每条建议包含 idtypeinsertreplacedelete)、fromtonewContentoriginalContentcreatedAt

accept

接受指定建议,将其更改应用到文档。

参数类型必需描述
suggestionIdstring要接受的建议 ID。

reject

拒绝指定建议,丢弃而不应用更改。

参数类型必需描述
suggestionIdstring要拒绝的建议 ID。

accept_all

按文档顺序接受所有待处理的建议。

reject_all

拒绝所有待处理的建议。


协议工具

两个用于查询服务器功能和文档状态的独立工具。这些工具不使用复合 action 模式。

get_capabilities

获取 MCP 服务器的功能和可用工具。

返回: { version, supportedNodeTypes[], supportedQueryOperators[], limits, features }

get_document_revision

获取当前文档版本(用于乐观锁)。

参数类型必需描述
windowIdstring窗口标识符。

返回: { revision, lastUpdated }

在变更操作中使用版本号来检测并发编辑。


MCP 资源

除工具外,VMark 还暴露以下只读资源:

资源 URI描述
vmark://document/outline文档标题层级结构
vmark://document/metadata文档元数据(路径、字数等)
vmark://windows/list已打开窗口列表
vmark://windows/focused当前聚焦窗口标签