VisualDoc
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| doc_render_report | Render a DOCX to PDF (LibreOffice), extract per-page geometry, and check layout rules. Returns structured JSON — no images. Use this to see whether a document is visually correct: margin/table overflow, low-resolution images, likely orphan headings, plus the measured size and effective margins of every page. Args: document: Absolute or relative path to a .docx file. pages: Optional 1-based page numbers to report (e.g. [4,5,6]). Omit for all. rules: Optional path to a YAML rule pack. Omit to use rules/general.yaml. Returns:
A dict with |
| doc_selftest | Health check: confirm the render + geometry stack is wired up. Call this first from a new client to prove the server is alive and that LibreOffice / PyMuPDF are reachable, before pointing it at a real document. |
| doc_get_structure | List the addressable elements of a DOCX with ids AND stable anchors. Two ways to address an element as a doc_apply_patch
assign_anchors=True writes a normalized copy with anchors filled in and returns
it as Pass the returned |
| doc_apply_patch | Apply safe layout ops to a COPY of the DOCX (original untouched), validate by reopening the result, and save a revision. Each op = {"op": , "target": "el-N" | anchor, ...params}. Call doc_get_structure first for ids/anchors + version_hash; pass that as expected_version_hash. The output always carries anchors so a chain of patches stays addressable. Returns {ok, output, version_hash, applied, results[], validation}. Each op reports applied/error independently. |
| doc_autofix | Closed loop as one tool: report → fix → re-render → diff, until nothing is left to fix or max_iter. The original file is never modified. mode (default 'safe'):
Regression guard: if an iteration introduces a NEW warning, that revision is discarded and the loop stops with the previous good version kept. Returns document_final (path to the fixed revision), baseline vs final counts,
per-iteration |
| doc_diff_versionsB | Render two DOCX versions and diff their layout reports: what got resolved,
what regressed ( |
| doc_get_page_imageA | OPTIONAL visual channel: render ONE page of the DOCX to a PNG for the agent to eyeball a specific concern. Use sparingly — images are costly in model context (see docs/01-compatibility.md); the deterministic doc_render_report (no images) is the primary signal. dpi is clamped to 36..300. On failure returns a structured {ok:false, error} instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Alvnvnc/visualdoc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server