No description
Find a file
pookNast 65b6b14382 feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins
TRACK-A of Qwen-MM GEM Adoption milestone contract (M-A1 through M-A7).
All 7 milestones verified — 10 pytest pass, no DashScope, wired to ~/.claude/mcp.json.

Source: ~/audits/qwenlm-qwen-mm-plugins-20260810/ (Apache-2.0)
Stripped: apis/ (DashScope-bound), _blender_render.py (needs bpy).
Offline-by-default — renderers run without API key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-08-10 13:00:43 -04:00
.improve feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins 2026-08-10 13:00:43 -04:00
src/qwen_doc_viz feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins 2026-08-10 13:00:43 -04:00
tests feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins 2026-08-10 13:00:43 -04:00
.gitignore feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins 2026-08-10 13:00:43 -04:00
pyproject.toml feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins 2026-08-10 13:00:43 -04:00
README.md feat(doc-viz-mcp): port 14 renderers + shared lib + mcp_framework from QwenLM/Qwen-MM-Plugins 2026-08-10 13:00:43 -04:00

qwen-doc-viz

Offline document visualizer MCP server. Single endpoint renders 30+ file extensions to model-ready image + extracted-text content blocks.

Ported from QwenLM/Qwen-MM-Plugins (Apache-2.0). No DashScope dependency — all renderers run fully offline.

Supported formats

Renderer Formats Output
pdf .pdf Rasterized page image + extracted text layer (dual-modality)
office .docx .pptx .vsdx LibreOffice → PDF → rasterized
data .csv .xlsx Markdown table + matplotlib table image
code 30+ languages Syntax-highlighted image
svg .svg resvg rasterization on white bg
drawio .drawio Diagram → image
geo .geojson .kml .shp GIS map render
notebook .ipynb Cell-by-cell render
latex .tex pdflatex → PDF → raster
web .html .htm .mhtml Playwright headless Chromium screenshot
model3d .obj .stl .glb .gltf .fbx .ply .step .stp pyrender / Blender
subtitle .srt .vtt Text blocks

Install

cd ~/project-incubator/doc-viz-mcp
python3 -m venv .venv
. .venv/bin/activate
pip install -e .

Run

qwen-doc-viz           # MCP server (stdio)
qwen-doc-viz --version
qwen-doc-viz --check-system    # show system deps status

Wire to Claude Code

Add to ~/.claude/mcp.json:

"doc-viz-mcp": {
  "command": "/home/pook/project-incubator/doc-viz-mcp/.venv/bin/qwen-doc-viz",
  "args": [],
  "env": {"PYTHONUNBUFFERED": "1"}
}

Provenance

  • Source: QwenLM/Qwen-MM-Plugins (Apache-2.0), 2026-08-10 snapshot
  • Audit: ~/audits/qwenlm-qwen-mm-plugins-20260810/GEMS.md (GEM-1, GEM-4, GEM-5)
  • Stripped: apis/ directory (DashScope-bound) — all renderers run offline
  • License: Apache-2.0 (inherits from source)