file-analyzer-mcp
file-analyzer-mcp
Ein persönlicher stdio-MCP-Server, der nur Text/Struktur aus PDF·DOCX·PPTX·SVG·PNG in lokalen Ordnern extrahiert. Er fasst nicht zusammen und interpretiert nicht – das Lesen und Zusammenfassen der extrahierten Ergebnisse ist Aufgabe des Host-LLM (z. B. Claude Code), das dieses Tool aufruft.
Was es tut / was es nicht tut
Was es tut | Was es nicht tut |
Text/Struktur aus Dokumenten unter dem angegebenen Stammordner extrahieren | Zusammenfassen/Interpretieren (übernimmt das Host-LLM) |
Ordnerbaum · Dateianzahl/-größe nach Erweiterung aggregieren | 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: Docalyze
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/asuramama-hue/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 추가)Registrierung in Claude Code:
claude mcp add file-analyzer --env FILE_ANALYZER_ROOT=/분석할/폴더 -- \
"$(pwd)/.venv/bin/python" "$(pwd)/server.py"
claude mcp list # ✔ Connected 확인Wenn Sie nach der Registrierung in einer neuen Sitzung „Fasse die Dokumente in diesem Ordner zusammen" anfordern, ruft Claude die folgenden 3 Tools direkt auf.
Tools
Tool | Beschreibung |
| Ordnerbaum, Dateianzahl/-größe nach Erweiterung |
| Text/Struktur extrahieren — |
| Größe, Änderungszeit, 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 unterhalb von |
Dateigröße | Bei über 50 MB wird nicht gelesen und 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, visuelle Bedeutung von Bildern/Diagrammen wird nicht erfasst |
Analysierter Ordner | Wird beim Serverstart einmal 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}Um das Log zu leeren, löschen Sie einfach logs/audit.jsonl.
Entwicklung
pip install -e ".[dev]"
pytest -qtests/ deckt Pfadausbruch- und absolute-Pfadinjektion-Blockierung, die 5 Extraktoren, Timeout, Audit-Log und Serverintegration ab. Bei dieser Projektgröße haben wir entschieden, dass lokale pytest-Ausführung ohne CI-Pipeline für die Regressionsprüfung ausreicht, und haben es so beibehalten.
Warum so gestaltet?
Keine Zusammenfassungsfunktion — Damit es ohne separaten LLM-API-Schlüssel funktioniert, haben wir eine minimale Struktur gewählt, bei der der Server extrahiert und der Host zusammenfasst.
PNG per OCR, nicht Vision — Statt Bilder als base64 an den Host zu senden, wird nur Text extrahiert, um Antwortmenge 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
Das Timeout ist threadbasiert, daher kann der Hintergrund-Thread des überschrittenen Aufrufs auch nach der Rückgabe bis zum Ende weiterlaufen.
.pptwird nicht unterstützt — bitte in.pptxkonvertieren und dann verwenden.
Lizenz
Ein persönliches Projekt ohne separates 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 Connectors
Document-to-Markdown MCP server — convert PDF, Office and HTML into LLM-ready Markdown.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server that reads PDFs and exposes them as structured Markdown, metadata, outlines, images, and tables to LLM consumers via tools like pdf_read_markdown and pdf_info.Apache 2.0
- AlicenseBqualityDmaintenanceAn MCP server that lets AI assistants read and visually analyze local documents — PDFs, Excel spreadsheets, CSV files, Word documents, PowerPoint presentations, and images.466MIT
- AlicenseNot gradedqualityDmaintenanceLocal MCP server that indexes folders of documents into a hybrid vector + keyword search index for Claude Desktop, with support for PDFs, Office files, and images via OCR.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for indexing, semantic search, and generation of multi-format documents. Exposes 13 tools over JSON-RPC 2.0 so an LLM can search your local PDF, Excel, and Word files, and create or edit Excel and Word documents.AGPL 3.0
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/asuramama-hue/fileanalyzer_mcp_testmonial'
If you have feedback or need assistance with the MCP directory API, please join our Discord server