Skip to content

Referencia de Herramientas MCP

Esta página documenta todas las herramientas MCP disponibles cuando Claude (u otros asistentes de IA) se conecta a VMark.

VMark expone un conjunto de herramientas compuestas, herramientas de protocolo y recursos — todos documentados a continuación. Las herramientas compuestas usan un parámetro action para seleccionar la operación, lo que reduce la sobrecarga de tokens mientras mantiene todas las capacidades accesibles.

Flujo de Trabajo Recomendado

Para la mayoría de las tareas de escritura, solo necesitas un puñado de acciones:

Entender: structureget_digest, documentsearchLeer: structureget_section, documentread_paragraph / get_contentEscribir: structureupdate_section / insert_section, documentwrite_paragraph / smart_insertControlar: editorundo / redo, suggestionsaccept / rejectArchivos: workspacesave, tabsswitch / list

Las acciones restantes proporcionan control detallado para escenarios de automatización avanzada.

Diagramas Mermaid

Cuando uses IA para generar diagramas Mermaid a través de MCP, considera instalar el servidor MCP mermaid-validator — detecta errores de sintaxis usando los mismos analizadores de Mermaid v11 antes de que los diagramas lleguen a tu documento.


document

Lee, escribe, busca y transforma el contenido del documento. 12 acciones.

Todas las acciones aceptan un parámetro opcional windowId (string) para apuntar a una ventana específica. Por defecto, usa la ventana enfocada.

get_content

Obtiene el contenido completo del documento como texto markdown.

set_content

Reemplaza todo el contenido del documento.

ParámetroTipoRequeridoDescripción
contentstringNuevo contenido del documento (markdown compatible).

Solo Documentos Vacíos

Por seguridad, esta acción solo está permitida cuando el documento de destino está vacío. Para documentos no vacíos, usa insert_at_cursor, apply_diff o selectionreplace en su lugar — estas crean sugerencias que requieren la aprobación del usuario.

insert_at_cursor

Inserta texto en la posición actual del cursor.

ParámetroTipoRequeridoDescripción
textstringTexto a insertar (markdown compatible).

Devuelve: { message, position, suggestionId?, applied }

Sistema de Sugerencias

Por defecto, esta acción crea una sugerencia que requiere la aprobación del usuario. El texto aparece como vista previa de texto fantasma. Los usuarios pueden aceptar (Enter) o rechazar (Escape). Si Auto-aprobar ediciones está habilitado en Configuración → Integraciones, los cambios se aplican inmediatamente.

insert_at_position

Inserta texto en una posición de carácter específica.

ParámetroTipoRequeridoDescripción
textstringTexto a insertar (markdown compatible).
positionnumberPosición de carácter (índice desde 0).

Devuelve: { message, position, suggestionId?, applied }

Busca texto en el documento.

ParámetroTipoRequeridoDescripción
querystringTexto a buscar.
caseSensitivebooleanNoBúsqueda con distinción entre mayúsculas y minúsculas. Por defecto: false.

Devuelve: Array de coincidencias con posiciones y números de línea.

replace_in_source

Reemplaza texto a nivel de fuente markdown, sin pasar por los límites de nodos de ProseMirror.

ParámetroTipoRequeridoDescripción
searchstringTexto a encontrar en la fuente markdown.
replacestringTexto de reemplazo (markdown compatible).
allbooleanNoReemplazar todas las ocurrencias. Por defecto: false.

Devuelve: { count, message, suggestionIds?, applied }

Cuándo usar

Usa apply_diff primero — es más rápido y preciso. Recurre a replace_in_source solo cuando el texto de búsqueda cruza límites de formato (negrita, cursiva, enlaces, etc.) y apply_diff no puede encontrarlo.

batch_edit

Aplica múltiples operaciones de forma atómica.

ParámetroTipoRequeridoDescripción
operationsarrayArray de operaciones (máx. 100).
baseRevisionstringRevisión esperada para detección de conflictos.
requestIdstringNoClave de idempotencia.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

Cada operación requiere type (update, insert, delete, format, o move), nodeId, y opcionalmente text/content.

Devuelve: { success, changedNodeIds[], suggestionIds[] }

apply_diff

Busca y reemplaza texto con control de política de coincidencia.

