file-analysis-mcp
file-analysis-mcp
Liest unstrukturierte Dokumente (PDF, PPTX, DOCX, SVG, PNG und andere Bilder) in einem angegebenen Ordner und übergibt den Originaltext/die Originalbilder unverändert an den aufrufenden Host (Claude Code, Codex CLI usw.), damit dieser Inhaltszusammenfassungen und Ordnerstrukturanalysen durchführen kann. Es handelt sich um einen persönlichen MCP-Server.
Dieser Server führt selbst keine Zusammenfassungen durch – er extrahiert lediglich Text und gibt Bilder unverändert zurück. Die eigentliche Zusammenfassung übernimmt das LLM (Claude Code/Codex), das dieses Tool aufruft. Es ist kein separater API-Schlüssel erforderlich.
Bereitgestellte Tools
list_folder_structure(path, max_depth=5)Durchsucht den angegebenen Ordner rekursiv und gibt die Baumstruktur, die Dateianzahl nach Erweiterung und die Gesamtgröße als JSON zurück.read_document(path, max_chars=20000, max_pages=30)Extrahiert je nach Erweiterung den Inhalt und gibt ihn als Text/Bild zurück..pdf→ Text pro Seite.pptx→ Text pro Folie + Notizen.docx→ Text aus Absätzen/Überschriften/Tabellen.svg→ Original-XML + gerastertes PNG-Bild (falls möglich).png/.jpg/.jpeg/.bmp/.gif/.webp→ Bild unverändert (nach Größenanpassung)
Related MCP server: File Context MCP Server
Installation
uv verwaltet sowohl den Python-Interpreter als auch alle Abhängigkeiten.
cd file-analysis-mcp
uv syncLokaler Test (MCP Inspector)
npx @modelcontextprotocol/inspector uv run --directory . python server.pyIn der im Browser geöffneten Inspector-UI können Sie list_folder_structure und read_document direkt aufrufen und testen. Im Ordner test_samples/ sind PDF/PPTX/DOCX/SVG/PNG-Beispieldateien vorbereitet, sodass Sie sofort testen können.
Bei Claude Code registrieren
claude mcp add file-analysis -s user -- uv run --directory "C:\Users\20210\Desktop\testmcp\file-analysis-mcp" python server.pyDer Server wurde mit dem obigen Befehl bereits im Benutzerbereich (user scope) registriert und ist in allen Projekten verfügbar. Neue MCP-Server werden beim Start einer Sitzung geladen. Daher müssen Sie Claude Code neu starten (oder eine neue Sitzung beginnen), damit das Tool erscheint. Registrierungsstatus prüfen: claude mcp list
Bei Codex CLI registrieren
codex mcp add file-analysis -- uv run --directory "C:\Users\20210\Desktop\testmcp\file-analysis-mcp" python server.pyDer Server ist bereits global registriert. Prüfen: codex mcp list
Verwendungsbeispiel (in einer neuen Sitzung nach der Registrierung)
Wenn Sie z. B. Folgendes anfragen:
„Analysiere die Struktur des Ordners C:\Users\me\Documents\Berichte und fasse die darin enthaltenen Dokumente zusammen"
erkennt Claude Code/Codex die Struktur über list_folder_structure und ruft anschließend read_document für die benötigten Dateien auf, um den Inhalt zu lesen und selbst zusammenzufassen.
Hinweise / Einschränkungen
Da Pfade bei jedem Aufruf als Argument übergeben werden, gibt es keine Zugriffsbeschränkung (Allowlist) für Ordner. Die Nutzung ist für den persönlichen Gebrauch in einer vertrauenswürdigen lokalen Umgebung gedacht.
Die Textlänge wird über
max_charsund bei PDFs übermax_pagesbegrenzt, um eine Überlastung des Kontexts zu verhindern. Wenn längere Inhalte benötigt werden, können Sie die Werte beim Aufruf erhöhen.Die SVG-Rasterung (
svglib) unterstützt möglicherweise nicht alle komplexen SVG-Funktionen (Filter, einige Verläufe usw.) vollständig. Selbst bei einem Fehler wird der Original-XML-Text immer zurückgegeben.
Available Tools
2 toolslist_folder_structureA
지정한 폴더를 재귀적으로 탐색해 트리 구조, 확장자별 파일 개수, 총 용량을 JSON 문자열로 반환한다.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| max_depth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the burden of explaining behavior. It discloses the recursive traversal, the aggregation of file counts and sizes, and the JSON-string return format. It does not cover edge cases like missing paths or permission errors, but the non-mutating intent is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence with no filler. It front-loads the operation, specifies the resource, lists the outputs, and states the return format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema likely covers return values, and the description covers the core recursive behavior. However, max_depth semantics and path expectations are undocumented, and there is no usage guidance relative to read_document, so the description is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It loosely maps to the path parameter via 'specified folder' and mentions recursion, but it does not explain max_depth, its limit semantics, or the path format. The agent is left to infer important parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action (recursively explores the specified folder) and names concrete outputs: tree structure, per-extension file counts, and total capacity, all returned as a JSON string. This clearly distinguishes it from the sibling read_document, which presumably reads a single document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given, and the sibling read_document is not referenced. The intended use is implied by the description, but the agent gets no direct help choosing between this tool and the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_documentA
지정한 문서 파일(PDF, PPTX, DOCX, SVG, 이미지)의 내용을 읽어 텍스트/이미지로 반환한다. 반환된 텍스트/이미지를 바탕으로 호출자가 직접 요약을 수행해야 한다.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| max_chars | No | ||
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the disclosure burden. It usefully discloses that the tool returns text/image and that the caller must perform summarization. However, it does not mention truncation behavior related to max_chars/max_pages, error handling, or how images are represented in the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The primary purpose is front-loaded, and the second sentence adds a meaningful caveat about caller responsibility. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core read-and-return semantics and supported formats are covered, and the 'caller must summarize' note is helpful. However, with no annotations, no output schema, and undocumented max_chars/max_pages, an agent still lacks guidance on partial reads, truncation, or complete return-value structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It only implies that 'path' points to a supported document file; max_chars and max_pages are not explained at all, leaving the agent to guess their semantics beyond names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('reads') and clearly identifies the resource: document files (PDF, PPTX, DOCX, SVG, images). It also states the output type (text/image), and the sibling tool list_folder_structure is clearly different, so an agent can distinguish them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for retrieving document content rather than summarizing, and the sibling is for listing folder structureikuha. However, it never explicitly states when to use this tool vs. list_folder_structure, nor does it mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
list_folder_structure - First observed
read_document
TDQS
Scored across 2 tools
The two tools have clearly distinct responsibilities: one summarizes folder structure and statistics, while the other extracts content from document files. There is no overlap or ambiguity between them.
Both tool names follow a consistent verb_noun pattern: list_folder_structure and read_document. The naming is predictable and easy to understand.
With only two tools, the server feels minimal and borderline thin for a file-analysis purpose. Each tool is useful, but the overall surface is small and may leave users wanting more capability.
The pair covers folder structure analysis and document content extraction, but common file types like plain text and CSV are not supported, and there are no file search or metadata retrieval operations. These are notable gaps for a file-analysis server.
Maintenance
Related MCP Connectors
Safe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Securely search and manage workspace context files for AI agents and teams.
Read and search folders on your own computer with explicit consent. Files are never uploaded.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Large Language Models to safely browse and interact with local file systems through secure directory listing, file reading, and content search capabilities. Built with comprehensive security controls and high-performance handling of large directories and files.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, search, and analyze local file systems with tools for reading file contents, listing directories, searching by patterns, and analyzing folder structures for context-aware queries.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to generate annotated file trees, retrieve file statistics, list git-changed files, and read file contents from local directories or GitHub repositories.MIT
- FlicenseAqualityCmaintenanceEnables read-only analysis of local unstructured documents by scanning a folder, extracting text and structural metadata, and passing content with truncation and error-awareness to an LLM for summarization.91-