Markdownify MCP Server
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., "@Markdownify MCP Serverconvert this PDF document to markdown"
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.
Markdownify MCP Server
Help! I need someone with a Windows computer to help me add support for Markdownify-MCP on Windows. PRs exist but I cannot test them. Post here if interested.

Markdownify is a Model Context Protocol (MCP) server that converts 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.
Features
Convert multiple file types to Markdown:
PDF
Images
Audio (with transcription)
DOCX
XLSX
PPTX
Convert web content to Markdown:
YouTube video transcripts
Bing search results
General web pages
Retrieve existing Markdown files
Related MCP server: MCP URL Fetcher
Getting Started
Clone this repository
Install dependencies:
pnpm install
Note: this will also install uv and related Python depdencies.
Build the project:
pnpm run buildStart the server:
pnpm start
Development
Use
pnpm run devto start the TypeScript compiler in watch modeModify
src/server.tsto customize server behaviorAdd or modify tools in
src/tools.ts
Usage with Desktop App
To integrate this server with a desktop app, add the following to your app's server configuration:
{
"mcpServers": {
"markdownify": {
"command": "node",
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
],
"env": {
// By default, the server will use the default install location of `uv`
"UV_PATH": "/path/to/uv"
}
}
}
}Available Tools
youtube-to-markdown: Convert YouTube videos to Markdownpdf-to-markdown: Convert PDF files to Markdownbing-search-to-markdown: Convert Bing search results to Markdownwebpage-to-markdown: Convert web pages to Markdownimage-to-markdown: Convert images to Markdown with metadataaudio-to-markdown: Convert audio files to Markdown with transcriptiondocx-to-markdown: Convert DOCX files to Markdownxlsx-to-markdown: Convert XLSX files to Markdownpptx-to-markdown: Convert PPTX files to Markdownget-markdown-file: Retrieve an existing Markdown file. File extension must end with: *.md, *.markdown.OPTIONAL: set
MD_SHARE_DIRenv var to restrict the directory from which files can be retrieved, e.g.MD_SHARE_DIR=[SOME_PATH] pnpm run start
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
13 toolsaudio-to-markdownA
Convert an audio file to markdown, including transcription if possible. Use 'url' for online audio files, or 'filepath' only if the file exists on the server. For local files, upload them first via /upload endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | Server-side absolute path of the audio file (file must exist on the server filesystem) | |
| url | No | URL of the audio file to download and convert (recommended for remote files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that transcription is included if possible, and gives practical guidance on file handling (upload first for local files). However, it lacks details on rate limits, error handling, or output format specifics, which are important for a conversion tool.
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 front-loaded with the core purpose, followed by specific usage instructions. Every sentence adds essential information without redundancy, making it efficiently structured and appropriately sized for the tool's complexity.
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?
Given no annotations and no output schema, the description is moderately complete. It covers the basic operation and parameter usage, but lacks details on behavioral aspects like performance, limitations, or what the markdown output includes, which could help an agent use it more effectively.
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 100%, so the schema already documents both parameters thoroughly. The description adds value by explaining the semantics of when to use 'url' vs. 'filepath' and the prerequisite for local files, but does not provide additional syntax or format details beyond what the schema offers.
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 'convert' and the resource 'audio file to markdown', specifying it includes transcription. It distinguishes from siblings like 'docx-to-markdown' or 'pdf-to-markdown' by focusing on audio files, making the purpose specific and differentiated.
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 provides clear context on when to use 'url' vs. 'filepath', advising to upload local files first via /upload endpoint. However, it does not explicitly state when to use this tool versus alternatives like 'youtube-to-markdown' or other conversion siblings, leaving some ambiguity in sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bing-search-to-markdownC
Convert a Bing search results page to markdown
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the Bing search results page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'convert' implies a transformation operation, it doesn't specify whether this requires internet access, how it handles authentication (if Bing requires it), potential rate limits, error conditions, or what the output format looks like. The description is minimal and lacks important operational 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?
The description is extremely concise - a single sentence that directly states the tool's function without any unnecessary words. It's front-loaded with the core purpose and wastes no space on redundant information. This represents optimal conciseness for a simple tool.
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?
Given that there are no annotations and no output schema, the description is insufficiently complete. For a tool that presumably fetches and transforms web content, the description should address authentication needs, rate limits, error handling, and output format. The current description leaves too many operational questions unanswered for effective agent use.
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 input schema has 100% description coverage, with the single parameter 'url' clearly documented as 'URL of the Bing search results page.' The description doesn't add any additional semantic information beyond what the schema already provides. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
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's purpose: converting Bing search results pages to markdown format. It specifies both the action ('convert') and the resource ('Bing search results page'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'webpage-to-markdown' or 'search', which could handle similar content.
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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'webpage-to-markdown' (for general webpages) and 'search' (which might return structured results), there's no indication whether this tool is specialized for Bing's specific search result format or when it should be preferred over other conversion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docx-to-markdownA
Convert a DOCX file to markdown. Use 'url' for online DOCX files, or 'filepath' only if the file exists on the server. For local files, upload them first via /upload endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | Server-side absolute path of the DOCX file (file must exist on the server filesystem) | |
| url | No | URL of the DOCX file to download and convert (recommended for remote files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains the tool's operational constraints (server-side file existence requirement, URL usage for remote files) and prerequisites (uploading local files first). However, it doesn't mention potential limitations like file size restrictions, conversion accuracy, or error handling.
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 perfectly concise with three focused sentences that each serve a distinct purpose: stating the core function, explaining parameter usage, and providing prerequisite guidance. There's no wasted verbiage and information is front-loaded appropriately.
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 annotations and no output schema, the description does well by explaining the input options and prerequisites. However, it doesn't describe what the markdown output looks like (structure, formatting preservation) or potential conversion limitations, which would be helpful given the lack of output schema.
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 100%, so the schema already documents both parameters thoroughly. The description adds minimal value by reinforcing the 'url' vs 'filepath' distinction and the server-side requirement, but doesn't provide additional semantic context beyond what's in the schema descriptions.
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 specific action ('Convert a DOCX file to markdown') and resource (DOCX files), distinguishing it from sibling tools like 'pdf-to-markdown' or 'pptx-to-markdown' which handle different file formats. It precisely defines the tool's function without ambiguity.
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 provides explicit guidance on when to use each parameter: 'url' for online files and 'filepath' only for server-side files, with an alternative action recommended ('upload them first via /upload endpoint' for local files). This clearly differentiates usage scenarios and mentions an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchB
Fetch a specific Markdownify connector document by id. Use ids returned by the search tool.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identifier from a Markdownify search result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool fetches a document by ID, which implies a read operation, but doesn't disclose important behavioral traits like whether it requires authentication, has rate limits, returns structured data vs raw markdown, or handles errors. The description is minimal and leaves key behavioral aspects unspecified.
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 extremely concise with just two sentences that each serve a clear purpose: the first states what the tool does, the second provides usage guidance. There's zero wasted language, and the most important information (the purpose) comes first. This is a model of efficient description writing.
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?
Given the lack of annotations and output schema, the description is incomplete for a tool that presumably returns document content. It doesn't explain what format the fetched document is returned in (raw markdown, structured object, etc.), whether it includes metadata, or what happens if the ID is invalid. For a retrieval tool with no structured output documentation, the description should provide more context about the return value.
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 schema description coverage is 100%, so the schema already documents the single 'id' parameter completely. The description adds minimal value beyond the schema by mentioning 'ids returned by the search tool,' which provides context about where the ID should come from. This meets the baseline expectation when schema coverage is high, but doesn't add significant semantic clarification.
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 ('Fetch') and resource ('a specific Markdownify connector document by id'), making the purpose understandable. It distinguishes from sibling tools by specifying it retrieves individual documents rather than searching or converting files, though it doesn't explicitly name alternatives. The description is specific but could be more precise about what distinguishes it from similar retrieval tools.
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 provides clear context for when to use this tool: 'Use ids returned by the search tool.' This gives a direct prerequisite and indicates it should be used after search operations. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings, which would be needed for a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-markdown-fileA
Get a markdown file by absolute file path (file must exist on the server filesystem)
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | Server-side absolute path to markdown file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it's a read operation ('Get'), requires an existing file, and accesses the server filesystem. However, it lacks details on error handling, permissions, or return format, leaving gaps for a tool with no annotations.
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, efficient sentence with zero waste. It front-loads the purpose and key constraints, making it easy to parse and understand quickly.
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?
Given no annotations and no output schema, the description is adequate for a simple read tool but incomplete. It covers the basic operation and constraints, but lacks details on what is returned (e.g., file content, metadata) or error cases, which are important for a tool with no structured output information.
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 100%, so the schema already documents the 'filepath' parameter fully. The description adds minimal value by reinforcing it's an 'absolute file path' and 'on the server filesystem', but does not provide additional syntax or format details beyond the 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 specific action ('Get') and resource ('a markdown file'), and distinguishes it from siblings by specifying it retrieves existing files from the server filesystem, unlike conversion tools like 'docx-to-markdown' or web tools like 'fetch'.
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?
It provides clear context for when to use this tool ('by absolute file path' and 'file must exist on the server filesystem'), but does not explicitly mention when not to use it or name alternatives among the siblings, such as 'fetch' for remote content or conversion tools for other formats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image-to-markdownA
Convert an image to markdown, including metadata and description. Use 'url' for online image files, or 'filepath' only if the file exists on the server. For local files, upload them first via /upload endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | Server-side absolute path of the image file (file must exist on the server filesystem) | |
| url | No | URL of the image file to download and convert (recommended for remote files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool performs a conversion (implying mutation/processing), specifies input constraints (online vs. server files), and references an upload prerequisite. However, it doesn't mention potential limitations like rate limits, error conditions, or output format details.
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 front-loaded with the core purpose, followed by specific usage rules in two concise sentences. Every sentence earns its place by providing essential information without redundancy, making it highly efficient and well-structured.
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?
Given no annotations, no output schema, and a simple input schema, the description does well by covering purpose, usage guidelines, and behavioral context. However, it lacks details on the output (e.g., markdown structure, metadata format) and potential errors, which could be helpful for a conversion tool with no structured output documentation.
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 100%, so the baseline is 3. The description adds meaningful context by explaining the semantic choice between 'url' and 'filepath' (online vs. server files) and the prerequisite for local files, which enhances understanding beyond the schema's technical descriptions. It doesn't provide additional syntax details, but the guidance is valuable.
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 specific action ('Convert an image to markdown') and resource ('image'), distinguishing it from sibling tools like 'audio-to-markdown' or 'pdf-to-markdown' which handle different file types. It also specifies the output includes 'metadata and description', adding precision beyond just conversion.
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 provides explicit guidance on when to use each parameter ('url' for online images, 'filepath' only if the file exists on the server) and includes an alternative action ('upload them first via /upload endpoint' for local files). This clearly differentiates usage scenarios and references another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf-to-markdownA
Convert a PDF file to markdown. Use 'url' for online PDF files, or 'filepath' only if the file exists on the server. For local files, upload them first via /upload endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | Server-side absolute path of the PDF file (file must exist on the server filesystem) | |
| url | No | URL of the PDF file to download and convert (recommended for remote files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool performs a conversion operation (implying mutation of format), specifies constraints for 'filepath' (must exist on server), and mentions a prerequisite for local files (upload first). However, it lacks details on rate limits, error handling, or output format specifics.
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 front-loaded with the core purpose in the first sentence, followed by specific usage guidelines. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.
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?
Given the tool's moderate complexity (conversion operation with two parameters) and no annotations or output schema, the description does a good job covering purpose, usage, and constraints. It could be more complete by detailing the output format or error cases, but it provides sufficient context for basic use.
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 100%, so the schema already documents both parameters thoroughly. The description adds some context by explaining the use cases for 'url' (online PDFs) and 'filepath' (server-side files), but does not provide additional syntax or format details beyond what the schema states. This meets the baseline for high schema coverage.
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 'convert' and the resource 'PDF file to markdown', making the purpose specific and unambiguous. It distinguishes itself from sibling tools like 'docx-to-markdown' or 'image-to-markdown' by specifying PDF as the input format.
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 provides explicit guidance on when to use each parameter: 'url' for online PDFs and 'filepath' only if the file exists on the server. It also mentions an alternative action ('upload them first via /upload endpoint') for local files, which helps differentiate from sibling tools like 'upload-file-for-conversion'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pptx-to-markdownA
Convert a PPTX file to markdown. Use 'url' for online PPTX files, or 'filepath' only if the file exists on the server. For local files, upload them first via /upload endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | Server-side absolute path of the PPTX file (file must exist on the server filesystem) | |
| url | No | URL of the PPTX file to download and convert (recommended for remote files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the tool's behavior regarding file handling (online vs. server-side files) and mentions a prerequisite for local files (upload first), adding useful context. However, it lacks details on output format, error handling, or performance aspects, leaving some behavioral traits unspecified.
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 front-loaded with the core purpose in the first sentence, followed by concise usage instructions. Every sentence adds essential information without redundancy, making it efficient and well-structured for quick comprehension.
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?
Given the tool's moderate complexity (conversion with two parameter options), no annotations, and no output schema, the description is partially complete. It covers purpose and usage well but lacks details on the markdown output format, potential limitations, or error cases, which could help an agent use it more effectively.
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 100%, so the schema already documents both parameters thoroughly. The description adds marginal value by reinforcing the usage context (e.g., 'url' for online files, 'filepath' for server files) but doesn't provide additional syntax or format details beyond what the schema specifies, meeting the baseline for high coverage.
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 'convert' and the resource 'PPTX file to markdown', making the purpose specific and unambiguous. It distinguishes itself from sibling tools like 'docx-to-markdown' or 'pdf-to-markdown' by specifying PPTX files, avoiding redundancy.
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 provides explicit guidance on when to use each parameter: 'url' for online files and 'filepath' only if the file exists on the server. It also mentions an alternative action for local files ('upload them first via /upload endpoint'), clearly defining usage scenarios and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
Search Markdownify connector docs and previously shared guidance to learn how to use this server inside ChatGPT or via API.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query describing the information you need about Markdownify. |
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 of behavioral disclosure. It mentions searching docs and guidance but doesn't describe key behaviors like whether results are paginated, if there are rate limits, authentication requirements, or what the output format looks like (e.g., text snippets, links). This leaves significant gaps for an agent to understand how the tool operates beyond basic purpose.
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, efficient sentence that front-loads the purpose and usage without unnecessary words. It directly states what the tool does and why to use it, making it easy to parse and understand quickly, with no wasted information.
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?
Given the lack of annotations and output schema, the description is incomplete for a search tool. It doesn't explain what the tool returns (e.g., search results format, error handling) or behavioral constraints, which are critical for an agent to use it effectively. The description covers basic purpose but misses important operational details needed for full context.
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 100%, with the single parameter 'query' fully documented in the schema as a 'Natural language query describing the information you need about Markdownify.' The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating with extra details.
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 searches 'Markdownify connector docs and previously shared guidance' with the purpose of learning 'how to use this server inside ChatGPT or via API.' It specifies the resource (documentation/guidance) and verb (search/learn), though it doesn't explicitly differentiate from sibling tools like 'bing-search-to-markdown' or 'webpage-to-markdown' which search external content rather than internal docs.
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 implies usage context ('to learn how to use this server') but doesn't explicitly state when to use this tool versus alternatives like browsing docs manually or using other search tools. It suggests a learning purpose but lacks clear exclusions or comparisons to sibling tools, leaving some ambiguity about optimal use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload-file-for-conversionA
IMPORTANT: Use this tool when you need to convert a local file that doesn't exist on the server. This tool provides specific upload instructions and explains how to handle local files with remote servers.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_type | Yes | The type of conversion tool to use after upload | |
| local_file_path | No | The local file path that needs to be uploaded (for reference in instructions) | |
| reason | No | Why file upload is needed (e.g., 'file is on local machine', 'file not accessible to server') | Local file needs to be uploaded to remote server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool 'provides specific upload instructions and explains how to handle local files with remote servers,' which adds useful behavioral context about its instructional nature. However, it lacks details on permissions, rate limits, or error handling, leaving gaps for a mutation tool.
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 and front-loaded, with two sentences that directly address purpose and usage. Every sentence adds value without waste, making it efficient and well-structured for an AI agent.
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?
Given no annotations and no output schema, the description is moderately complete. It covers the core use case and behavioral intent but lacks details on return values, error conditions, or security aspects. For a tool with 3 parameters and mutation implications, it should do more to compensate for missing structured data.
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 100%, so the schema already documents all parameters well. The description adds no specific parameter semantics beyond what's in the schema, such as explaining the 'tool_type' enum or 'local_file_path' usage. Baseline 3 is appropriate as the schema does the heavy lifting.
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's purpose: uploading local files for conversion when they don't exist on the server. It specifies the verb ('upload') and resource ('local file'), but doesn't explicitly differentiate from sibling tools like the direct conversion tools (pdf-to-markdown, etc.), which presumably handle files already on the server.
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 provides explicit usage guidance: 'Use this tool when you need to convert a local file that doesn't exist on the server.' It distinguishes this from alternatives by implying that sibling tools (e.g., pdf-to-markdown) are for server-side files, though it doesn't name them directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webpage-to-markdownC
Convert a webpage to markdown
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the webpage to convert |
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 of behavioral disclosure. It states the action ('convert') but doesn't explain how the conversion works, what happens with complex webpages, whether authentication is needed, or what the output format entails. This leaves significant gaps in understanding the tool's behavior.
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 extremely concise with a single sentence that directly states the tool's function. There is no wasted language or unnecessary elaboration, making it front-loaded and efficient for quick understanding.
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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like conversion quality, error handling, or output details, which are crucial for a tool that transforms content. This leaves the agent with insufficient context for reliable use.
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 input schema has 100% description coverage, with the 'url' parameter fully documented in the schema. The description doesn't add any additional meaning beyond the schema, such as URL format constraints or examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
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's purpose with a specific verb ('convert') and resource ('webpage'), making it immediately understandable. However, it doesn't differentiate itself from sibling tools like 'bing-search-to-markdown' or 'youtube-to-markdown' that also convert content to markdown, which prevents a perfect score.
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 provides no guidance on when to use this tool versus alternatives. With multiple sibling tools for converting different content types (e.g., audio, PDF, YouTube), it doesn't specify that this is for webpages only or mention any prerequisites or exclusions, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xlsx-to-markdownA
Convert an XLSX file to markdown. Use 'url' for online XLSX files, or 'filepath' only if the file exists on the server. For local files, upload them first via /upload endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | No | Server-side absolute path of the XLSX file (file must exist on the server filesystem) | |
| url | No | URL of the XLSX file to download and convert (recommended for remote files) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It describes the two input methods (url vs filepath) and mentions the prerequisite for local files (upload first), which adds useful context. However, it doesn't disclose potential limitations like file size constraints, conversion time, error conditions, or output format details beyond 'markdown'.
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 efficiently structured in three sentences: purpose statement, parameter usage guidance, and prerequisite instruction. Every sentence earns its place by providing essential information without redundancy. It's appropriately sized and front-loaded with the core functionality.
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 2 parameters, 100% schema coverage, but no annotations or output schema, the description provides good context about usage scenarios and prerequisites. It could be more complete by mentioning what the markdown output looks like (tables, formatting) or potential limitations, but covers the essential operational context well.
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 100%, so the schema already documents both parameters thoroughly. The description adds marginal value by reinforcing the url/filepath distinction and mentioning the upload endpoint prerequisite, but doesn't provide additional syntax, format, or constraint details beyond what's in the schema descriptions.
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 specific action ('Convert an XLSX file to markdown') and distinguishes it from siblings by focusing on XLSX format conversion, unlike other tools that handle audio, PDF, DOCX, etc. It provides both the verb ('Convert') and resource ('XLSX file') with clear output format ('markdown').
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 provides when-to-use guidance: 'Use 'url' for online XLSX files, or 'filepath' only if the file exists on the server.' It also offers an alternative for local files: 'For local files, upload them first via /upload endpoint.' This clearly distinguishes between remote and server-side file handling scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube-to-markdownC
Convert a YouTube video to markdown, including transcript if available
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the YouTube video |
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 of behavioral disclosure. It mentions including a transcript 'if available,' hinting at conditional behavior, but doesn't cover critical aspects like error handling (e.g., invalid URLs, unavailable transcripts), rate limits, authentication needs, or output format details. For a conversion tool with zero annotation coverage, this is a significant gap in transparency.
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, efficient sentence: 'Convert a YouTube video to markdown, including transcript if available.' It is front-loaded with the core action and resource, and every word adds value without redundancy. This makes it easy for an agent to parse quickly and understand the tool's essence.
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?
Given the complexity of a conversion tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., how transcripts are handled, error responses), output structure (e.g., markdown format specifics), and usage constraints. While concise, it doesn't provide enough context for reliable tool invocation in varied 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?
The input schema has 100% description coverage, with the 'url' parameter clearly documented as 'URL of the YouTube video.' The description adds no additional semantic context beyond this, such as URL format requirements (e.g., must be a valid YouTube link) or examples. Given the high schema coverage, a baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.
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's purpose: 'Convert a YouTube video to markdown, including transcript if available.' It specifies the verb ('convert'), resource ('YouTube video'), and output format ('markdown'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'audio-to-markdown' or 'webpage-to-markdown' beyond the resource type, missing an opportunity to highlight unique features.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., video accessibility), exclusions (e.g., private videos), or comparisons to siblings like 'audio-to-markdown' for audio-only content or 'webpage-to-markdown' for general web content. This lack of context leaves the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clear distinct purposes focused on converting specific file types or sources to markdown, with minimal overlap. However, 'fetch' and 'get-markdown-file' could potentially cause confusion as both retrieve markdown content, though 'fetch' targets connector documents by ID while 'get-markdown-file' uses file paths.
The naming follows a consistent pattern where most tools use a clear 'source-to-markdown' format (e.g., 'pdf-to-markdown', 'webpage-to-markdown'), which is highly readable and predictable. Minor deviations include 'fetch' and 'search' which don't follow this pattern, and 'upload-file-for-conversion' uses underscores instead of hyphens, slightly breaking consistency.
With 13 tools, the count is well-scoped for a server focused on markdown conversion from various sources. Each tool serves a distinct conversion purpose (e.g., audio, DOCX, PDF, YouTube), and the inclusion of utility tools like 'upload-file-for-conversion' and 'search' supports the core functionality without bloat.
The tool set provides comprehensive coverage for converting common file types and online sources to markdown, including audio, documents, images, PDFs, webpages, and videos. Minor gaps exist, such as no tools for editing or processing markdown files after conversion, but the core conversion workflows are well-covered with support for local and remote files.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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.
Convert files, URLs, and documents to clean, AI-ready Markdown via MCP.
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables LLMs to extract and use content from unstructured documents across a wide variety of file formats.111
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables LLMs to fetch and process web content in multiple formats (HTML, JSON, Markdown, text) with automatic format detection.56
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that converts various file formats (PDF, PowerPoint, Word, Excel, Images, etc.) to Markdown to make them accessible to LLMs.1MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol server that converts over 29 file formats, including PDFs, Office documents, and audio, into structured Markdown using Microsoft's MarkItDown library. It enables AI assistants to process diverse document types through single file conversion and batch directory processing.332MIT
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/anis-marrouchi/markdownify-mcp-http-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server