ParámetroTipoRequeridoDescripción
originalstringTexto a encontrar.
replacementstringTexto con el que reemplazar.
baseRevisionstringRevisión esperada para detección de conflictos.
matchPolicystringNofirst, all, nth, o error_if_multiple. Por defecto: first.
nthnumberNoQué coincidencia reemplazar (índice desde 0, para la política nth).
scopeQueryobjectNoFiltro de alcance para reducir la búsqueda.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

Devuelve: { matchCount, appliedCount, matches[], suggestionIds[] }

replace_anchored

Reemplaza texto usando anclaje de contexto para una selección precisa.

ParámetroTipoRequeridoDescripción
anchorobject{ text, beforeContext, afterContext }
replacementstringTexto de reemplazo.
baseRevisionstringRevisión esperada para detección de conflictos.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

read_paragraph

Lee un párrafo del documento por índice o coincidencia de contenido.

ParámetroTipoRequeridoDescripción
targetobject{ index: 0 } o { containing: "text" }
includeContextbooleanNoIncluye los párrafos circundantes. Por defecto: false.

Devuelve: { index, content, wordCount, charCount, position, context? }

write_paragraph

Modifica un párrafo en el documento.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento para detección de conflictos.
targetobject{ index: 0 } o { containing: "text" }
operationstringreplace, append, prepend, o delete.
contentstringCondicionalNuevo contenido (requerido excepto para delete).
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

Devuelve: { success, message, suggestionId?, applied, newRevision? }

smart_insert

Inserta contenido en ubicaciones comunes del documento.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento para detección de conflictos.
destinationvaríaDónde insertar (ver más abajo).
contentstringContenido markdown a insertar.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

Opciones de destino:

  • "end_of_document" — Insertar al final
  • "start_of_document" — Insertar al principio
  • { after_paragraph: 2 } — Insertar después del párrafo en el índice 2
  • { after_paragraph_containing: "conclusion" } — Insertar después del párrafo que contiene el texto
  • { after_section: "Introduction" } — Insertar después del encabezado de sección

Devuelve: { success, message, suggestionId?, applied, newRevision?, insertedAt? }

Cuándo Usar

  • Documentos estructurados (con encabezados): Usa structureget_section, update_section, insert_section
  • Documentos planos (sin encabezados): Usa documentread_paragraph, write_paragraph, smart_insert
  • Final del documento: Usa documentsmart_insert con "end_of_document"

structure

Consultas de estructura del documento y operaciones de secciones. 8 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

get_ast

Obtiene el árbol de sintaxis abstracta del documento.

ParámetroTipoRequeridoDescripción
projectionstring[]NoCampos a incluir: id, type, text, attrs, marks, children.
filterobjectNoFiltrar por type, level, contains, hasMarks.
limitnumberNoMáximo de resultados.
offsetnumberNoNúmero a saltar.
afterCursorstringNoID de nodo para paginación por cursor.

Devuelve: AST completo con tipos de nodo, posiciones y contenido.

get_digest

Obtiene un resumen compacto de la estructura del documento.

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

list_blocks

Lista todos los bloques del documento con sus IDs de nodo.

ParámetroTipoRequeridoDescripción
queryobjectNoFiltrar por type, level, contains, hasMarks.
projectionstring[]NoCampos a incluir.
limitnumberNoMáximo de resultados.
afterCursorstringNoID de nodo para paginación por cursor.

Devuelve: { revision, blocks[], hasMore, nextCursor? }

Los IDs de nodo usan prefijos: h-0 (encabezado), p-0 (párrafo), code-0 (bloque de código), etc.

resolve_targets

Verificación preliminar para mutaciones — encuentra nodos por consulta.

ParámetroTipoRequeridoDescripción
queryobjectCriterios de consulta: type, level, contains, hasMarks.
maxResultsnumberNoMáximo de candidatos.

Devuelve: Posiciones y tipos de destino resueltos.

get_section

Obtiene el contenido de una sección del documento (encabezado y su contenido hasta el siguiente encabezado del mismo nivel o superior).

ParámetroTipoRequeridoDescripción
headingstring | objectTexto del encabezado (string) o { level, index }.
includeNestedbooleanNoIncluir subsecciones.

Devuelve: Contenido de la sección con encabezado, cuerpo y posiciones.

update_section

Actualiza el contenido de una sección.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento.
targetobject{ heading, byIndex, o sectionId }
newContentstringNuevo contenido de la sección (markdown).
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

insert_section

