Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Answer questions from documents too large to fit in context, reading only the sections you need.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
DOCSLICER_MCP_ROOT, DOCSLICER_MCP_ALLOW_CLAUDE_DIR, DOCSLICER_MCP_ALLOW_URLSNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Descargar el archivo .mcpb del creador
El enlace lleva al archivo del propio creador; no lo alojamos ni lo reempaquetamos. Abre el archivo y Claude Desktop lo instalará.
Ejecuta esto en tu terminal
claude mcp add docslicer --env DOCSLICER_MCP_ROOT=your-value --env DOCSLICER_MCP_ALLOW_CLAUDE_DIR=your-value --env DOCSLICER_MCP_ALLOW_URLS=your-value -- uvx docslicerCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"docslicer": {
"command": "uvx",
"args": [
"docslicer"
],
"env": {
"DOCSLICER_MCP_ROOT": "your-value",
"DOCSLICER_MCP_ALLOW_CLAUDE_DIR": "your-value",
"DOCSLICER_MCP_ALLOW_URLS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"docslicer": {
"type": "stdio",
"command": "uvx",
"args": [
"docslicer"
],
"env": {
"DOCSLICER_MCP_ROOT": "your-value",
"DOCSLICER_MCP_ALLOW_CLAUDE_DIR": "your-value",
"DOCSLICER_MCP_ALLOW_URLS": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
DOCSLICER_MCP_ALLOW_CLAUDE_DIR envDOCSLICER_MCP_ALLOW_URLS envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub DocSlicer, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: DOCSLICER_MCP_ROOT
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.2.5) llegó al registro hace 2 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas MCPB, Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, 오늘냥이 (Oneul Nyangi)
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Real cat photos, diaries, profiles, age and food reference calculators, and breeds.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Lightning-fast (31 pages/sec), deterministic document parser and chunker for business documents. No LLM calls or heavy ML models.
DocSlicer turns PDFs, Word documents, HTML pages, and PowerPoint files into clean chunks, structured blocks, tables, charts, markdown and a navigable heading hierarchy.
Top score on BizDocBench (0.88 overall vs 0.70 for the next-best tool). 0.80 table accuracy, 0.98 content faithfulness, 0.85 heading recognition and hierarchy preservation, and 0.76 RAG retrieval performance.
Two ways to use it:
import docslicer
def main(): result = docslicer.parse_document("annual_report.pdf")
result.hierarchy.to_outline()
risk_section = result.find_heading("Risk Factors")[0] chunks = result.chunks_under(risk_section)
for table in result.tables_under(risk_section): print(table.markdown)
if name == "main": main()
1., 1.2., 1.2.3) and free-form headings; uses font size, bold weight, and document structure — not inference; handles re-entry after exhibit breaks and repeated navigation headings across pageschunks, blocks, tables, charts, metadata, and hierarchy in one placeMeasured with BizDocBench — an open benchmark for multi-format business document parsing. All scores are 0–1 (higher is better); pages_per_sec_aggregate is throughput across the full corpus.
| Tool | Score | Coverage | Speed | Hierarchy | Faithfulness | Tables | Retrieval | Pages/sec |
|---|---|---|---|---|---|---|---|---|
| docslicer | 0.8796 | 1.0000 | 0.8836 | 0.8466 | 0.9824 | 0.8047 | 0.7601 | 31.27 |
| docling | 0.7036 | 1.0000 | 0.3805 | 0.4905 | 0.8927 | 0.7467 | 0.7111 | 3.46 |
| markitdown | 0.5838 | 1.0000 | 0.8513 | 0.0604 | 0.7972 | 0.2584 | 0.5357 | 27.42 |
| unstructured | 0.5798 | 0.9091 | 0.1073 | 0.4327 | 0.9057 | 0.4812 | 0.6430 | 0.52 |
| opendataloader | 0.5359 | 0.5844 | 1.0000 | 0.3853 | 0.6484 | 0.2655 | 0.3317 | 117.26 |
| pymupdf4llm | 0.4519 | 0.5974 | 0.6492 | 0.1089 | 0.6456 | 0.3551 | 0.3552 | 11.84 |
| mineru | 0.4107 | 0.5974 | 0.1353 | 0.4220 | 0.6176 | 0.3012 | 0.3910 | 0.70 |
| marker | 0.3735 | 0.5974 | 0.1598 | 0.1926 | 0.6121 | 0.3012 | 0.3778 | 0.87 |
pip install docslicer
The core install is dependency-light. Optional features are available as extras:
pip install 'docslicer[html]' # HTML / URL parsing via Playwright
playwright install chromium # one-time browser install (Chromium only)
pip install 'docslicer[ocr]' # scanned PDF support via Tesseract + OpenCV
pip install 'docslicer[mcp]' # MCP server for LLM clients (Claude, Cursor, …) pip install 'docslicer[llm]' # exact token counts via tiktoken (exact_tokens=True) pip install 'docslicer[crypto]' # password-protected Office files (msoffcrypto-tool) pip install 'docslicer[parquet]' # Parquet export support
Extras can be combined: pip install 'docslicer[html,ocr,llm]'.
Requires Python 3.10+
parse_document returns a ParseResult:
result.chunks # list[Chunk] — heading-aware text chunks, ready for embedding
result.blocks # list[Block] — paragraph/heading/table blocks before chunking result.tables # list[Table] — structured tables with cells, spans, and markdown result.charts # list[Chart] — charts as extracted data points (docx/pptx) result.metadata # DocumentMetadata — title, author, language, page count, OCR flag result.hierarchy # HierarchyTree — navigable tree of all headings
Each Chunk carries:
chunk.text # str — chunk text
chunk.path # list — full heading breadcrumb from root to nearest heading chunk.heading # str — nearest heading above this chunk chunk.section # str — body | toc | exhibit | header | footer | coverpage | … chunk.page_number # int — 1-based physical page chunk.page_label # str — "A-6", "iv", "F-3" — as printed on the page chunk.table_ids # list — IDs of tables referenced in this chunk chunk.chart_ids # list — IDs of charts referenced in this chunk (docx/pptx) chunk.link_url # list — URLs found in this chunk chunk.bbox # BBox — bounding box (PDF only)
Every chunk carries its full heading breadcrumb, no matter how deeply nested. For example, a paragraph six levels deep in a financial filing:
chunk.path == [
"# PART I — FINANCIAL INFORMATION", "## Item 1. Financial Statements", "### Notes to Condensed Consolidated Financial Statements (Unaudited)", "#### Note 4 – Financial Instruments", "##### Accounts Receivable", "###### Trade Receivables", ]
This lets downstream code filter or group chunks by any level of the hierarchy without re-parsing the document.
| Format | Extension | Notes |
|---|---|---|
.pdf | Text-based and scanned (OCR extra required for scanned) | |
| Word | .docx | Full style and outline hierarchy |
| HTML | .html, URLs | Static files and JS-rendered pages (html extra required for URLs) |
| PowerPoint | .pptx | Slides, speaker notes, charts |
Not supported: .doc, .ppt (legacy Office formats), .xlsx.
parse_document auto-detects the format from the file extension or magic bytes. Pass a file path, URL, raw bytes, or a file-like object:
result = docslicer.parse_document("contract.docx")
result = docslicer.parse_document("report.pdf") result = docslicer.parse_document("https://www.sec.gov/Archives/edgar/data/.../10-K.htm") result = docslicer.parse_document(file_bytes)
parse_document (and the format-specific functions) accept options that control what gets parsed and how, before it's chunked. Format-specific toggles are accepted everywhere for a uniform API but only take effect for the relevant format.
result = docslicer.parse_document(
"contract.docx", password="admin123", # decrypt password-protected files; .docx and .pptx needs [crypto] extra max_workers=4, # process-pool width for PDF extraction/OCR (default: auto by CPU cores) include_headers_footers=True, # docx: include header/footer content (default False) include_footnotes=True, # docx: include footnotes (default True) include_comments=True, # docx: include review comments (default False) include_speaker_notes=True, # pptx: include slide speaker notes (default True) use_browser=True, # html/URL: render in a real browser (default True) )
result = docslicer.parse_document(
"report.pdf", max_chunk_size=2000, # hard cap, default 3200 optimal_chunk_size=800, # target size, default 1500 min_chunk_size=400, # soft floor, default 700 chunking=False, # skip chunking, return blocks only (faster) merge_small_chunks=True, # merge chunks below min_chunk_size (default True) table_representation="jsonl", # "markdown" (default) | "jsonl" | "melted" exact_tokens=True, # exact tiktoken (cl100k_base) counts; needs [llm] extra, else char/4 estimate extra_fields=["is_bold", "font_size", "font_name"], # surface internal pipeline columns on each chunk/block via .extra )
Because DocSlicer is structure-aware, it initially produces one chunk per heading or paragraph boundary. For documents with many short sections this can yield a lot of small chunks. With merge_small_chunks=True (the default), sibling sections under the same parent heading are merged together until they reach min_chunk_size — but never a
Solo se muestra el principio; lee el resto en el repo