asset-aware-mcp
The asset-aware-mcp server is a medical-focused RAG (Retrieval-Augmented Generation) platform that enables AI agents to ingest, analyze, and manage PDF and DOCX documents. Key capabilities include:
Document Ingestion & Management
Ingest PDFs and DOCX files, parse structure, audit readiness, and compare documents cross-document
Asset Retrieval
Extract tables (Markdown), figures (Base64 for Vision AI), sections, and full text from documents with precise locator metadata
Section Navigation
Browse hierarchical section trees, fuzzy search headings, and extract blocks at any depth
Citation & Evidence Management
Find citation-ready evidence spans, verify references, and export Foam evidence bundles with CRAAP scaffolding and provenance metadata
DOCX Editing
Convert DOCX to editable Markdown (DFM), edit with track-changes support, preview table edit risks, and write data back to DOCX
A2T (Anything to Table) β Table Building
Design schemas, create/manage/render tables (Excel/Markdown/HTML), manipulate rows and cells, attach cell-level citations with confidence scores, track history, and manage persistent drafts for long-running workflows
Knowledge Graph
Query with hybrid search, cross-document reasoning, and reference verification
ETL & Job Management
Manage async ingestion/parsing jobs, configure ETL profiles, and convert between document formats
Allows conversion of legacy .doc, .odt, and .ods files to .docx format using LibreOffice, enabling ingestion and editing within the MCP server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@asset-aware-mcpretrieve table 2 from the cancer trial document"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
asset-aware-mcp
Citation-ready document infrastructure for AI agents: turn PDFs, DOCX files, tables, figures, and evidence spans into reusable assets and Foam/LightRAG wikis.
π ηΉι«δΈζ Β· Docs Site Β· GitHub Wiki
v1.0.1 reliability refresh
Large PDF text/table/figure results use a private, atomic, size-bounded MessagePack handoff instead of a multiprocessing pipe or executable pickle. This keeps multi-megabyte raster assets moving without pipe backpressure and fails closed on partial, oversized, malformed, or crashed worker output. Worker timeout environment values must be finite;
NaN/infinities fall back to safe defaults. Finite values<=0retain the historical explicit direct mode for compatibility and should not be used by managed production launchers.Codex-managed MCP configuration is validated as real TOML, preserves custom and unrelated tables, uses 180/900-second startup/tool timeouts, and never writes credential values. Its isolated working directory plus
ASSET_AWARE_DISABLE_DOTENV=trueprevents a managed server from silently reloading an unrelated workspace.env.Global Codex/Cline/Copilot config writes are workspace-trust gated and always use the exact published extension version plus isolated global storage. A lookalike repository cannot persist its local Python or
.envvalues into a global agent launcher.MCP SDK 2 operational logs stay on stderr, empty/blank ingest requests are rejected before job persistence, and a true-stdio regression now verifies a large figure, a table, citation-ready evidence, complete bundle hashes, Foam notes, deterministic re-export, and an unchanged source PDF.
GitHub Pages now provides a bilingual responsive Evidence Rail workflow, exact 30-tool explorer, install/development guidance, generated docs reader, and direct GitHub/Release/Issue links instead of stale raster architecture screenshots.
Related MCP server: Qdrant Neo4j Crawl4AI MCP Server
π― Why Asset-Aware MCP?
A server-local image path is not a portable multimodal payload. Whether an agent can dereference that path depends on its client, sandbox, and filesystem permissions.
Method | Can AI analyze image content? | Description |
β οΈ Provide only a PNG path | Client-dependent | The client may be remote or sandboxed and cannot safely assume the server path exists locally |
β Asset-Aware MCP | Yes, for compatible multimodal clients | Fetches bounded image bytes through MCP so the client can pass real image content to its vision model |
Real-world Effect
# After retrieving the image via MCP, the AI can analyze it directly:
User: What is this figure about?
AI: This is the architecture diagram for Scaled Dot-Product Attention:
1. Inputs: Q (Query), K (Key), V (Value)
2. MatMul of Q and K
3. Scale (1/βdβ)
4. Optional Mask (for decoder)
5. SoftMax normalization
6. Final MatMul with V to get the outputThis is the value of Asset-Aware MCP - enabling AI Agents to truly "see" and understand charts and tables in your PDF literature.
β¨ Features
π Asset-Aware ETL - PDF β Markdown with a pluggable multi-engine parser (
ETL_ENGINE):PyMuPDF (default) - Fast extraction (~50MB), no models required
PyMuPDF4LLM (
[pdf-plus]) - Drop-in layout-aware upgrade, no GPUDocling (
[docling]) - MIT-licensed layout+table+formula+chart engine; bridges through an isolated.venv-doclinginterpreter when the main environment can't install it directly (see docs/docling-setup.md)MinerU - Adapter retained, but the packaged extra is on security hold while MinerU pins a vulnerable
transformers<5chainMarker - Adapter retained for evaluation, but production selection fails closed while upstream
marker-pdfconflicts with the patched Pillow floor. The legacyuse_markerparameter now means βprefer the configured structured extractorβ; it does not bypass this hold.
π§© Unified Segmentation Export - Normalized
segmentation.jsonmerges manifest, blocks, reading order, and persisted markdown line spans for downstream tools and extensions.π©Ί Safe PDF Preflight Router -
document(op="preflight")classifies each page as native, sparse, image, scanned, or hybrid; returns 1-based top-left locators, source SHA-256, OCR reasons, and a bounded extraction-engine recommendation from a process-isolated inspector.π¦ Reusable Agent Asset Bundles -
document(op="export_assets")writes deterministicmanifest.json,assets.jsonl, copied media, and a portable Foamindex.md/notes/**subtree while preserving stable IDs, hashes, locators, and citation refs.π‘οΈ PDF Safety/Structure/Coverage/Accessibility Audits - OpenDataloader-inspired artifact-only reports flag suspicious hidden/off-page/prompt-injection text, native structure signals, segmentation coverage gaps, and accessibility/readability readiness via the existing
documentfacade.document(op="prepare_ai")anddocument(op="auto")expose agent-ready status and next actions without adding public tools.π§ Structural Pointer Retrieval - Proxy-Pointer-inspired
document(op="pointer_index"),document(op="structural_retrieve"), anddocument(op="compare")preserve section breadcrumbs, line/char/byte locators, source hashes, asset IDs, and evidence-span provenance without adding MCP tools.πΌοΈ Layout Overlay Debugging - Render page overlays from
original.pdfto inspect bbox, segment type, and reading order visually.π€ On-Demand OCR Preprocessing - Optional
ocrmypdfpreprocessing path for scanned PDFs before ETL.π§ Section Navigation - Dynamic hierarchy section tree through the
sectionfacade: browse, search, detail, content reading, and block extraction for any depth of headings.π Async Job Pipeline - Supports asynchronous ingest, configured structured parse, OCR, and conversion jobs with progress tracking.
π Mixed-Format Batch Ingestion -
document(op="auto", file_paths=[...])auto-detects a batch mixing PDF with DOCX/DOC/ODT/ODS, ingests each file through its correct existing engine in one background job, isolates per-file failures so one bad file cannot abort the rest, and reports per-file progress β no new public tool required.πΊοΈ Document Manifest - Provides a structured "map" of the document for precise data access by Agents.
π§ LightRAG Integration - Knowledge Graph + Vector Index, supporting cross-document comparison and reasoning.
π§Ύ Verified Citation Bundles -
citation_bundle, Foam evidence packs, citation health checks, table/figure evidence notes, and claim promotion export citation-ready spans with locator, quote/hash, context, CRAAP scaffold, and verification status.π Docx Editing (DFM) - Edit .docx files in Markdown via Docx-Flavored Markdown format. Supports legacy
.doc,.odt, and.odsingest via LibreOffice auto-conversion. The balanced surface keeps 6 DOCX/DFM public entrypoints for ingest, read, save, validation, conversion, table edit planning, and Docx β A2T bridges.π‘οΈ DFM Integrity Checker - Automatic validation and auto-repair at every pipeline stage (post-ingest, pre-save, post-save). Catches orphan markers, column mismatches, and format inconsistencies.
π A2T (Anything to Table) - 7 operation-based tools for building professional tables from any source (PDF assets, Knowledge Graph, URLs, user input). Features: stable row IDs, row search/filter/paging, citation coverage, artifact-only large-table render, skipped-large-table UX, Citations (AssetRef), Audit Trail, Schema Evolution, Templates, Drafting, and Token-efficient resumption.
π₯οΈ VS Code Management Extension - Graphical interface for monitoring server status, ingested documents, document artifacts, citation spans, and A2T tables/drafts with one-click Excel export.
π MCP SDK 2 Server - Uses the official Python SDK
MCPServerAPI, runtime-injected context, and v2 clients. MCP SDK v1 is intentionally unsupported.π¬ Research-ready, domain-neutral assets - Works with scholarly, technical, policy, and operational documents; bounded image bytes let compatible multimodal clients analyze figures instead of relying on server-local paths.
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI Agent (Copilot) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β MCP Protocol (Tools & Resources)
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β MCP Server (Modular Presentation) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β tools/: 30 public tools (balanced surface) β β
β β 17 facade tools + 13 high-frequency shortcuts β β
β β compact=17 β legacy/direct compatibility=63 β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β resources/: 13 resources in 2 modules β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β ETL Pipeline (DDD) β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β PyMuPDF β β Asset β β LightRAG β β
β β Adapter ββ β Parser ββ β Index β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β Local Storage β
β ./data/ β
β βββ {doc_id}/ # PDF document artifacts β
β βββ docx_{id}/ # Docx IR + DFM + Assets β
β βββ tables/ # A2T Tables (JSON/MD/XLSX) β
β β βββ drafts/ # Table Drafts (Persistence) β
β βββ lightrag_db/ # Knowledge Graph β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββπ Project Structure (DDD)
asset-aware-mcp/
βββ src/
β βββ domain/ # π΅ Domain: Entities, Value Objects, Interfaces
β βββ application/ # π’ Application: Doc Service, Table Service (A2T), Asset Service
β βββ infrastructure/ # π Infrastructure: PyMuPDF, LightRAG, Excel Renderer
β βββ presentation/ # π΄ Presentation: MCP SDK 2 MCPServer
βββ data/ # Document and Asset Storage
βββ docs/
β βββ spec.md # Technical Specification
βββ tests/ # Unit and Integration Tests
βββ vscode-extension/ # VS Code Management Extension
βββ pyproject.toml # uv Project Configπ Architecture and workflows
The maintained, versioned references are the documentation site, architecture guide, PDF workflow, MCP tool catalog, and release checklist. They are generated and checked with the implementation so tool counts, engine holds, and release behavior do not drift inside obsolete screenshots.
π Quick Start
# Install dependencies (using uv) β default install stays on the fast PyMuPDF backend
uv sync
# Optional high-fidelity PDF->asset engines:
# uv sync --extra pdf-plus # PyMuPDF4LLM: drop-in layout-aware upgrade
# uv sync --extra docling # Docling: MIT layout+table+formula+chart engine
# MinerU and Marker packaged extras are temporarily empty security holds.
# Then set ETL_ENGINE=pymupdf4llm|docling.
# Run MCP Server
uv run python -m src.presentation.server
# Or use the VS Code extension for graphical managementRuntime note:
The VS Code extension prefers a managed Python 3.11 runtime when launching the MCP server via version-pinned uv tool run, with Python 3.10 fallback for older machines. This avoids native package builds on end-user machines, especially macOS systems without Xcode Command Line Tools, while keeping the project itself compatible with newer Python versions.
Installation scope note:
The VS Code extension installs once per user. In a trusted workspace, the native VS Code MCP provider may use workspace-scoped
DATA_DIR, cache, settings, and.env; local source is accepted only in Extension Development/Test mode (or a future explicit opt-in).Global Codex and Cline entries always launch
asset-aware-mcp==<extension-version>from extension global storage. They do not inherit workspace-local source, workspace-scoped settings, or repository.envvalues. Restricted Mode skips external config writes and assistant-asset sync entirely.
Engine selection note:
ETL_ENGINE picks the extraction backend (default pymupdf). The active packaged structured engines (pymupdf4llm, docling) lazy-load and gracefully fall back to PyMuPDF when their extra is not installed. Marker remains on hold because marker-pdf requires Pillow<11; MinerU is also on hold because MinerU 3.4.4 pins transformers<5 while current security fixes require transformers>=5.5. Both adapters remain in-tree, but this package will not install a known-vulnerable dependency chain. Use document(op="preflight", pdf_path="...") to choose between fast native extraction, OCR, and Docling before ingest.
Agent asset / Foam handoff:
document(op="preflight", pdf_path="/papers/source.pdf")
document(op="auto", file_paths=["/papers/source.pdf"])
document(op="export_assets", doc_id="doc_...", output_dir="agent-assets")The exported directory is deterministic and portable: manifest.json is the
bundle contract, assets.jsonl is the agent-readable inventory, and
index.md plus notes/** can be mounted or copied into a Foam workspace.
π MCP Tools
The default runtime surface is balanced: 30 public tools that keep the full document workflow available without overwhelming agents. It is made of 17 operation-based facade tools plus 13 high-frequency shortcuts. Set ASSET_AWARE_MCP_TOOL_SURFACE=compact for the 17 facade-only surface, or ASSET_AWARE_MCP_TOOL_SURFACE=legacy / ASSET_AWARE_MCP_ENABLE_LEGACY_TOOLS=true for the full 63-tool compatibility inventory.
Area | Balanced public tools |
Documents, assets, evidence, conversion |
|
DOCX / DFM |
|
Sections, jobs, KG, ETL profiles |
|
A2T tables |
|
See MCP Tools and Tool Consolidation for operation details, shortcut rationale, and legacy direct-tool mapping.
Agent handoff note:
Use document(op="auto", file_paths=[...]) for new PDFs and document(op="auto", doc_id="...") or document(op="prepare_ai", doc_id="...") for existing documents. document(op="prepare_ai", output_format="json") returns the v2 readiness contract with status, blockers, warnings, capabilities, artifacts, missing_audits, invalid_audits, audit_artifacts, and next_actions. document(op="audit", doc_id="...") reuses current audit artifacts only when they are present and valid; pass refresh=true to rebuild safety, native-structure, coverage, and accessibility reports. Use document(op="pointer_index"), document(op="structural_retrieve", query="..."), and document(op="compare", doc_b_id="...", criteria="...") when an agent needs section-level structural retrieval or comparison without new public tools. Readiness and job-status artifact discovery are read-only, so status checks do not create document directories.
PDF audit caveat: The audit reports are inspired by OpenDataloader-style artifact workflows, but they are not a sanitizer, a PDF/UA certification, or an OpenDataloader compatibility layer. They preserve source artifacts and report conservative diagnostics for review.
π§ Tech Stack
Category | Technology |
Language | Python 3.10+ |
Package Manager | uv (all pip/setup-python removed) |
ETL | PyMuPDF (default) + secure optional PyMuPDF4LLM / Docling engines; MinerU and Marker adapters are on dependency security hold |
RAG | LightRAG (lightrag-hku) |
MCP | Official Python MCP SDK 2 ( |
Storage | Local filesystem (JSON/Markdown/PNG) |
π Documentation
Installation guidance:
Default install:
uv sync(slim ~227 MB; no LightRAG/KG dependencies).LightRAG / Knowledge Graph backend (optional, since v0.6.34):
uv tool install --upgrade --python 3.11 'asset-aware-mcp[lightrag]'for uvx/published users, oruv sync --extra lightragfor local source checkouts. Required before settingENABLE_LIGHTRAG=true.VS Code extension: run the command
Asset-Aware MCP: Install LightRAG Backendfrom the Command Palette; it auto-detects source vs published mode and emits the matching install command.OpenRouter optional preset (since v0.6.35): set
LLM_BACKEND=openrouter,OPENROUTER_API_KEY=..., and optionallyOPENROUTER_MODEL=liquid/lfm-2.5-1.2b-instruct:freefor fast low-cost summaries and draft RAG answers. LightRAG retrieval still uses the configured embedding backend.High-fidelity PDF engines:
uv sync --extra pdf-plus(PyMuPDF4LLM) oruv sync --extra docling(Docling), then setETL_ENGINEaccordingly. Docling ships a cross-platform isolated installer; see docs/docling-setup.md.MinerU and Marker backends: their adapters remain available for upstream testing, but the packaged extras are empty security holds until their dependency caps permit patched
transformersand Pillow releases.VS Code extension:
assetAwareMcp.enableMarkerBackendis retained as a setting, but the launcher will not installmarker-pdfwhile the security hold is active.Technical Spec - Detailed technical specification
Architecture - System architecture
Constitution - Project principles
Competitive Analysis - MCP + DOCX ecosystem landscape
π License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to download, index, and semantically search PDF research papers using 8 MCP tools.2GPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables autonomous orchestration of vector search, knowledge graph queries, and web crawling through a single MCP interface, providing agentic RAG capabilities for AI assistants.8MIT
- FlicenseNot gradedqualityDmaintenanceA multimodal academic research assistant for LLM Agent papers, enabling paper search, PDF/figure understanding, knowledge graph memory, learning paths, and reproducible experiments via MCP.
- FlicenseAqualityDmaintenanceAgentic PDF search via MCP, enabling intelligent document retrieval through LLM reasoning instead of vector similarity.23
Related MCP Connectors
Shared, peer-validated knowledge archive for AI agents β search, contribute, and validate via MCP
Real-time Amazon, WIPO & PACER data for AI agents β 19 tools via the MCP protocol.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
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/u9401066/asset-aware-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server