Inserta una nueva sección.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento.
afterobjectNoSección de destino tras la que insertar.
sectionHeadingobject{ level, text } — nivel del encabezado (1-6) y texto.
contentstringNoContenido del cuerpo de la sección.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

move_section

Mueve una sección a una nueva ubicación.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento.
sectionobjectSección a mover: { heading, byIndex, o sectionId }.
afterobjectNoSección de destino tras la que mover.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

selection

Lee y manipula la selección de texto y el cursor. 5 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

get

Obtiene la selección de texto actual.

Devuelve: { text, range: { from, to }, isEmpty }

set

Establece el rango de selección.

ParámetroTipoRequeridoDescripción
fromnumberPosición de inicio (inclusiva).
tonumberPosición de fin (exclusiva).

TIP

Usa el mismo valor para from y to para posicionar el cursor sin seleccionar texto.

replace

Reemplaza el texto seleccionado con nuevo texto.

ParámetroTipoRequeridoDescripción
textstringTexto de reemplazo (markdown compatible).

Devuelve: { message, range, originalContent, suggestionId?, applied }

Sistema de Sugerencias

Por defecto, esta acción crea una sugerencia que requiere la aprobación del usuario. El texto original aparece con tachado y el nuevo texto aparece como texto fantasma. Si Auto-aprobar ediciones está habilitado en Configuración → Integraciones, los cambios se aplican inmediatamente.

get_context

Obtiene el texto alrededor del cursor para comprender el contexto.

ParámetroTipoRequeridoDescripción
linesBeforenumberNoLíneas antes del cursor. Por defecto: 3.
linesAfternumberNoLíneas después del cursor. Por defecto: 3.

Devuelve: { before, after, currentLine, currentParagraph, block }

El objeto block contiene:

CampoTipoDescripción
typestringTipo de bloque: paragraph, heading, codeBlock, blockquote, etc.
levelnumberNivel de encabezado 1-6 (solo para encabezados)
languagestringLenguaje del código (solo para bloques de código con lenguaje establecido)
inListstringTipo de lista si está dentro de una lista: bullet, ordered, o task
inBlockquotebooleantrue si está dentro de una cita
inTablebooleantrue si está dentro de una tabla
positionnumberPosición en el documento donde comienza el bloque

set_cursor

Establece la posición del cursor (limpia la selección).

ParámetroTipoRequeridoDescripción
positionnumberPosición de carácter (índice desde 0).

format

Formato de texto, tipos de bloque, listas y operaciones en lote de listas. 10 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

toggle

Activa o desactiva una marca de formato en la selección actual.

ParámetroTipoRequeridoDescripción
markstringbold, italic, code, strike, underline, o highlight

Crea un hipervínculo en el texto seleccionado.

ParámetroTipoRequeridoDescripción
hrefstringURL del enlace.
titlestringNoTítulo del enlace (tooltip).

Elimina el hipervínculo de la selección. Sin parámetros adicionales.

clear

Elimina todo el formato de la selección. Sin parámetros adicionales.

set_block_type

Convierte el bloque actual a un tipo específico.

ParámetroTipoRequeridoDescripción
blockTypestringparagraph, heading, codeBlock, o blockquote
levelnumberCondicionalNivel de encabezado 1-6 (requerido para heading).
languagestringNoLenguaje del código (para codeBlock).

insert_hr

Inserta una línea horizontal (---) en el cursor. Sin parámetros adicionales.

toggle_list

Activa o desactiva el tipo de lista en el bloque actual.

ParámetroTipoRequeridoDescripción
listTypestringbullet, ordered, o task

indent_list

Aumenta la sangría del elemento de lista actual. Sin parámetros adicionales.

outdent_list

Disminuye la sangría del elemento de lista actual. Sin parámetros adicionales.

list_modify

Modifica en lote la estructura y el contenido de una lista.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento.
targetobject{ listId }, { selector }, o { listIndex }
operationsarrayArray de operaciones de lista.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

Operaciones: add_item, delete_item, update_item, toggle_check, reorder, set_indent


table

Operaciones de tabla. 3 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

insert

Inserta una nueva tabla en el cursor.

ParámetroTipoRequeridoDescripción
rowsnumberNúmero de filas (debe ser al menos 1).
colsnumberNúmero de columnas (debe ser al menos 1).
withHeaderRowbooleanNoSi incluir una fila de encabezado. Por defecto: true.

delete

