DocSlicer — Claude Code MCP server: answers from huge documents
Splits PDF, Word, HTML and PowerPoint files into sections so the agent reads only the part it needs instead of the whole file.
claude mcp add --env DOCSLICER_MCP_ROOT=<DOCSLICER_MCP_ROOT> --env DOCSLICER_MCP_ALLOW_CLAUDE_DIR=<DOCSLICER_MCP_ALLOW_CLAUDE_DIR> --env DOCSLICER_MCP_ALLOW_URLS=<DOCSLICER_MCP_ALLOW_URLS> --transport stdio docslicer -- uvx docslicerWhat DocSlicer does
DocSlicer is a deterministic document parser. It extracts the heading hierarchy, cuts text into non-overlapping chunks and returns tables as cells rather than flat text. There are no model weights to download and no GPU involved, so nothing waits on a cold start. Throughput is listed at 31 pages per second.
As an MCP server it does vectorless RAG: the agent asks for the outline, picks a section and reads just that. No embeddings, and a 500-page filing never lands in the context window whole. Supported inputs are pdf, docx, pptx and html; JS-rendered pages go through Playwright, scanned pages through Tesseract when that extra is present.
Set DOCSLICER_MCP_ROOT before starting, otherwise the server has no idea which directories it may touch. DOCSLICER_MCP_ALLOW_CLAUDE_DIR and DOCSLICER_MCP_ALLOW_URLS widen access to the Claude directory and to network addresses. HTML and OCR each need their own extra: pip install 'docslicer[html]' with playwright install chromium, or pip install 'docslicer[ocr]' plus the Tesseract engine carrying the language models.
What it helps with
- pull one section out of a 500-page report without flooding context
- get a PDF table back as cells instead of a text blob
- turn a JS-rendered page into clean chunks
- read text off a scanned PDF
- keep the heading hierarchy intact while chunking
Example prompts for the agent
- Show me the outline of
annual_report.pdfand find the risk section - Extract the tables under “Financial Instruments” and print them as markdown
- Parse this HTML page and give me the chunks under the “Install” heading
How to install DocSlicer
Platform CLI
claude mcp add --env DOCSLICER_MCP_ROOT=<DOCSLICER_MCP_ROOT> --env DOCSLICER_MCP_ALLOW_CLAUDE_DIR=<DOCSLICER_MCP_ALLOW_CLAUDE_DIR> --env DOCSLICER_MCP_ALLOW_URLS=<DOCSLICER_MCP_ALLOW_URLS> --transport stdio docslicer -- uvx docslicerReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docslicer <command>
Platform CLI
codex mcp add docslicer --env DOCSLICER_MCP_ROOT=<DOCSLICER_MCP_ROOT> --env DOCSLICER_MCP_ALLOW_CLAUDE_DIR=<DOCSLICER_MCP_ALLOW_CLAUDE_DIR> --env DOCSLICER_MCP_ALLOW_URLS=<DOCSLICER_MCP_ALLOW_URLS> -- uvx docslicerReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docslicer <command>
Config file
{
"mcpServers": {
"docslicer": {
"command": "uvx",
"args": [
"docslicer"
],
"env": {
"DOCSLICER_MCP_ROOT": "<DOCSLICER_MCP_ROOT>",
"DOCSLICER_MCP_ALLOW_CLAUDE_DIR": "<DOCSLICER_MCP_ALLOW_CLAUDE_DIR>",
"DOCSLICER_MCP_ALLOW_URLS": "<DOCSLICER_MCP_ALLOW_URLS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docslicer <command>
Config file
{
"servers": {
"docslicer": {
"type": "stdio",
"command": "uvx",
"args": [
"docslicer"
],
"env": {
"DOCSLICER_MCP_ROOT": "<DOCSLICER_MCP_ROOT>",
"DOCSLICER_MCP_ALLOW_CLAUDE_DIR": "<DOCSLICER_MCP_ALLOW_CLAUDE_DIR>",
"DOCSLICER_MCP_ALLOW_URLS": "<DOCSLICER_MCP_ALLOW_URLS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docslicer <command>
Platform CLI
gemini mcp add -e DOCSLICER_MCP_ROOT=<DOCSLICER_MCP_ROOT> -e DOCSLICER_MCP_ALLOW_CLAUDE_DIR=<DOCSLICER_MCP_ALLOW_CLAUDE_DIR> -e DOCSLICER_MCP_ALLOW_URLS=<DOCSLICER_MCP_ALLOW_URLS> docslicer uvx docslicerReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docslicer <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about DocSlicer
How do I install DocSlicer in Claude Code?
Run claude mcp add docslicer -e DOCSLICER_MCP_ROOT=<DOCSLICER_MCP_ROOT> -- uvx docslicer. For Claude directory and URL access, use the variant with --env DOCSLICER_MCP_ALLOW_CLAUDE_DIR=<DOCSLICER_MCP_ALLOW_CLAUDE_DIR> --env DOCSLICER_MCP_ALLOW_URLS=<DOCSLICER_MCP_ALLOW_URLS> --transport stdio.
What does DocSlicer do?
It parses business documents and hands the agent an outline, chunks, blocks, tables and charts. The agent reads the chosen section only, so a long document never enters context in full.
Does it need models or a GPU?
No. Parsing is fully deterministic, with no LLM or ML models. HTML pages and scans require the Playwright or Tesseract extras.