file-analyzer-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@file-analyzer-mcpanalyze folder ~/Downloads and extract text from the PDFs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Proof
Point it at a folder and it hands back a real tree, not a guess:
$ analyze_folder_structure({ "folder_path": "tests/fixtures" }){
"status": "OK",
"file_count": 6,
"supported_file_count": 6,
"extension_stats": [
{ "extension": ".pdf", "count": 2, "bytes": 723995 },
{ "extension": ".docx", "count": 1, "bytes": 35505 },
{ "extension": ".pptx", "count": 1, "bytes": 33067 },
{ "extension": ".svg", "count": 1, "bytes": 319 },
{ "extension": ".png", "count": 1, "bytes": 74 }
],
"tree_text": "fixtures/\n├── sample.docx (34.7KB)\n├── sample.pdf (431B)\n├── sample.png (74B)\n├── sample.pptx (32.3KB)\n├── sample.svg (319B)\n└── sample_scanned.pdf (706.6KB)"
}Then read one of them — headings, paragraphs, and tables come back structured, not flattened:
$ read_docx({ "file_path": "tests/fixtures/sample.docx" }){
"status": "OK",
"headings": ["테스트 문서"],
"text": "테스트 문서\n본문 첫 문단입니다.",
"tables": [{ "index": 0, "rows": [["A", "B"], ["1", "2"]] }]
}Both calls are reproducible — clone this repo, run uv sync --extra dev, and call them
against tests/fixtures/ yourself.
Related MCP server: Agent Helper
What it is
A personal MCP server that reads whatever's in a folder — PDF, Word, PowerPoint, SVG, PNG — and hands the structure and raw content back to whichever agent called it (Claude Code, Claude Desktop, Codex). It doesn't summarize anything itself.
That's the whole design: the server extracts, the host interprets. No LLM API key lives in this server. A PNG comes back as base64 image content, not a caption — your host's own vision reads it. A scanned PDF only gets OCR'd when you ask for it.
Tools
Tool | Role |
| Recursive tree + per-extension stats for a folder |
| Just the pdf/docx/pptx/svg/png paths, filtered |
| Per-page text. |
| Paragraphs, headings, tables (.doc not supported) |
| Per-slide title, body, speaker notes (.ppt not supported) |
| Size, tag counts, |
| PNG as metadata + image content, for the host to look at directly |
Large documents paginate: page_start/page_end for PDF, slide_start/slide_end
for PPTX. Default caps are 30 pages / 60 slides — past that, the response's
next_actions tells you the next range to ask for.
Install
uv sync --extra devRegister with Claude Code:
claude mcp add -s user file-analyzer -- "<uv.exe path>" --directory "<this folder>" run python src/file_analyzer_mcp/server.pyOn Windows, if uv was installed via pip it won't be on Claude's PATH — use uv.exe's
full path (pip show uv to find it). Claude Desktop and Codex examples are in
config/: claude_code.example.md,
claude_desktop_config.example.json,
codex-config.example.toml.
Security
Sensitive paths are refused deterministically — this doesn't depend on the model deciding not to read them. See paths.py.
Pattern | What it protects |
| Credential and cloud-config directories |
Browser profile roots (e.g. | Saved logins and cookies |
| Secret files, matched by name pattern |
| Specific credential filenames |
Every call is also audited — tool name, arguments, and outcome (success or blocked)
get appended to logs/audit.jsonl. See audit.py.
A 50MB file size cap applies on top of all of this.
Conventions for anyone extending this server are in AGENTS.md.
Errors
Every failure raises ToolFailure with a code, a plain-language reason, and how
to recover — the message is written for the calling model to read and act on,
not just for a human.
Code | Raised when |
| The folder or file path doesn't exist |
| A tool got the wrong kind of path |
| The file isn't pdf/docx/pptx/svg/png |
| e.g. |
| File exceeds the 50MB cap |
| Path matches the security table above |
|
|
| The |
Scanned-PDF OCR
read_pdf(ocr=True) needs Tesseract:
winget install UB-Mannheim.TesseractOCR
uv run python scripts/setup_ocr.py # copies eng/osd, downloads kor.traineddataocr_lang defaults to "kor+eng". Wrong Tesseract path? Set TESSERACT_CMD.
Testing
uv run pytest -q # parser / path / audit unit tests
uv run python scripts/smoke_stdio.py # real stdio round-trip against the serverBoth should pass before a change counts as done — pytest checks modules in isolation, the smoke test is the only thing that exercises the actual MCP protocol and catches schema-level breakage.
Limits
Limit | Why / what to do |
| Legacy binary formats — save as |
Scanned PDFs return empty text by default | Pass |
SVGs aren't rasterized | Parsed as XML for structure, not rendered as an image |
Maintenance
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
- FlicenseNot 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.
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to process files locally — OCR images, extract text from PDFs and DOCX, and describe images using local vision models, all without sending data to external services.
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to inspect and convert PDF, PowerPoint, Excel, and many other file formats into clean, structured Markdown, with chunking support for long documents.Apache 2.0
- 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.9
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Securely search and manage workspace context files for AI agents and teams.
Read PDFs and images as markdown or text, with exact costs and hard spend caps. $0.75/1k pages.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/skaosqkf0-del/MCP_test'
If you have feedback or need assistance with the MCP directory API, please join our Discord server