Elimina la tabla en la posición del cursor. Sin parámetros adicionales.

modify

Modifica en lote la estructura y el contenido de una tabla.

ParámetroTipoRequeridoDescripción
baseRevisionstringRevisión del documento.
targetobject{ tableId }, { afterHeading }, o { tableIndex }
operationsarrayArray de operaciones de tabla.
modestringNodryRun para previsualizar sin aplicar. Aplicar vs. sugerir está controlado por la configuración del usuario.

Operaciones: add_row, delete_row, add_column, delete_column, update_cell, set_header


editor

Operaciones de estado del editor. 3 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

undo

Deshace la última acción de edición.

redo

Rehace la última acción deshecha.

focus

Enfoca el editor (lo trae al frente, listo para recibir entrada).


workspace

Gestiona documentos, ventanas y el estado del espacio de trabajo. 12 acciones.

Las acciones que operan en una ventana específica aceptan un parámetro opcional windowId.

list_windows

Lista todas las ventanas abiertas de VMark.

Devuelve: Array de { label, title, filePath, isFocused, isAiExposed }

get_focused

Obtiene la etiqueta de la ventana enfocada.

focus_window

Enfoca una ventana específica.

ParámetroTipoRequeridoDescripción
windowIdstringEtiqueta de ventana a enfocar.

new_document

Crea un nuevo documento vacío.

ParámetroTipoRequeridoDescripción
titlestringNoTítulo opcional del documento.

open_document

Abre un documento desde el sistema de archivos.

ParámetroTipoRequeridoDescripción
pathstringRuta del archivo a abrir.

save

Guarda el documento actual.

save_as

Guarda el documento en una nueva ruta.

ParámetroTipoRequeridoDescripción
pathstringNueva ruta del archivo.

get_document_info

Obtiene los metadatos del documento.

Devuelve: { filePath, isDirty, title, wordCount, charCount }

close_window

Cierra una ventana.

list_recent_files

Lista los archivos abiertos recientemente.

Devuelve: Array de { path, name, timestamp } (hasta 10 archivos, el más reciente primero).

get_info

Obtiene información sobre el estado actual del espacio de trabajo.

Devuelve: { isWorkspaceMode, rootPath, workspaceName }

reload_document

Recarga el documento activo desde el disco.

ParámetroTipoRequeridoDescripción
forcebooleanNoForzar recarga aunque el documento tenga cambios sin guardar. Por defecto: false.

Falla si el documento no tiene título o tiene cambios sin guardar sin force: true.


tabs

Gestiona las pestañas del editor dentro de las ventanas. 6 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

list

Lista todas las pestañas en una ventana.

Devuelve: Array de { id, title, filePath, isDirty, isActive }

switch

Cambia a una pestaña específica.

ParámetroTipoRequeridoDescripción
tabIdstringID de pestaña al que cambiar.

close

Cierra una pestaña.

ParámetroTipoRequeridoDescripción
tabIdstringNoID de pestaña a cerrar. Por defecto, la pestaña activa.

create

Crea una nueva pestaña vacía.

Devuelve: { tabId }

get_info

Obtiene información detallada de la pestaña.

ParámetroTipoRequeridoDescripción
tabIdstringNoID de pestaña. Por defecto, la pestaña activa.

Devuelve: { id, title, filePath, isDirty, isActive }

reopen_closed

Vuelve a abrir la pestaña cerrada más recientemente.

Devuelve: { tabId, filePath, title } o un mensaje si no hay ninguna disponible.

VMark registra las últimas 10 pestañas cerradas por ventana.


media

Inserta matemáticas, diagramas, medios, wiki links y formato CJK. 11 acciones.

Todas las acciones aceptan un parámetro opcional windowId.

math_inline

Inserta matemáticas LaTeX en línea.

ParámetroTipoRequeridoDescripción
latexstringExpresión LaTeX (por ejemplo, E = mc^2).

math_block

Inserta una ecuación matemática a nivel de bloque.

ParámetroTipoRequeridoDescripción
latexstringExpresión LaTeX.

mermaid

Inserta un diagrama Mermaid.

ParámetroTipoRequeridoDescripción
codestringCódigo del diagrama Mermaid.

markmap

Inserta un mapa mental Markmap. Usa encabezados Markdown estándar para definir el árbol.

ParámetroTipoRequeridoDescripción
codestringMarkdown con encabezados que definen el árbol del mapa mental.

svg

