Skip to content

Riferimento Strumenti MCP

Questa pagina documenta tutti gli strumenti MCP disponibili quando Claude (o altri assistenti IA) si connette a VMark.

VMark espone un insieme di strumenti compositi, strumenti di protocollo e risorse — tutti documentati di seguito. Gli strumenti compositi usano un parametro action per selezionare l'operazione — questo riduce il sovraccarico di token mantenendo accessibili tutte le capacità.

Flusso di Lavoro Consigliato

Per la maggior parte dei compiti di scrittura, bastano poche azioni:

Comprendi: structureget_digest, documentsearchLeggi: structureget_section, documentread_paragraph / get_contentScrivi: structureupdate_section / insert_section, documentwrite_paragraph / smart_insertControlla: editorundo / redo, suggestionsaccept / rejectFile: workspacesave, tabsswitch / list

Le azioni rimanenti forniscono controllo granulare per scenari di automazione avanzati.

Diagrammi Mermaid

Quando si usa l'IA per generare diagrammi Mermaid tramite MCP, considera l'installazione del server MCP mermaid-validator — rileva gli errori di sintassi usando gli stessi parser Mermaid v11 prima che i diagrammi raggiungano il tuo documento.


document

Leggi, scrivi, cerca e trasforma il contenuto del documento. 12 azioni.

Tutte le azioni accettano un parametro opzionale windowId (stringa) per indirizzare una finestra specifica. Il valore predefinito è la finestra in primo piano.

get_content

Ottieni il contenuto completo del documento come testo markdown.

set_content

Sostituisci l'intero contenuto del documento.

ParametroTipoRichiestoDescrizione
contentstringaNuovo contenuto del documento (markdown supportato).

Solo Documenti Vuoti

Per sicurezza, questa azione è consentita solo quando il documento di destinazione è vuoto. Per i documenti non vuoti, usa insert_at_cursor, apply_diff, o selectionreplace — questi creano suggerimenti che richiedono l'approvazione dell'utente.

insert_at_cursor

Inserisci testo nella posizione corrente del cursore.

ParametroTipoRichiestoDescrizione
textstringaTesto da inserire (markdown supportato).

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

Sistema di Suggerimenti

Per impostazione predefinita, questa azione crea un suggerimento che richiede l'approvazione dell'utente. Il testo appare come anteprima fantasma. Gli utenti possono accettare (Invio) o rifiutare (Escape). Se Approva automaticamente le modifiche è abilitato in Impostazioni → Integrazioni, le modifiche vengono applicate immediatamente.

insert_at_position

Inserisci testo in una posizione specifica del carattere.

ParametroTipoRichiestoDescrizione
textstringaTesto da inserire (markdown supportato).
positionnumeroPosizione del carattere (indice 0).

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

Cerca testo nel documento.

ParametroTipoRichiestoDescrizione
querystringaTesto da cercare.
caseSensitivebooleanoNoRicerca con distinzione maiuscole/minuscole. Predefinito: false.

Restituisce: Array di corrispondenze con posizioni e numeri di riga.

replace_in_source

Sostituisci testo al livello sorgente markdown, bypassando i confini dei nodi ProseMirror.

ParametroTipoRichiestoDescrizione
searchstringaTesto da trovare nel sorgente markdown.
replacestringaTesto sostitutivo (markdown supportato).
allbooleanoNoSostituisci tutte le occorrenze. Predefinito: false.

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

Quando usarlo

Usa prima apply_diff — è più veloce e preciso. Ricorri a replace_in_source solo quando il testo cercato attraversa confini di formattazione (grassetto, corsivo, collegamenti, ecc.) e apply_diff non riesce a trovarlo.

batch_edit

Applica più operazioni atomicamente.

ParametroTipoRichiestoDescrizione
operationsarrayArray di operazioni (max 100).
baseRevisionstringaRevisione attesa per il rilevamento dei conflitti.
requestIdstringaNoChiave di idempotenza.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

Ogni operazione richiede type (update, insert, delete, format, o move), nodeId, e opzionalmente text/content.

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

apply_diff

Trova e sostituisci testo con controllo della politica di corrispondenza.

