local-docs-mcp
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., "@local-docs-mcpRead the meeting notes from yesterday"
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.
local-docs-mcp
A personal MCP server that reads documents on your local PC to help with summarization and organization. It extracts text from PDF, Word, Excel, PowerPoint, Hangul (HWP), Markdown, CSV, and more, and handles saving summaries and organizing files with an approval process.
It does not use the network. No API key is required.
This server does not summarize. It extracts the original text accurately, and Claude writes the summary. (The
machine_keypointsthe server provides are frequency-based mechanical extraction, not a summary.)It cannot read outside the allowed folders. Moving or saving files always requires approval.
Supported formats
Type | Extensions | Method |
Documents |
| Direct ZIP+XML parsing (headings, paragraphs, tables) |
Hangul |
|
|
|
| |
Presentations |
| Slide number order + speaker notes |
Spreadsheets |
| Per-sheet, shared string resolution |
Data |
| Includes column names and row counts |
Web & Mail |
| Tag stripping; mail includes headers + body |
Text & Code |
| UTF-8/CP949/EUC-KR auto-detection |
.doc .xls .ppt (legacy binary formats) are not read; the server tells you to "save them in an x-suffixed format."
Related MCP server: Knowledge Assistant MCP
Installation
Python 3.11 or later is required.
python -m venv .venv && .venv/Scripts/pip install -e ".[formats,dev]"On macOS and Linux, use .venv/bin/pip. [formats] installs pypdf for PDF and
olefile for .hwp (binary) together; without them, the remaining formats still work.
Registering with Claude Code
<PROJECT_DIR> is the absolute path where you cloned this repository, and <HOME> is the user home folder.
claude mcp add local-docs --scope user --env DOCS_MCP_ROOTS="<HOME>/Desktop;<HOME>/Documents" --env DOCS_MCP_OUTPUT="<HOME>/Desktop/docs-mcp-out" -- <PROJECT_DIR>/.venv/Scripts/python.exe -m docs_mcp.serverTo use it only within this repository, copy .mcp.json.example to .mcp.json
and replace <PROJECT_DIR> and <HOME> with the actual paths. .mcp.json paths differ per machine, so it is not tracked in the repository.
Environment variables
Variable | Meaning | Default |
| Folders allowed for reading (separated by | Desktop, Documents, Downloads |
| Folder for saving summaries and organization logs |
|
| Maximum file size |
|
| If | Unset (copy only) |
11 tools
Read-only (R) and write (W) tools are registered separately so the host can show different approval UIs.
Tool | What it does | |
R |
| Check readable folders, supported formats, and limits |
R |
| Scan a folder for a document list (type, size, modified date) |
R |
| Structure, headings, keywords, representative sentences. For judging before reading the full text |
R |
| Extract body text. Provides section labels and a continuation cursor |
R |
| Search across multiple document bodies + evidence snippets |
R |
| Extract evenly from multiple documents within a character budget |
R |
| Preview content and path to save + issue approval token |
W |
| Save the approved summary to the output folder |
R |
| Create only an organization plan (no file changes) + approval token |
W |
| Execute the approved plan (copy by default) |
W |
| Revert based only on the journal record |
Recommended flow
list_roots
→ scan_documents 어떤 문서가 있는지
→ outline_document 긴 문서는 뼈대부터
→ read_document 원문을 근거로 확보 (필요하면 이어 읽기)
→ (Claude가 요약 작성)
→ preview_save_summary 저장 내용 확인
→ [사용자 승인]
→ save_summaryOrganization is done separately.
preview_organize 계획만 생성 — 파일은 하나도 건드리지 않음
→ [사용자가 계획 확인·승인]
→ apply_organize (기본 copy)
→ 문제가 있으면 undo_last_organizeThere are four organization criteria.
Criterion | Result folder |
|
|
| Modified month like |
|
|
| Names specified in rules. Example: |
Safety mechanisms
Path blocking — Every input path is
resolve()d and then checked to be inside the allowed roots..., symbolic links, and drive traversal are all blocked here.Write blocking — Saving is only possible inside the output folder. Nothing is written to the read roots.
Excluded folders —
.git,node_modules,.venv,AppData, etc. are neither scanned nor read.Approval token — A hash of the preview content. If even one character of the content changes, the token breaks and saving/organizing is rejected. However, the token only guarantees technical integrity and does not replace user approval.
Copy by default — Moving originals is only possible with
DOCS_MCP_ALLOW_MOVE=1.No deletion — Undo also does not delete files; it moves them to a
_trashfolder.
Verification
.venv/Scripts/python.exe -m pytest -q.venv/Scripts/python.exe scripts/smoke.py.venv/Scripts/python.exe scripts/simulate.pypytest— format-specific extraction, boundary checks, approval flow (unit tests)smoke.py— verifiesinitialize → tools/list → tools/callover real stdiosimulate.py— creates a virtual document set and reproduces the entire flow over a real MCP connection. It creates 12 virtual documents (meeting minutes, contracts, quotes, presentation materials, PDFs, CP949 memos, etc.), then runs through scanning → summary saving → organization → undo, and verifies that things that should be blocked (reading outside roots, token forgery, moving originals) are actually blocked. It runs in a temporary folder and cleans up after itself. Pass a folder as an argument to keep the results.
Limitations
Scanned image PDFs have no text. No OCR is performed; only a warning is left.
Excel date cells may appear as internal serial numbers.
.hwp(binary) is best-effort extraction. Table and footnote order may differ from the original.Text inside images is not read in any format.
License
MIT — 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 gradedqualityAmaintenanceConverts PDFs, Office files, spreadsheets, emails, audio, and more to Markdown locally, enabling AI assistants to read and process them without cloud upload.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with local documents (PDF, Markdown, TXT) through tools for discovery, reading, extraction, summarization, comparison, keyword extraction, search, and analysis, ensuring privacy and offline capability.
- FlicenseNot gradedqualityCmaintenanceEnables local, read-only extraction of text and structure from PDF, DOCX, PPTX, SVG, and PNG files, including OCR for images, directory tree and metadata reporting, with strict path isolation and audit logging.
- FlicenseAqualityCmaintenanceEnables local analysis of unstructured documents (PDF, DOCX, PPTX, SVG, PNG) by extracting text and structure with citation anchors, and verifies summaries against source material before a human approves saving a report.9
Related MCP Connectors
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Read PDFs and images as markdown or text, with exact costs and hard spend caps. $0.75/1k pages.
Vector RAG store for Word/Excel/PDF/PowerPoint. Break-even pricing, $5 per 5,700 pages.
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/samsung10-gif/file_check'
If you have feedback or need assistance with the MCP directory API, please join our Discord server