file-analyzer-mcp
file-analyzer-mcp
Ein persönlicher stdio-MCP-Server, der aus PDF-, DOCX-, PPTX-, SVG- und PNG-Dateien in einem lokalen Ordner nur Text/Struktur extrahiert. Es wird nicht zusammengefasst oder interpretiert – das Lesen und Zusammenfassen der extrahierten Ergebnisse ist Aufgabe des Host-LLMs (z. B. Claude Code), das dieses Tool aufruft.
Was es tut / was es nicht tut
Tut es | Tut es nicht |
Extrahiert Text/Struktur aus Dokumenten im angegebenen Stammordner | Zusammenfassen/Interpretieren (übernimmt das Host-LLM) |
Ordnerbaum · Dateianzahl/-größe nach Erweiterung | Dateien schreiben, löschen, verschieben (nur lesend) |
OCR-Text aus PNG extrahieren | Visuelle Bedeutung von Bildern (Grafiken/Diagramme) erfassen |
Timeout-Behandlung für große/beschädigte Dateien | Analysierten Ordner während des Serverbetriebs ändern |
Related MCP server: Visual Document Forensics MCP Server
Ausführungsbeispiel
> read_document("quarterly-report.pdf")
{
"type": "pdf",
"num_pages": 12,
"text": "Q3 Revenue Summary\n..."
}
> read_document("../../etc/passwd")
{ "error": "'../../etc/passwd' resolves outside the allowed root folder" }Schnellstart
git clone https://github.com/saewookkangboy/fileanalyzer_mcp_testmonial.git
cd fileanalyzer_mcp_testmonial
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
brew install tesseract # PNG OCR용 (한국어는 brew install tesseract-lang 추가)Bei Claude Code registrieren:
claude mcp add file-analyzer --env FILE_ANALYZER_ROOT=/분석할/폴더 -- \
"$(pwd)/.venv/bin/python" "$(pwd)/server.py"
claude mcp list # ✔ Connected 확인Nach der Registrierung in einer neuen Sitzung „Fasse die Dokumente in diesem Ordner zusammen" sagen – dann ruft Claude die folgenden 3 Tools direkt auf.
Tools
Tool | Beschreibung |
| Ordnerbaum, Dateianzahl/-größe nach Erweiterung |
| Text/Struktur extrahieren – |
| Größe, Änderungszeitpunkt, Seiten-/Folienanzahl, Bildauflösung usw. |
Projektstruktur
server.py # FastMCP 앱 진입점, 툴 등록, 루트 폴더 검증
file_analyzer/
security.py # 경로 격리(resolve_safe_path), 크기 제한
timeout.py # 추출 작업 하드 타임아웃
audit.py # 로컬 감사 로그(logs/audit.jsonl)
tree.py, metadata.py # list_directory / get_file_metadata 로직
extractors/ # pdf · docx · pptx · svg · image(OCR) 추출기
tests/ # pytest 회귀 스위트
AGENTS.md # 호출 에이전트(Claude Code)를 위한 운영 지침Sicherheit & Einschränkungen
Punkt | Richtlinie |
Pfadisolierung | Nur Zugriff unterhalb von |
Dateigröße | Bei über 50 MB wird nicht gelesen, sondern ein Fehler zurückgegeben |
Timeout | Wenn Extraktion/Metadaten-Parsing 30 Sekunden überschreitet, wird mit Fehler abgebrochen |
Unterstützte Erweiterungen |
|
Bildinterpretation | Nur OCR-Text wird extrahiert, die visuelle Bedeutung von Grafiken/Diagrammen kann nicht erfasst werden |
Analysierter Ordner | Wird beim Serverstart einmalig festgelegt, während des Betriebs nicht änderbar |
Beobachtbarkeit – Audit-Log
Jeder Tool-Aufruf wird lokal zeilenweise in logs/audit.jsonl protokolliert (keine externe Übertragung).
{"timestamp": "2026-08-26T06:03:35Z", "tool": "read_document", "params": {"relative_path": "report.pdf"}, "status": "ok", "duration_ms": 251.3}Zum Leeren des Logs einfach logs/audit.jsonl löschen.
Entwicklung
pip install -e ".[dev]"
pytest -qtests/ behandelt die Blockierung von Pfadausbrüchen und absoluter Pfad-Injektion, die 5 Extraktoren, Timeout, Audit-Log und Server-Integration. Bei diesem Projektumfang haben wir entschieden, dass eine lokale pytest-Ausführung ohne CI-Pipeline für die Regressionsprüfung ausreicht, und halten es so.
Warum so entworfen?
Keine Zusammenfassungsfunktion – Damit es ohne separaten LLM-API-Schlüssel funktioniert, wurde eine minimale Struktur gewählt, bei der der Server die Extraktion und der Host die Zusammenfassung übernimmt.
PNG per OCR, nicht per Vision-Übergabe – Statt Bilder als base64 an den Host zu senden, wird nur Text extrahiert, um Rückgabemenge und Implementierungskomplexität zu reduzieren (die visuelle Bedeutung von Bildern wird nicht erfasst).
Nur lokales pytest ohne git/CI – Bei der Größe eines persönlichen lokalen Tools haben wir CI-Infrastruktur als übertrieben beurteilt.
Bekannte Einschränkungen
Der Timeout ist thread-basiert, daher kann der Hintergrund-Thread eines überschrittenen Aufrufs auch nach der Rückgabe bis zum Ende weiterlaufen.
.pptwird nicht unterstützt – bitte in.pptxkonvertieren.
Lizenz
Ein persönliches Projekt ohne separate Lizenzdatei.
This server cannot be installed
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 gradedqualityDmaintenanceEnables AI-powered extraction and analysis of PDF documents with 40+ specialized tools for text, tables, images, layout analysis, security assessment, and document intelligence. Supports both text-based and scanned PDFs with OCR capabilities.10MIT
- FlicenseNot gradedqualityBmaintenanceEnables deterministic visual and structural analysis of PDF and DOCX documents, extracting measurable evidence such as blur, OCR confidence, and image anomalies for auditable forensic workflows.1
- AlicenseAqualityCmaintenanceEnables reading and extracting text from local documents (PDF, Word, Excel, PowerPoint, HWP, Markdown, CSV, etc.) without network access, and provides approval-gated summary saving and file organization.11MIT
- 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
Read PDFs and images as markdown or text, with exact costs and hard spend caps. $0.75/1k pages.
PDF accessibility checks (veraPDF PDF/UA-1), auto-fix and Markdown conversion. EU-hosted.
Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.
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/saewookkangboy/fileanalyzer_mcp_testmonial'
If you have feedback or need assistance with the MCP directory API, please join our Discord server