ParametroTipoRichiestoDescrizione
originalstringaTesto da trovare.
replacementstringaTesto con cui sostituire.
baseRevisionstringaRevisione attesa per il rilevamento dei conflitti.
matchPolicystringaNofirst, all, nth, o error_if_multiple. Predefinito: first.
nthnumeroNoQuale corrispondenza sostituire (indice 0, per politica nth).
scopeQueryoggettoNoFiltro ambito per restringere la ricerca.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

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

replace_anchored

Sostituisci testo usando l'ancoraggio del contesto per un targeting preciso.

ParametroTipoRichiestoDescrizione
anchoroggetto{ text, beforeContext, afterContext }
replacementstringaTesto sostitutivo.
baseRevisionstringaRevisione attesa per il rilevamento dei conflitti.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

read_paragraph

Leggi un paragrafo del documento per indice o corrispondenza di contenuto.

ParametroTipoRichiestoDescrizione
targetoggetto{ index: 0 } o { containing: "testo" }
includeContextbooleanoNoIncludi i paragrafi circostanti. Predefinito: false.

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

write_paragraph

Modifica un paragrafo nel documento.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento per il rilevamento dei conflitti.
targetoggetto{ index: 0 } o { containing: "testo" }
operationstringareplace, append, prepend, o delete.
contentstringaCondizionaleNuovo contenuto (richiesto tranne per delete).
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

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

smart_insert

Inserisci contenuto in posizioni comuni del documento.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento per il rilevamento dei conflitti.
destinationvariaDove inserire (vedi sotto).
contentstringaContenuto markdown da inserire.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

Opzioni di destinazione:

  • "end_of_document" — Inserisci alla fine
  • "start_of_document" — Inserisci all'inizio
  • { after_paragraph: 2 } — Inserisci dopo il paragrafo all'indice 2
  • { after_paragraph_containing: "conclusione" } — Inserisci dopo il paragrafo contenente testo
  • { after_section: "Introduzione" } — Inserisci dopo l'intestazione di sezione

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

Quando Usarlo

  • Documenti strutturati (con intestazioni): Usa structureget_section, update_section, insert_section
  • Documenti piatti (senza intestazioni): Usa documentread_paragraph, write_paragraph, smart_insert
  • Fine del documento: Usa documentsmart_insert con "end_of_document"

structure

Query sulla struttura del documento e operazioni sulle sezioni. 8 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

get_ast

Ottieni l'albero sintattico astratto del documento.

ParametroTipoRichiestoDescrizione
projectionstring[]NoCampi da includere: id, type, text, attrs, marks, children.
filteroggettoNoFiltra per type, level, contains, hasMarks.
limitnumeroNoRisultati massimi.
offsetnumeroNoNumero da saltare.
afterCursorstringaNoID nodo per la paginazione con cursore.

Restituisce: AST completo con tipi di nodo, posizioni e contenuto.

get_digest

Ottieni un digest compatto della struttura del documento.

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

list_blocks

Elenca tutti i blocchi nel documento con i loro ID nodo.

ParametroTipoRichiestoDescrizione
queryoggettoNoFiltra per type, level, contains, hasMarks.
projectionstring[]NoCampi da includere.
limitnumeroNoRisultati massimi.
afterCursorstringaNoID nodo per la paginazione con cursore.

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

Gli ID nodo usano prefissi: h-0 (intestazione), p-0 (paragrafo), code-0 (blocco di codice), ecc.

resolve_targets

Controllo pre-flight per le mutazioni — trova nodi per query.

ParametroTipoRichiestoDescrizione
queryoggettoCriteri di query: type, level, contains, hasMarks.
maxResultsnumeroNoMassimo candidati.

Restituisce: Posizioni e tipi di destinazione risolti.

get_section

Ottieni il contenuto di una sezione del documento (intestazione e il suo contenuto fino alla prossima intestazione dello stesso livello o superiore).

ParametroTipoRichiestoDescrizione
headingstringa | oggettoTesto dell'intestazione (stringa) o { level, index }.
includeNestedbooleanoNoIncludi le sottosezioni.

Restituisce: Contenuto della sezione con intestazione, corpo e posizioni.

update_section

Aggiorna il contenuto di una sezione.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento.
targetoggetto{ heading, byIndex, o sectionId }
newContentstringaNuovo contenuto della sezione (markdown).
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

insert_section

Inserisci una nuova sezione.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento.
afteroggettoNoDestinazione di sezione dopo cui inserire.
sectionHeadingoggetto{ level, text } — livello dell'intestazione (1-6) e testo.
contentstringaNoContenuto del corpo della sezione.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

