프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

DocSlicer

제작자: DocSlicer버전 0.2.5i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.DocSlicer/docslicer

설치

개요

제작자가 쓴 설명(영어 원문)

Answer questions from documents too large to fit in context, reading only the sections you need.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타
  • 입력해야 할 값: DOCSLICER_MCP_ROOT

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: DOCSLICER_MCP_ROOT, DOCSLICER_MCP_ALLOW_CLAUDE_DIR, DOCSLICER_MCP_ALLOW_URLS

필요한 것

  • PyPIPython의 uv 설치(uvx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

제작자의 .mcpb 파일 다운로드

링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.

터미널에서 이 명령어를 실행하세요

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 docslicer

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.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"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "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"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • DOCSLICER_MCP_ROOT 필수 env
    Restrict file sources and outputs to this directory tree. Several may be given, separated by the platform path separator.
  • DOCSLICER_MCP_ALLOW_CLAUDE_DIR env
    Set to 0 to refuse documents dropped into a Claude chat, which the app copies into its own directory outside DOCSLICER_MCP_ROOT.
  • DOCSLICER_MCP_ALLOW_URLS env
    Set to 0 to reject http(s) sources and only permit local files.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 DocSlicer 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32380개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32380개 중 32%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32380개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

DocSlicer, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: DOCSLICER_MCP_ROOT

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.5)은 2개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 MCPB, Python (uv)도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Dechonet MCP

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211어제 업데이트
설치

Dechonet MCP

제작자: node-man

30 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.

컴퓨터 또는 클라우드오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

DocSlicer

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:

  • As a Python library — classic RAG. The layout-aware chunker gives you clean, non-overlapping chunks, each carrying its full heading breadcrumb, ready to embed. Jump to the API ↓
  • As an MCP server — vectorless RAG. For when you want an answer out of a document right now. Claude, Cursor, or VS Code pulls the outline, picks the section it needs, and reads only that — no embedding, and no 200-page document in the context window. Jump to setup ↓
Quick start
import docslicer

def main(): result = docslicer.parse_document("annual_report.pdf")

Inspect the outline first

result.hierarchy.to_outline()

- PART I — FINANCIAL INFORMATION

- Item 1. Financial Statements

- Notes to Condensed Consolidated Financial Statements

- Note 4 – Financial Instruments

- Derivative Instruments and Hedging

- Foreign Exchange Rate Risk

- Interest Rate Risk

- Accounts Receivable

- Trade Receivables

- Item 2. Management's Discussion and Analysis

- Liquidity and Capital Resources

- PART II — OTHER INFORMATION

...

Pull only the chunks you need

risk_section = result.find_heading("Risk Factors")[0] chunks = result.chunks_under(risk_section)

Tables come back structured, not as flat text

for table in result.tables_under(risk_section): print(table.markdown)

if name == "main": main()


Features

  • No LLM, VLM, or ML models — fully deterministic; no model weights to download, no GPU required, no cold-start delay
  • Lightweight — ~630 KB wheel with no heavy ML dependencies
  • Agentic-friendly — reduces token spend on long documents: have the agent inspect the outline first, then pull only the relevant chunks into context instead of feeding a 500-page document verbatim; well-suited for legal texts, technical SOPs, financial filings, and compliance documents
  • Deep hierarchy extraction — works for both numbered (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 pages
  • Structure-aware chunking — splits at heading and paragraph boundaries, preserving semantic coherence
  • Zero character overlap — chunks are non-overlapping by default; no duplicated tokens in your context window
  • Unified result object — chunks, blocks, tables, charts, metadata, and hierarchy in one place
  • Structured tables — tables come back as cells, not flat text; export as Markdown, JSONL, or melted format
  • Multiple export formats — CSV, Markdown, JSONL, Parquet, JSON, plain text, and DataFrames
  • Reading order preserved — including multi-column PDF layouts
  • Supports `pdf`, `docx`, `pptx`, and `html` — including JS-rendered pages via Playwright
  • Robust URL fetching — always renders pages in a real browser, handling cookie banners and bot protection out of the box; also preserves styling signals like boldness that raw HTML omits, producing sharper heading detection and chunk quality
  • OCR fallback — auto-detects scanned pages and falls back to Tesseract when the extra is installed

Benchmarks

Measured 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.

ToolScoreCoverageSpeedHierarchyFaithfulnessTablesRetrievalPages/sec
docslicer0.87961.00000.88360.84660.98240.80470.760131.27
docling0.70361.00000.38050.49050.89270.74670.71113.46
markitdown0.58381.00000.85130.06040.79720.25840.535727.42
unstructured0.57980.90910.10730.43270.90570.48120.64300.52
opendataloader0.53590.58441.00000.38530.64840.26550.3317117.26
pymupdf4llm0.45190.59740.64920.10890.64560.35510.355211.84
mineru0.41070.59740.13530.42200.61760.30120.39100.70
marker0.37350.59740.15980.19260.61210.30120.37780.87

Install

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

The tesserocr wheel bundles libtesseract but NOT the language models,

so install the Tesseract engine to provide them (docslicer auto-detects the path):

Linux: apt install tesseract-ocr

macOS: brew install tesseract

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+


What you get back (ParseResult)

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.


Supported formats

FormatExtensionNotes
PDF.pdfText-based and scanned (OCR extra required for scanned)
Word.docxFull style and outline hierarchy
HTML.html, URLsStatic files and JS-rendered pages (html extra required for URLs)
PowerPoint.pptxSlides, speaker notes, charts

Not supported: .doc, .ppt (legacy Office formats), .xlsx.


Parsing

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)

Parsing & content options

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) )

Chunking options
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 )

How merge_small_chunks works

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

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기