Skip to main content
Glama
saewookkangboy

file-analyzer-mcp

file-analyzer-mcp

Python Protocol Scope Tests

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

list_directory(subpath=".", recursive=True)

Ordnerbaum, Dateianzahl/-größe nach Erweiterung

read_document(relative_path)

Text/Struktur extrahieren – .pdf .docx .pptx .svg .png

get_file_metadata(relative_path)

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 FILE_ANALYZER_ROOT../, absolute Pfad-Injektion und Symlink-Ausbrüche werden blockiert

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

.pdf .docx .pptx .svg .png.ppt (altes Format), .jpg usw. werden nicht unterstützt

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

tests/ 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.

  • .ppt wird nicht unterstützt – bitte in .pptx konvertieren.

Lizenz

Ein persönliches Projekt ohne separate Lizenzdatei.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    10
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    11
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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