move_section

Sposta una sezione in una nuova posizione.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento.
sectionoggettoSezione da spostare: { heading, byIndex, o sectionId }.
afteroggettoNoDestinazione di sezione dopo cui spostare.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

selection

Leggi e manipola la selezione del testo e il cursore. 5 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

get

Ottieni la selezione di testo corrente.

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

set

Imposta l'intervallo di selezione.

ParametroTipoRichiestoDescrizione
fromnumeroPosizione di inizio (inclusa).
tonumeroPosizione di fine (esclusiva).

TIP

Usa lo stesso valore per from e to per posizionare il cursore senza selezionare testo.

replace

Sostituisci il testo selezionato con nuovo testo.

ParametroTipoRichiestoDescrizione
textstringaTesto sostitutivo (markdown supportato).

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

Sistema di Suggerimenti

Per impostazione predefinita, questa azione crea un suggerimento che richiede l'approvazione dell'utente. Il testo originale appare con il barrato, e il nuovo testo appare come anteprima fantasma. Se Approva automaticamente le modifiche è abilitato in Impostazioni → Integrazioni, le modifiche vengono applicate immediatamente.

get_context

Ottieni il testo che circonda il cursore per la comprensione del contesto.

ParametroTipoRichiestoDescrizione
linesBeforenumeroNoRighe prima del cursore. Predefinito: 3.
linesAfternumeroNoRighe dopo il cursore. Predefinito: 3.

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

L'oggetto block contiene:

CampoTipoDescrizione
typestringaTipo di blocco: paragraph, heading, codeBlock, blockquote, ecc.
levelnumeroLivello intestazione 1-6 (solo per le intestazioni)
languagestringaLinguaggio del codice (solo per i blocchi di codice con linguaggio impostato)
inListstringaTipo di elenco se all'interno di un elenco: bullet, ordered, o task
inBlockquotebooleanotrue se all'interno di una citazione
inTablebooleanotrue se all'interno di una tabella
positionnumeroPosizione nel documento dove inizia il blocco

set_cursor

Imposta la posizione del cursore (deseleziona la selezione).

ParametroTipoRichiestoDescrizione
positionnumeroPosizione del carattere (indice 0).

format

Formattazione del testo, tipi di blocco, elenchi e operazioni batch sugli elenchi. 10 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

toggle

Attiva/disattiva un segno di formattazione sulla selezione corrente.

ParametroTipoRichiestoDescrizione
markstringabold, italic, code, strike, underline, o highlight

Crea un collegamento ipertestuale sul testo selezionato.

ParametroTipoRichiestoDescrizione
hrefstringaURL del collegamento.
titlestringaNoTitolo del collegamento (tooltip).

Rimuovi il collegamento ipertestuale dalla selezione. Nessun parametro aggiuntivo.

clear

Rimuovi tutta la formattazione dalla selezione. Nessun parametro aggiuntivo.

set_block_type

Converti il blocco corrente in un tipo specifico.

ParametroTipoRichiestoDescrizione
blockTypestringaparagraph, heading, codeBlock, o blockquote
levelnumeroCondizionaleLivello intestazione 1-6 (richiesto per heading).
languagestringaNoLinguaggio del codice (per codeBlock).

insert_hr

Inserisci una riga orizzontale (---) al cursore. Nessun parametro aggiuntivo.

toggle_list

Attiva/disattiva il tipo di elenco sul blocco corrente.

ParametroTipoRichiestoDescrizione
listTypestringabullet, ordered, o task

indent_list

Aumenta il rientro dell'elemento di elenco corrente. Nessun parametro aggiuntivo.

outdent_list

Diminuisce il rientro dell'elemento di elenco corrente. Nessun parametro aggiuntivo.

list_modify

Modifica in batch la struttura e il contenuto di un elenco.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento.
targetoggetto{ listId }, { selector }, o { listIndex }
operationsarrayArray di operazioni sull'elenco.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

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


table

Operazioni sulle tabelle. 3 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

insert

Inserisci una nuova tabella al cursore.

ParametroTipoRichiestoDescrizione
rowsnumeroNumero di righe (almeno 1).
colsnumeroNumero di colonne (almeno 1).
withHeaderRowbooleanoNoSe includere una riga di intestazione. Predefinito: true.

delete

