Skip to main content
Glama
asuramama-hue

file-analyzer-mcp

file-analyzer-mcp

Python Protocol Scope Tests

Servidor MCP stdio personal que extrae solo texto/estructura de PDF·DOCX·PPTX·SVG·PNG en una carpeta local. No resume ni interpreta: leer y resumir los resultados extraídos es tarea del LLM anfitrión (Claude Code, etc.) que invoca esta herramienta.

Qué hace / Qué no hace

Qué hace

Qué no hace

Extrae texto/estructura de documentos bajo la carpeta raíz especificada

Resumir/interpretar (lo hace el LLM anfitrión)

Agrega árbol de carpetas y recuento/tamaño de archivos por extensión

Escribir, eliminar o mover archivos (solo lectura)

Extrae texto OCR de PNG

Comprender el significado visual de imágenes (dibujos, gráficos)

Manejo de tiempo de espera para archivos grandes o dañados

Cambiar la carpeta de análisis mientras el servidor está en ejecución

Related MCP server: Docalyze

Ejemplo de ejecución

> 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" }

Inicio rápido

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 추가)

Registro en Claude Code:

claude mcp add file-analyzer --env FILE_ANALYZER_ROOT=/분석할/폴더 -- \
  "$(pwd)/.venv/bin/python" "$(pwd)/server.py"
claude mcp list   # ✔ Connected 확인

Después del registro, si en una nueva sesión pides «resume los documentos de esta carpeta», Claude invocará directamente las 3 herramientas siguientes.

Herramientas

Herramienta

Descripción

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

Árbol de carpetas, recuento/tamaño de archivos por extensión

read_document(relative_path)

Extracción de texto/estructura — .pdf .docx .pptx .svg .png

get_file_metadata(relative_path)

Tamaño, hora de modificación, número de páginas/diapositivas, resolución de imagen, etc.

Estructura del proyecto

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)를 위한 운영 지침

Seguridad y restricciones

Elemento

Política

Aislamiento de rutas

Solo se puede acceder a lo que está bajo FILE_ANALYZER_ROOT — se bloquean ../, inyección de rutas absolutas y escapes por symlink

Tamaño de archivo

Si supera los 50 MB, devuelve error sin leerlo

Tiempo de espera

Si la extracción/el análisis de metadatos supera los 30 s, se interrumpe y devuelve error

Extensiones admitidas

.pdf .docx .pptx .svg .png — no se admiten .ppt (formato antiguo), .jpg, etc.

Interpretación de imágenes

Solo extrae texto OCR; no comprende el significado visual de dibujos/gráficos

Carpeta de análisis

Se fija una sola vez al iniciar el servidor; no se puede cambiar durante la ejecución

Observabilidad — registro de auditoría

Cada invocación de herramienta se registra localmente, una línea por llamada, en logs/audit.jsonl (sin transmisión externa).

{"timestamp": "2026-08-26T06:03:35Z", "tool": "read_document", "params": {"relative_path": "report.pdf"}, "status": "ok", "duration_ms": 251.3}

Para vaciar el registro, basta con eliminar logs/audit.jsonl.

Desarrollo

pip install -e ".[dev]"
pytest -q

tests/ cubre el bloqueo de escapes de ruta e inyección de rutas absolutas, los 5 extractores, el tiempo de espera, el registro de auditoría y la integración del servidor. Para el tamaño de este proyecto, consideramos que ejecutar pytest localmente sin un pipeline de CI es suficiente para la verificación de regresiones, y así lo mantenemos.

Por qué se diseñó así

  • Sin función de resumen — para que funcione sin una clave de API de LLM adicional, se eligió una estructura mínima en la que el servidor extrae y el anfitrión resume.

  • PNG: OCR, no visión — en lugar de pasar la imagen en base64 al anfitrión, solo se extrae texto, reduciendo el volumen de respuesta y la complejidad de implementación (no ve el significado visual de los dibujos).

  • Solo pytest local, sin git/CI — para una herramienta local de una sola persona, consideramos que la infraestructura de CI es excesiva.

Limitaciones conocidas

  • El tiempo de espera se basa en hilos, por lo que el hilo en segundo plano de la llamada que excedió el límite puede seguir ejecutándose hasta el final incluso después de devolver el error.

  • No se admite .ppt — conviértelo a .pptx antes de usarlo.

Licencia

Es un proyecto personal sin un archivo de licencia independiente.

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

Maintenance

0Releases (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 Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP 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
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that lets AI assistants read and visually analyze local documents — PDFs, Excel spreadsheets, CSV files, Word documents, PowerPoint presentations, and images.
    4
    66
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Local 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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

View all related MCP servers

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/asuramama-hue/fileanalyzer_mcp_testmonial'

If you have feedback or need assistance with the MCP directory API, please join our Discord server