Skip to main content

MCP Server

The IntentText MCP server gives LLMs direct access to parsing, rendering, querying, trust operations, and template merging through the Model Context Protocol.

Installation

npm install -g @dotit/mcp

Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
"mcpServers": {
"intenttext": {
"command": "intenttext-mcp"
}
}
}

Or run it without a global install via npx:

{
"mcpServers": {
"intenttext": {
"command": "npx",
"args": ["-y", "@dotit/mcp"]
}
}
}

VS Code (Copilot)

Add to your .vscode/mcp.json:

{
"servers": {
"intenttext": {
"command": "intenttext-mcp"
}
}
}

HTTP mode

For remote or shared setups, the package ships a second binary that serves the same tools over Streamable HTTP:

PORT=3847 intenttext-mcp-http

PORT defaults to 3000.

Available tools

All tools operate on IntentText source strings — pass the .it text in, get JSON or rendered output back.

Parse & serialize

ToolParametersDescription
parse_intent_textsource, safeParse .it source into a structured JSON document. safe (default true) collects warnings instead of throwing
document_to_sourcedocumentConvert a document JSON object back to .it source text

Render

ToolParametersDescription
render_htmlsource, theme?Render to styled HTML. Optional built-in theme: corporate, minimal, warm, technical, print, legal, editorial, dark
render_printsource, theme?Print-optimised HTML with @media print CSS — applies font: and page: blocks; suitable for PDF generation. Same optional theme

Templates

ToolParametersDescription
merge_templatetemplate, data, render?, missing?Merge {{variable}} placeholders with a data object. render: none (default, returns .it source), html, or print. missing: keep leaves unresolved placeholders visible (default), blank removes them so optional fields never print

Validate & query

ToolParametersDescription
validate_documentsourceSemantic validation beyond syntax: broken step references, missing required properties, unresolved variables, workflow logic errors
query_documentsource, type?, content?, section?, limit?Filter blocks by type (comma-separated for multiple: step,gate), content substring, or section
diff_documentsbefore, afterSemantic diff between two versions — which blocks were added, removed, or modified

Workflow

ToolParametersDescription
extract_workflowsourceExtract the execution graph: steps in topological order, dependencies, parallel batches, gate positions

Trust

ToolParametersDescription
seal_documentsource, signer, role?Seal with a cryptographic signature — appends sign: and freeze: blocks, returns sealed source + hash
verify_documentsourceVerify integrity of a sealed document — reports tampering
get_document_historysource, block_id?, section?Revision history of a tracked document: what changed, who, when

Tool examples

Parse and render

User: "Render this invoice as HTML with the corporate theme"

Claude calls: render_html({
source: "title: Invoice #2847\n...",
theme: "corporate"
})

Merge a template

User: "Generate the invoice for Acme from the standard template"

Claude calls: merge_template({
template: "title: Invoice {{number}}\n...",
data: { "number": "INV-2847", "client": "Acme Corp" },
render: "print",
missing: "blank"
})

Query a document

User: "What tasks are in this project plan?"

Claude calls: query_document({
source: "title: Project Plan\n...",
type: "task",
limit: 20
})

Seal a contract

User: "Seal this NDA as Maria Santos, COO"

Claude calls: seal_document({
source: "title: NDA\n...",
signer: "Maria Santos",
role: "COO"
})

The result includes the sealed source — store it exactly as returned (the hash covers the exact bytes).

Validate a generated workflow

User: "Check this deployment workflow before we run it"

Claude calls: validate_document({
source: "step: Build\nstep: Deploy | after: Build\n..."
})

Security

The MCP server is stateless: every tool takes document source as input and returns results — it does not read or write your filesystem. Trust operations (seal, verify, history) use the same SHA-256 integrity system as the rest of the toolchain.

Source

Repository: intenttext-mcp · npm: @dotit/mcp (1.0.0 — formerly @intenttext/mcp, now deprecated with a pointer)