file2markdown
Server Details
Convert documents and web pages to clean Markdown: PDF, DOCX, XLSX, EPUB, scanned files, any URL.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Robinhill85/file2markdown-mcp
- GitHub Stars
- 0
TDQS
Scored across 4 tools
convert_base64 and convert_url both produce Markdown but have clearly different input methods (raw base64 content vs. fetching a URL), and the descriptions explicitly steer users between them. list_supported_formats and usage_status are distinct supporting utilities with no overlap.
Most tools follow a verb_noun pattern: convert_base64, convert_url, list_supported_formats. usage_status is the only outlier, using a noun phrase instead of a verb, but all names are snake_case and predictable.
Four tools is well-scoped for a file-to-Markdown conversion server: two conversion entry points plus supported formats and usage monitoring. Each tool earns its place without unnecessary overlap or bloat.
The tool set covers the core conversion workflows (base64 and URL inputs), provides a source of truth for supported formats, and lets agents check quota before converting. Quality checking is embedded in the conversion responses, so there are no obvious missing operations or dead ends.
Available Tools
4 toolsconvert_base64AInspect
Convert base64-encoded file contents to Markdown.
filename is required and drives format detection (e.g. "report.docx").
Intended for programmatic MCP clients; for anything with a URL, prefer
convert_url.
quality_check: "basic" (default) attaches local output-health checks in
the `quality` field; "ai" additionally sends selected excerpts of the
converted text to TypeSafe for narrow yes/no judgments. See convert_url.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| quality_check | No | basic | |
| content_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the behavioral burden. It discloses that 'basic' quality checks attach local output-health checks in the quality field and that 'ai' sends selected excerpts to TypeSafe, which is useful privacy/behavioral context. It stops short of describing error handling or output shape, but the main side effects are covered.
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?
Three tight paragraphs front-load the core operation, then add routing guidance and parameter detail. No filler or redundancy.
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 conversion tool with no output schema or annotations, the description covers purpose, the key input semantics, routing, and the quality field. It does not spell out the final return envelope or failure modes, but nothing essential to invoking the tool correctly is missing.
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 has zero parameter descriptions, so the description must compensate. It explains filename's role in format detection, implies content_base64 from the first sentence, and details quality_check values and defaults. This covers all three parameters, though content_base64 could be more explicit.
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 opening sentence uses a specific verb ('Convert') and object ('base64-encoded file contents to Markdown'), and the reference to filename-driven format detection further defines scope. It also distinguishes itself from convert_url by naming the sibling, so an agent can disambiguate.
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?
Explicitly states intended context ('programmatic MCP clients') and tells the agent to prefer convert_url for anything with a URL. Qualifies the quality_check parameter with exact behavior for 'basic' vs 'ai', giving clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_urlAInspect
Fetch a URL (web page, PDF, Office doc, and more) and convert it to Markdown.
Works on publicly accessible URLs. Web pages are converted from their
served HTML; JavaScript-rendered content may be incomplete. Optional
filename_hint (e.g. "report.pdf") helps format detection when the URL
has no file extension.
The result carries a `quality` object (output-health check of the returned
Markdown: status review / no_issues_detected / not_evaluated, coverage and
a list of issues with line locations). quality_check="basic" (default)
runs only local deterministic checks. quality_check="ai" additionally
sends selected excerpts of the CONVERTED text to TypeSafe for narrow
yes/no judgments (garbled text, hard-wrapped prose, broken tables); it is
off unless requested. No check compares against the source document.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| filename_hint | No | ||
| quality_check | No | basic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that JavaScript-rendered content may be incomplete, which is a behavioral limitation. It details the quality object and the two quality_check modes, noting that AI checks are off unless requested and that no source comparison is performed. This is rich behavioral context beyond what schema provides.
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 multi-paragraph but each sentence contributes useful information. It front-loads the core purpose and then details parameters and behaviors. It could be slightly more concise, but the length is justified given the complexity of quality_check. No fluff.
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 3 parameters and no annotations or output schema, this description is quite complete. It explains the return quality object, the parameter usage, and limitations. Minor gaps: it doesn't mention error handling for invalid URLs, authentication requirements (beyond public access), or response structure for success/failure. But overall, it covers the essentials for an agent to decide and call.
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 explains the purpose of filename_hint and quality_check, adding meaning to those parameters. However, it doesn't detail the format or constraints of the 'url' parameter beyond 'publicly accessible', which is already in the description. Overall, it adds value but could be more detailed on URL validation or examples.
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 verb (fetch and convert), the resource (URL), and the output (Markdown). It distinguishes from siblings by indicating it handles URLs, whereas convert_base64 presumably handles base64-encoded input. The mention of supported document types adds specificity.
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?
Explicitly states it works on publicly accessible URLs, mentions the filename_hint for format detection, and clarifies the quality_check options. While it doesn't explicitly say when NOT to use it, it implies using other tools for non-URL inputs. The distinction between basic and AI quality checks is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_formatsAInspect
List supported input formats, per-tier limits, and which features need Pro.
Single source of truth — do not claim capabilities beyond what this returns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses that the tool is authoritative and exhaustive ('Single source of truth') and warns against extrapolating beyond its output. The verb 'List' also implies a read-only operation, though it does not explicitly confirm absence of 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?
Two concise sentences with no filler. The first sentence states what the tool returns; the second adds an important authority constraint. Every word contributes value.
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 description covers what the response contains (formats, tier limits, Pro features) and its authoritative nature. With no output schema, it could go slightly further in describing the response shape or grouping, but for a zero-parameter reference tool this is a minor gap.
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?
The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to add about parameters. Per the calibration rule, this earns the zero-parameter baseline of 4.
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 uses a specific verb ('List') and a clear resource ('supported input formats'), and further specifies the content categories: per-tier limits and Pro feature requirements. This distinguishes it from sibling conversion and usage tools without requiring schema inspection.
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 'Single source of truth — do not claim capabilities beyond what this returns' sentence provides clear context: use this tool as the authoritative reference before asserting supported capabilities. It does not explicitly name sibling tools or spell out when not to use it, so it falls just short of full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usage_statusAInspect
Check your tier and remaining conversions before burning a call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does convey that this is a read-only status check and implies the check itself does not consume a conversion, but it does not explicitly state side effects, whether the call is free, or how it behaves when no conversions remain. Adequate but not fully transparent.
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?
A single sentence, very concise, with the core action ('check tier and remaining conversions') front-loaded and the usage context appended. Every word earns its place.
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 zero-parameter, no-output-schema tool, the description covers what the tool reports (tier and remaining conversions) and when to call it. It does not specify output structure or numeric formats, but that is likely unnecessary for invoking the tool successfully.
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?
The tool has zero parameters and the schema is empty, so there are no parameter details to add. The description correctly focuses on behavior rather than redundant parameter information.
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 states a specific verb ('check') and resource ('your tier and remaining conversions'), and the phrase 'before burning a call' clarifies its role as a preflight status check. It is clearly distinct from the sibling conversion tools, which perform different operations.
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 explicitly indicates when to use the tool: before consuming a call/conversion. It does not name alternatives or exclusion conditions, but the sibling tools are unrelated enough that no further routing is needed.
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.
2 tool updates
- Changed
convert_base641 field changed- added
Input schema / properties / quality_checkAdded value: +{ + "default": "basic", + "title": "Quality Check", + "type": "string" +}
- Changed
convert_url1 field changed- added
Input schema / properties / quality_checkAdded value: +{ + "default": "basic", + "title": "Quality Check", + "type": "string" +}
4 tool updates
- First observed
convert_base64 - First observed
convert_url - First observed
list_supported_formats - First observed
usage_status
Related MCP Connectors
Convert PDF, Word, PowerPoint, Excel, HTML and EPUB to Markdown, with OCR and RAG chunking
Convert PDF, DOCX, HTML, and URLs to clean, LLM-ready markdown with tables preserved
High-fidelity PDF to structured Markdown conversion and document field extraction.
Parse PDF/Word/PPT/HTML to Markdown; tables as JSON, image extraction, RAG chunking, page ranges.
Related MCP Servers
- AlicenseAqualityDmaintenanceConverts various file types and web content to Markdown format. It provides a set of tools to transform PDFs, images, audio files, web pages, and more into easily readable and shareable Markdown text.10231 npm2,991MIT
- FlicenseNot gradedqualityBmaintenanceConvert PDFs, Word documents, Excel/CSV files, and YouTube videos into clean, structured Markdown for AI agents, LLMs, and knowledge tools.-
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.24 npm1MIT
- AlicenseAqualityDmaintenanceConvert PDF, DOCX, XLSX, images, and 20+ formats to Markdown using markdown.new API.315 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.