Elimina la tabella alla posizione del cursore. Nessun parametro aggiuntivo.

modify

Modifica in batch la struttura e il contenuto di una tabella.

ParametroTipoRichiestoDescrizione
baseRevisionstringaRevisione del documento.
targetoggetto{ tableId }, { afterHeading }, o { tableIndex }
operationsarrayArray di operazioni sulla tabella.
modestringaNodryRun per visualizzare in anteprima senza applicare. Applica-vs-suggerisci è controllato dall'impostazione utente.

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


editor

Operazioni sullo stato dell'editor. 3 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

undo

Annulla l'ultima azione di modifica.

redo

Ripristina l'ultima azione annullata.

focus

Metti il focus sull'editor (portalo in primo piano, pronto per l'input).


workspace

Gestisci documenti, finestre e stato del workspace. 12 azioni.

Le azioni che operano su una finestra specifica accettano un parametro opzionale windowId.

list_windows

Elenca tutte le finestre VMark aperte.

Restituisce: Array di { label, title, filePath, isFocused, isAiExposed }

get_focused

Ottieni l'etichetta della finestra in primo piano.

focus_window

Metti in primo piano una finestra specifica.

ParametroTipoRichiestoDescrizione
windowIdstringaEtichetta della finestra da portare in primo piano.

new_document

Crea un nuovo documento vuoto.

ParametroTipoRichiestoDescrizione
titlestringaNoTitolo opzionale del documento.

open_document

Apri un documento dal filesystem.

ParametroTipoRichiestoDescrizione
pathstringaPercorso del file da aprire.

save

Salva il documento corrente.

save_as

Salva il documento in un nuovo percorso.

ParametroTipoRichiestoDescrizione
pathstringaNuovo percorso del file.

get_document_info

Ottieni i metadati del documento.

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

close_window

Chiudi una finestra.

list_recent_files

Elenca i file aperti di recente.

Restituisce: Array di { path, name, timestamp } (fino a 10 file, il più recente per primo).

get_info

Ottieni informazioni sullo stato corrente del workspace.

Restituisce: { isWorkspaceMode, rootPath, workspaceName }

reload_document

Ricarica il documento attivo dal disco.

ParametroTipoRichiestoDescrizione
forcebooleanoNoForza il ricaricamento anche se il documento ha modifiche non salvate. Predefinito: false.

Fallisce se il documento è senza titolo o ha modifiche non salvate senza force: true.


tabs

Gestisci le schede editor all'interno delle finestre. 6 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

list

Elenca tutte le schede in una finestra.

Restituisce: Array di { id, title, filePath, isDirty, isActive }

switch

Passa a una scheda specifica.

ParametroTipoRichiestoDescrizione
tabIdstringaID della scheda a cui passare.

close

Chiudi una scheda.

ParametroTipoRichiestoDescrizione
tabIdstringaNoID della scheda da chiudere. Il valore predefinito è la scheda attiva.

create

Crea una nuova scheda vuota.

Restituisce: { tabId }

get_info

Ottieni informazioni dettagliate sulla scheda.

ParametroTipoRichiestoDescrizione
tabIdstringaNoID della scheda. Il valore predefinito è la scheda attiva.

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

reopen_closed

Riapri la scheda chiusa più di recente.

Restituisce: { tabId, filePath, title } o messaggio se nessuna è disponibile.

VMark tiene traccia delle ultime 10 schede chiuse per finestra.


media

Inserisci matematica, diagrammi, media, wiki link e formattazione CJK. 11 azioni.

Tutte le azioni accettano un parametro opzionale windowId.

math_inline

Inserisci matematica LaTeX inline.

ParametroTipoRichiestoDescrizione
latexstringaEspressione LaTeX (es. E = mc^2).

math_block

Inserisci un'equazione matematica a livello di blocco.

ParametroTipoRichiestoDescrizione
latexstringaEspressione LaTeX.

mermaid

Inserisci un diagramma Mermaid.

ParametroTipoRichiestoDescrizione
codestringaCodice del diagramma Mermaid.

markmap

Inserisci una mappa mentale Markmap. Usa le intestazioni Markdown standard per definire l'albero.

ParametroTipoRichiestoDescrizione
codestringaMarkdown con intestazioni che definiscono l'albero della mappa mentale.

svg

Inserisci un grafico SVG. L'SVG viene renderizzato inline con pan, zoom ed esportazione PNG.