Inserta un gráfico SVG. El SVG se renderiza en línea con panorámica, zoom y exportación PNG.

ParámetroTipoRequeridoDescripción
codestringMarcado SVG (XML válido con raíz <svg>).

Inserta un enlace estilo wiki.

ParámetroTipoRequeridoDescripción
targetstringDestino del enlace (nombre de página).
displayTextstringNoTexto de visualización (si es diferente del destino).

Resultado: [[target]] o [[target|displayText]]

video

Inserta un elemento de vídeo HTML5.

ParámetroTipoRequeridoDescripción
srcstringRuta o URL del archivo de vídeo.
baseRevisionstringRevisión del documento.
titlestringNoAtributo de título.
posterstringNoRuta o URL de la imagen de portada.

audio

Inserta un elemento de audio HTML5.

ParámetroTipoRequeridoDescripción
srcstringRuta o URL del archivo de audio.
baseRevisionstringRevisión del documento.
titlestringNoAtributo de título.

video_embed

Inserta un vídeo embebido (iframe). Compatible con YouTube (privacidad mejorada), Vimeo y Bilibili.

ParámetroTipoRequeridoDescripción
videoIdstringID del vídeo (YouTube: 11 caracteres, Vimeo: numérico, Bilibili: ID BV).
baseRevisionstringRevisión del documento.
providerstringNoyoutube (predeterminado), vimeo, o bilibili.

cjk_punctuation

Convierte puntuación entre medio ancho y ancho completo.

ParámetroTipoRequeridoDescripción
directionstringto-fullwidth o to-halfwidth.

cjk_spacing

Añade o elimina espaciado entre caracteres CJK y latinos.

ParámetroTipoRequeridoDescripción
spacingActionstringadd o remove.

suggestions

Gestiona las sugerencias de edición generadas por IA pendientes de aprobación del usuario. 5 acciones.

Cuando la IA usa documentinsert_at_cursor / insert_at_position / replace_in_source, selectionreplace, o documentapply_diff / batch_edit, los cambios se ponen en cola como sugerencias que requieren aprobación del usuario.

Todas las acciones aceptan un parámetro opcional windowId.

Seguridad de Deshacer/Rehacer

Las sugerencias no modifican el documento hasta que son aceptadas. Esto preserva la funcionalidad completa de deshacer/rehacer — los usuarios pueden deshacer después de aceptar, y rechazar no deja rastro en el historial.

Modo Auto-Aprobación

Si Auto-aprobar ediciones está habilitado en Configuración → Integraciones, los cambios se aplican directamente sin crear sugerencias. Las acciones siguientes solo son necesarias cuando la auto-aprobación está desactivada (el valor predeterminado).

list

Lista todas las sugerencias pendientes.

Devuelve: { suggestions: [...], count, focusedId }

Cada sugerencia incluye id, type (insert, replace, delete), from, to, newContent, originalContent y createdAt.

accept

Acepta una sugerencia específica, aplicando sus cambios al documento.

ParámetroTipoRequeridoDescripción
suggestionIdstringID de la sugerencia a aceptar.

reject

Rechaza una sugerencia específica, descartándola sin cambios.

ParámetroTipoRequeridoDescripción
suggestionIdstringID de la sugerencia a rechazar.

accept_all

Acepta todas las sugerencias pendientes en orden del documento.

reject_all

Rechaza todas las sugerencias pendientes.


Herramientas de Protocolo

Dos herramientas independientes para consultar las capacidades del servidor y el estado del documento. No usan el patrón compuesto action.

get_capabilities

Obtiene las capacidades del servidor MCP y las herramientas disponibles.

Devuelve: { version, supportedNodeTypes[], supportedQueryOperators[], limits, features }

get_document_revision

Obtiene la revisión actual del documento para bloqueo optimista.

ParámetroTipoRequeridoDescripción
windowIdstringNoIdentificador de ventana.

Devuelve: { revision, lastUpdated }

Usa la revisión en las acciones de mutación para detectar ediciones concurrentes.


Recursos MCP

Además de las herramientas, VMark expone estos recursos de solo lectura:

URI del RecursoDescripción
vmark://document/outlineJerarquía de encabezados del documento
vmark://document/metadataMetadatos del documento (ruta, recuento de palabras, etc.)
vmark://windows/listLista de ventanas abiertas
vmark://windows/focusedEtiqueta de la ventana enfocada actualmente