Skip to main content
Glama
asuramama-hue

file-analyzer-mcp

file-analyzer-mcp

Python Protocol Scope Tests

Персональный stdio MCP-сервер, который извлекает только текст/структуру из PDF·DOCX·PPTX·SVG·PNG в локальной папке. Он не делает резюме и не интерпретирует — читать извлечённые результаты и обобщать их — задача хост-LLM (например, Claude Code), который вызывает этот инструмент.

Что делает / чего не делает

Что делает

Чего не делает

Извлекает текст/структуру документов в указанной корневой папке

Резюме и интерпретация (это делает хост-LLM)

Дерево папок · подсчёт файлов/объёма по расширениям

Запись, удаление, перемещение файлов (только чтение)

Извлечение OCR-текста из PNG

Понимание визуального смысла изображений (рисунков, диаграмм)

Обработка тайм-аутов для больших/повреждённых файлов

Изменение анализируемой папки во время работы сервера

Related MCP server: Docalyze

Пример запуска

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

Быстрый старт

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

Регистрация в Claude Code:

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

После регистрации в новом сеансе запросите «резюмируй документы в этой папке» — и Claude напрямую вызовет следующие 3 инструмента.

Инструменты (Tools)

Инструмент

Описание

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

Дерево папок, количество/объём файлов по расширениям

read_document(relative_path)

Извлечение текста/структуры — .pdf .docx .pptx .svg .png

get_file_metadata(relative_path)

Размер, время изменения, количество страниц/слайдов, разрешение изображений и т. д.

Структура проекта

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

Безопасность и ограничения

Пункт

Политика

Изоляция путей

Доступ только к содержимому FILE_ANALYZER_ROOT — блокируются ../, инъекция абсолютных путей и выход через symlink

Размер файла

При превышении 50MB возвращается ошибка без чтения

Тайм-аут

Если извлечение/разбор метаданных превышает 30 секунд, возвращается ошибка с прерыванием

Поддерживаемые расширения

.pdf .docx .pptx .svg .png.ppt (старый формат), .jpg и др. не поддерживаются

Интерпретация изображений

Извлекается только OCR-текст, визуальный смысл рисунков/диаграмм не распознаётся

Анализируемая папка

Фиксируется один раз при запуске сервера, изменение во время работы невозможно

Наблюдаемость — журнал аудита

Каждый вызов инструмента записывается одной строкой только локально в logs/audit.jsonl (без внешней передачи).

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

Чтобы очистить журнал, удалите logs/audit.jsonl.

Разработка

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

tests/ охватывает блокировку выхода за пределы путей и инъекции абсолютных путей, 5 типов экстракторов, тайм-ауты, журнал аудита и интеграцию сервера. При масштабе этого проекта мы решили, что для проверки регрессий достаточно локального запуска pytest без CI-пайплайна, и так и поддерживаем.

Почему такая архитектура

  • Нет функции резюмирования — чтобы работать без отдельного ключа LLM API, выбрана минимальная структура: извлечение делает сервер, резюме — хост.

  • PNG — это OCR, а не передача vision — вместо передачи изображения хосту в base64 извлекается только текст, что снижает объём возвращаемых данных и сложность реализации (визуальный смысл рисунков не виден).

  • Только локальный pytest без git/CI — для масштаба локального инструмента одного человека CI-инфраструктура избыточна.

Известные ограничения

  • Тайм-аут основан на потоках, поэтому фоновый поток превышенного вызова может продолжать выполняться до конца и после возврата результата.

  • .ppt не поддерживается — конвертируйте в .pptx перед использованием.

Лицензия

Это личный проект без отдельного файла лицензии.

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