Skip to main content
Glama
KyuSeon80

file-analysis-mcp

by KyuSeon80

file-analysis-mcp

Un MCP local personal que lee documentos no estructurados (pdf, docx, pptx, txt, svg, png, csv, xlsx) dentro de una carpeta especificada, comprende su estructura y no guarda nada sin aprobación.

Ejemplo de funcionamiento real

Resultados reales de la ejecución sobre la carpeta de muestras sintéticas incluida (sample_docs/).

list_folder_contents()
→ count: 8, entries: data.csv, diagram.svg, notes.docx, photo.png,
  readme.txt, report.pdf, sheet.xlsx, slides.pptx

describe_file(relative_path="slides.pptx")
→ {"slide_count": 3, "slide_titles": ["팀 소개", "구성원", "다음 스프린트"]}

El informe redactado tras leer realmente estos archivos está en data/outputs/onboarding-overview-report.md: superó la validación de estructura VALID y la comprobación de fundamento de nombres de archivo GROUNDED (100 puntos).

También lo validé apuntando a una carpeta real de materiales de clase (PPTX, 9 MB, 16 diapositivas), y en ese proceso descubrí y corregí un error: al intentar leer el archivo de bloqueo (~$*.pptx) que se genera al tener PowerPoint abierto, la excepción de la biblioteca de formatos salía tal cual. Ahora se gestiona como un error que incluye el código de causa y el método de recuperación.

[INVALID_REQUEST] '~$파일.pptx' 파일을 열지 못했습니다: Package not found ...
복구 방법: list_folder_contents로 파일 목록과 지원 형식을 다시 확인하세요.

Related MCP server: local-docs-mcp

Qué es

Al especificar una carpeta, lee los documentos que contiene, primero comprende la estructura (número de páginas/diapositivas/hojas, etc.) y ayuda a redactar un informe resumido. Gestiona los 8 formatos con analizadores dedicados (pypdf/python-docx/python-pptx/openpyxl/Pillow).

Por qué es diferente

  • El MCP no llama al LLM. Las frases de resumen reales las escribe el Host (Claude/Codex). El servidor solo se encarga de la consulta de datos, el análisis de estructura, la validación y el guardado.

  • Antes de guardar se requieren tanto el token de aprobación como la aprobación explícita del usuario. Solo hay una herramienta de escritura, save_approved_report; las otras 10 son de solo lectura.

  • El PNG se entrega como contenido de imagen real, sin OCR. La capacidad de visión del Host lo ve e interpreta directamente.

  • Los errores siempre devuelven código de causa + método de recuperación + valores seleccionables (ver el ejemplo anterior).

Cómo funciona

list_folder_contents → describe_file → read_file_text(또는 read_image_file)
  → build_summary_prompt → validate_report_draft → check_report_grounding
  → preview_save_report → [사용자 승인] → save_approved_report

Etapa

Herramienta

Función

DISCOVER

list_folder_contents

Exploración recursiva de carpetas

STRUCTURE

describe_file

Solo estructura (número de páginas/diapositivas/hojas, etc.) (sin contenido)

READ

read_file_text / read_image_file

Texto del contenido o contenido de imagen

SUMMARIZE

build_summary_prompt

Ensamblaje de plantilla + lista de archivos (sin llamada al LLM)

CHECK

validate_report_draft

Validación de estructura — puerta de guardado

CHECK

check_report_grounding

Comprobación de que los nombres de archivo mencionados existen realmente — asesoramiento

PREVIEW

preview_save_report

diff + emisión de token de aprobación

SAVED

save_approved_report

única herramienta de escritura

OBSERVE

list_saved_reports / read_report_audit_log

Consulta del historial de guardados

Cómo empezar

python -m venv .venv
.venv/Scripts/pip install -e ".[dev]"
.venv/Scripts/python scripts/generate_samples.py
.venv/Scripts/python -m pytest -q
.venv/Scripts/python scripts/smoke_stdio.py

Analizar una carpeta real

El valor predeterminado es sample_docs/. Solo hay que cambiar una variable de entorno antes de ejecutar el servidor.

FILE_ANALYSIS_ROOT="D:\내 문서 폴더" .venv/Scripts/python src/file_analysis_mcp/server.py

Para registrarlo en Codex CLI:

codex mcp add file-analysis --env FILE_ANALYSIS_ROOT="D:\내 문서 폴더" -- \
  "<프로젝트경로>\.venv\Scripts\python.exe" "<프로젝트경로>\src\file_analysis_mcp\server.py"

Limitaciones

  • Las imágenes no pasan por OCR. No se extrae texto; el contenido de la imagen se entrega tal cual al Host.

  • Los archivos de más de 20 MB solo permiten comprobar la estructura; no se puede leer el contenido.

  • check_report_grounding es una heurística basada en expresiones regulares, por lo que puede dar falsos positivos (es solo asesoramiento; no bloquea el guardado).

  • Los archivos cifrados, dañados o en uso por otro programa se notifican como errores con su código de causa: el servidor no se cae.

Patrón base

Sigue los mismos principios de diseño que personal-meeting-mcp-training (separación de capas, stage/next_actions, límites de aprobación). Para el contrato detallado de las herramientas, consulta el docstring de cada módulo en src/file_analysis_mcp/.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables 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.
    9
    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
  • F
    license
    A
    quality
    C
    maintenance
    Enables read-only scanning and text extraction from PDF, DOCX, PPTX, SVG, and PNG files in a local folder, providing the raw text to AI models for summarization or analysis without an external LLM API.
    5
    -