ParametroTipoRichiestoDescrizione
codestringaMarkup SVG (XML valido con radice <svg>).

Inserisci un collegamento in stile wiki.

ParametroTipoRichiestoDescrizione
targetstringaDestinazione del collegamento (nome della pagina).
displayTextstringaNoTesto visualizzato (se diverso dalla destinazione).

Risultato: [[target]] o [[target|displayText]]

video

Inserisci un elemento video HTML5.

ParametroTipoRichiestoDescrizione
srcstringaPercorso del file video o URL.
baseRevisionstringaRevisione del documento.
titlestringaNoAttributo titolo.
posterstringaNoPercorso immagine poster o URL.

audio

Inserisci un elemento audio HTML5.

ParametroTipoRichiestoDescrizione
srcstringaPercorso del file audio o URL.
baseRevisionstringaRevisione del documento.
titlestringaNoAttributo titolo.

video_embed

Inserisci un embed video (iframe). Supporta YouTube (privacy migliorata), Vimeo e Bilibili.

ParametroTipoRichiestoDescrizione
videoIdstringaID video (YouTube: 11 caratteri, Vimeo: numerico, Bilibili: BV ID).
baseRevisionstringaRevisione del documento.
providerstringaNoyoutube (predefinito), vimeo, o bilibili.

cjk_punctuation

Converti la punteggiatura tra mezza larghezza e larghezza intera.

ParametroTipoRichiestoDescrizione
directionstringato-fullwidth o to-halfwidth.

cjk_spacing

Aggiungi o rimuovi la spaziatura tra caratteri CJK e latini.

ParametroTipoRichiestoDescrizione
spacingActionstringaadd o remove.

suggestions

Gestisci i suggerimenti di modifica generati dall'IA in attesa di approvazione dell'utente. 5 azioni.

Quando l'IA usa documentinsert_at_cursor / insert_at_position / replace_in_source, selectionreplace, o documentapply_diff / batch_edit, le modifiche vengono messe in staging come suggerimenti che richiedono l'approvazione dell'utente.

Tutte le azioni accettano un parametro opzionale windowId.

Sicurezza Annulla/Ripristina

I suggerimenti non modificano il documento finché non vengono accettati. Questo preserva la piena funzionalità annulla/ripristina — gli utenti possono annullare dopo aver accettato, e il rifiuto non lascia tracce nella cronologia.

Modalità Approvazione Automatica

Se Approva automaticamente le modifiche è abilitato in Impostazioni → Integrazioni, le modifiche vengono applicate direttamente senza creare suggerimenti. Le azioni seguenti sono necessarie solo quando l'approvazione automatica è disabilitata (l'impostazione predefinita).

list

Elenca tutti i suggerimenti in attesa.

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

Ogni suggerimento include id, type (insert, replace, delete), from, to, newContent, originalContent, e createdAt.

accept

Accetta un suggerimento specifico, applicando le sue modifiche al documento.

ParametroTipoRichiestoDescrizione
suggestionIdstringaID del suggerimento da accettare.

reject

Rifiuta un suggerimento specifico, scartandolo senza modifiche.

ParametroTipoRichiestoDescrizione
suggestionIdstringaID del suggerimento da rifiutare.

accept_all

Accetta tutti i suggerimenti in attesa nell'ordine del documento.

reject_all

Rifiuta tutti i suggerimenti in attesa.


Strumenti di Protocollo

Due strumenti standalone per interrogare le capacità del server e lo stato del documento. Questi non usano il pattern action composito.

get_capabilities

Ottieni le capacità del server MCP e gli strumenti disponibili.

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

get_document_revision

Ottieni la revisione corrente del documento per il blocco ottimistico.

ParametroTipoRichiestoDescrizione
windowIdstringaNoIdentificatore della finestra.

Restituisce: { revision, lastUpdated }

Usa la revisione nelle azioni di mutazione per rilevare le modifiche concorrenti.


Risorse MCP

Oltre agli strumenti, VMark espone queste risorse di sola lettura:

URI RisorsaDescrizione
vmark://document/outlineGerarchia delle intestazioni del documento
vmark://document/metadataMetadati del documento (percorso, conteggio parole, ecc.)
vmark://windows/listElenco delle finestre aperte
vmark://windows/focusedEtichetta della finestra attualmente in primo piano