Docalyze
Allows GitHub Copilot to read and visually analyze local documents (PDFs, Excel, Word, PowerPoint, images, etc.) through MCP tools.
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., "@Docalyzedescribe the trend shown in the chart on slide 2 of presentation.pptx"
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.
Docalyze MCP Server
An MCP (Model Context Protocol) server that lets AI assistants read and visually analyze local documents — PDFs, Excel spreadsheets, CSV files, Word documents, PowerPoint presentations, and images.
No API keys required. The host AI (GitHub Copilot, Claude, etc.) does all the reasoning directly.
Supported Formats
Format | Extensions | Read | Visual |
| ✅ | ✅ | |
Excel |
| ✅ | ✅ |
CSV / TSV |
| ✅ | — |
JSON |
| ✅ | — |
Word |
| ✅ | ✅ |
PowerPoint |
| ✅ | ✅ |
Plain text |
| ✅ | — |
Images |
| — | ✅ |
Related MCP server: MCP PDF Reader
Tools
Tool | Description |
| List files under a directory, filtered by glob pattern |
| Get metadata (size, modified date, sheets) for a file |
| Extract text content from a document with pagination |
| Return page images inline so the AI can analyze charts, tables, and diagrams |
Installation
From VS Code (recommended)
Search for docalyze in the MCP server gallery (Extensions sidebar → MCP tab) and click Install.
From PyPI
pip install docalyze-mcp-serverFrom npm
npx docalyze-mcp-serverThis requires uv or pipx installed — the npm wrapper calls uvx to run the Python package automatically.
Manual setup
Add to your VS Code mcp.json (or settings.json):
{
"servers": {
"docalyze": {
"type": "stdio",
"command": "python",
"args": ["-m", "docalyze_mcp_server"],
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}Or, if you installed via pip and want to use the entry point:
{
"servers": {
"docalyze": {
"type": "stdio",
"command": "docalyze-mcp-server"
}
}
}Optional Dependencies
The base install handles PDF, Excel, CSV, JSON, and plain text. For additional formats:
# Word documents
pip install docalyze-mcp-server[docx]
# PowerPoint
pip install docalyze-mcp-server[pptx]
# OCR (requires Tesseract installed on your system)
pip install docalyze-mcp-server[ocr]
# Everything
pip install docalyze-mcp-server[all]Configuration
The server reads documents from a configurable root directory. Set the DOCUMENTS_ROOT environment variable to change it:
{
"servers": {
"docalyze": {
"type": "stdio",
"command": "docalyze-mcp-server",
"env": {
"DOCUMENTS_ROOT": "/path/to/your/documents"
}
}
}
}If not set, it defaults to the directory containing the server script.
License
MIT
Available Tools
4 toolsdocument_infoB
Return metadata about a specific document.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must explicitly disclose behavioral traits. It only says 'Return metadata' without mentioning permissions, rate limits, or what is included in 'metadata'. For a tool with no safety annotations, this is insufficient.
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 clear sentence with no wasted words. However, it omits necessary details, making it too brief to be fully effective. Conciseness is good, but completeness suffers.
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 tool is simple (1 param, no nested objects) and has an output schema, so the description may not need to detail return values. However, it fails to clarify what 'metadata' constitutes, leaving some ambiguity. Adequate but not comprehensive.
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 for parameter meaning. It does not add any context about the 'file_path' parameter (e.g., format, allowed protocols). The parameter name is self-explanatory, but without additional guidance, the score is low.
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 clearly states the action ('Return metadata') and the resource ('a specific document'). It effectively distinguishes from siblings: list_documents (listing), read_document (content), and visual_evaluate_document (visual evaluation).
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?
Usage context is implied: use when needing metadata for a known document. However, no explicit when-to-use or when-not-to-use guidance is provided, nor are alternatives compared despite sibling tools being named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsC
List documents under the configured root directory.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | ||
| pattern | No | **/* | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description does not disclose recursion behavior, filtering logic, or performance characteristics. The phrase 'configured root directory' is ambiguous without context.
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?
One sentence with no unnecessary words, but it is under-specified. Conciseness is positive, but the content is too minimal to be fully useful.
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?
Despite having an output schema, the description lacks details on parameter usage, default behaviors, and output structure. For a tool with 3 parameters and no schema descriptions, the description is insufficient.
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%. The description fails to mention any of the three parameters (root, pattern, limit), leaving the agent to infer from schema alone. This does not add value beyond the raw schema.
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 clearly states the action (list) and resource (documents under root directory). However, it does not differentiate from sibling tools like document_info or read_document, which could be inferred but not explicit.
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 guidance on when to use vs alternatives like document_info (single doc) or search. No exclusions or prerequisites provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_documentC
Read a portion of a document (PDF, Excel, CSV, JSON, TXT, DOCX).
IMPORTANT: When presenting results to users, ALWAYS mention:
The folder/directory path (e.g., 'Well 1/Well Test/')
The complete document name This helps users understand which well and document type is being referenced.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| max_chars | No | ||
| page | No | ||
| max_pages | No | ||
| sheet | No | ||
| start_row | No | ||
| num_rows | No | ||
| include_tables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only lists file types and mentions 'portion', but fails to disclose behavior like error handling, page start, or output format. Missing essential behavioral context.
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?
Very short, but one sentence is an instruction for user presentation rather than tool functionality. Could be more concise by removing extraneous guidance.
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?
Despite high parameter count (8) and multiple file formats, the description provides minimal context. Output schema exists but is not used in description. Missing return value details and usage scenarios.
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%, and the description adds no explanation for any of the 8 parameters. It does not help the agent understand defaults, options, or relationships between parameters.
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?
Description clearly states verb 'Read a portion' and specifies multiple document types (PDF, Excel, etc.). However, it does not differentiate from sibling tools like document_info or visual_evaluate_document, missing a chance to clarify distinct purpose.
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 guidance on when to use this tool versus alternatives. The IMPORTANT note instructs on presenting results but does not provide usage context, such as prerequisites or when to avoid the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visual_evaluate_documentA
Extract visual content from a document (PDF pages or images) and return it as inline images so the host AI can analyse charts, tables, and diagrams directly. Optionally run local Tesseract OCR as well.
Returns a list of content blocks (text and/or base64 images) that the calling AI model can interpret.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| enable_ocr | No | ||
| page | No | ||
| max_pages | No | ||
| ocr_lang | No | eng |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description reveals key behaviors: it returns content blocks (text/images) and can run local OCR. It implies a read-only operation by using 'extract', but does not clarify if the document is modified or detail potential side effects.
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 concise, with two sentences that front-load the core purpose and key feature (inline images). No unnecessary details or repetition.
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?
For a tool with 5 parameters and no output schema, the description provides a general overview but lacks detail on parameter defaults, supported file formats, and error handling. Sibling differentiation is not explicitly addressed, leaving some gaps for an AI agent.
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 coverage is 0%, so the description must compensate. It hints at file_path (document), enable_ocr (optional OCR), page (page number), but does not describe max_pages or ocr_lang explicitly. This partial coverage leaves some parameters ambiguous.
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 clearly states the tool extracts visual content (charts, tables, diagrams) from PDFs/images and returns inline images for AI analysis. This distinguishes it from siblings like read_document (text extraction) and document_info (metadata).
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 mentions optional OCR usage but does not explicitly state when to use this tool over alternatives or any constraints (e.g., file size limits). Usage context is implied but not clearly delineated.
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. Dates show when Glama detected each change.
4 tool updates
v0.2.1- First observed
document_info - First observed
list_documents - First observed
read_document - First observed
visual_evaluate_document
TDQS
Each tool has a distinct purpose: metadata retrieval, listing, text reading, and visual analysis. No two tools overlap in functionality.
All tools use snake_case and end with 'document' or 'documents', but 'document_info' is a noun-noun pattern while others are verb-noun, causing minor inconsistency.
Four tools is a reasonable scope for a document analysis server, covering essential read operations without being excessive.
The tools cover metadata, listing, text reading, and visual analysis. However, folder navigation or search is missing, which may be needed given the mention of directory structure.
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 Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Document-to-Markdown MCP server — convert PDF, Office and HTML into LLM-ready Markdown.
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to perform semantic searches over local document collections using multi-context organization and automatic OCR. It supports various file formats including PDF, DOCX, and images, ensuring all data processing remains local and private.7MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to read, search, and analyze PDF files from local paths or URLs. It provides tools for extracting specific page ranges, searching for terms, and retrieving document metadata.4461MIT
- FlicenseNot gradedqualityDmaintenanceA local MCP server that extracts text-layer content from PDF files, enabling AI agents to inspect, extract text, outlines, and page content.-
- AlicenseNot gradedqualityBmaintenanceMCP server that allows AI agents to read, search, summarize, and answer questions about local PDF, DOCX, XLSX, and TXT files through five tools.MIT
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/LunarPerovskite/docalyze-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server