Markitdown logo

Markitdown

by microsoft

Converts local, remote, or inline URI resources to Markdown through one MCP tool.

Install Markitdown

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "microsoft-markitdown": {
      "command": "uvx",
      "args": [
        "markitdown-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

microsoft/markitdown exposes MarkItDown through a single MCP tool that converts http:, https:, file:, and data: URIs into Markdown. It runs over STDIO by default and can also serve MCP requests through Streamable HTTP or SSE on localhost. Use it when an agent needs to read file or web resources in Markdown form, especially in a local trusted setup. Docker support is available for isolated execution and for mounting directories containing local files.

Use cases

  • Convert downloaded documents into Markdown for an agent
  • Read local files through an MCP-compatible assistant
  • Fetch remote resources and return Markdown content
  • Pass inline data URIs to a document conversion tool

Key features

  • Converts HTTP, HTTPS, file, and data URIs
  • Exposes the convert_to_markdown MCP tool
  • Supports STDIO, Streamable HTTP, and SSE
  • Runs from pip or Docker
  • Supports mounted directories for containerized local-file access

Tools1

What Markitdown lets your agent do. Expand a tool for its parameters.

Verified live~57 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

16/16 checks healthy over the last 30d

What it can do

From the 1 tool this server returned when we ran it.

Makes network requests · 1Read-only tools · 1
Network at startup2 connections
Files written at startup30

Observed 2026-10-23 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 7d ago via OSV.dev · markitdown-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars192kStargazers on the source repository.
Last commit3d agoMost recent push to the default branch.
Tools exposed1Callable tools this server registers over MCP.
Directory activity9 viewsConfig copies, upvotes, and views on AllMCPs.

How Markitdown works

What microsoft/markitdown does

microsoft/markitdown provides MCP access to MarkItDown, a library for converting many file formats into Markdown for use by large language model workflows. Its only exposed tool, convert_to_markdown, accepts a resource identified by a URI and returns the converted Markdown.

The accepted URI schemes are http:, https:, file:, and data:. This lets an agent work with remote resources, files available to the local process, or content embedded directly in a data URI. The package is intended for local use with trusted agents rather than as an internet-facing service.

How it works

Install the Python package and start the markitdown-mcp command. Without extra options, the process communicates over STDIO, which is suitable for MCP clients that launch local servers. The server also supports Streamable HTTP and SSE. In those modes, it can listen on a configured host and port; the documented local example uses 127.0.0.1:3001.

An MCP client calls convert_to_markdown with a supported URI. For HTTP and HTTPS resources, the server retrieves the remote content. For file URIs, it reads files using the permissions of the account running the server. When running in Docker, local paths must be made available by mounting the relevant host directory into the container.

Setup and configuration

Install the package with:

Terminal
pip install markitdown-mcp

Start the default STDIO transport with:

bash
markitdown-mcp

To use Streamable HTTP and SSE, run:

bash
markitdown-mcp --http --host 127.0.0.1 --port 3001

The project also provides a Dockerfile. A container can process remote URIs directly; access to host files requires a volume mount such as /home/user/data:/workdir. Claude Desktop can launch the Docker image through its MCP server configuration.

For connection testing, MCP Inspector can be started with npx @modelcontextprotocol/inspector. Its STDIO, Streamable HTTP, and SSE connection modes can be used to list and invoke the conversion tool.

Tools and capabilities

  • convert_to_markdown(uri): converts a resource referenced by an HTTP, HTTPS, file, or data URI to Markdown.
  • STDIO transport for local client-launched processes.
  • Streamable HTTP and SSE transports for local HTTP connections.
  • Docker execution with optional directory mounts for local-file access.

Limitations and notes

The server has no authentication and runs with the privileges of its operating-system user. In HTTP or SSE mode, it binds to localhost by default, but other processes or users on the same machine may still be able to access it. Because the conversion tool can read files available to that user and retrieve network data, avoid binding it to non-local interfaces unless the security consequences are understood.

A sandbox, virtual machine, or container with restricted permissions can help limit access to sensitive files and network segments. Docker isolation does not automatically expose host files; directories must be mounted explicitly.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Markitdown

microsoft/markitdown is an MCP server that connects AI agents to the MarkItDown conversion library. Its main tool, convert_to_markdown, accepts http:, https:, file:, or data: URIs and returns Markdown. It supports STDIO, Streamable HTTP, and SSE transports for local trusted-agent workflows.

Install it with `pip install markitdown-mcp`, then start it by running `markitdown-mcp`. STDIO is the default transport. You can alternatively build and run the supplied Docker image, which is useful when configuring Claude Desktop or isolating file access.

Pass a `file:` URI to the `convert_to_markdown` tool. The server reads the file using the permissions of its running user. If it runs in Docker, mount the host directory into the container and use the corresponding container path in the URI.

Yes, microsoft/markitdown works with Claude Desktop through its STDIO configuration. The documented setup launches the Docker image with `docker run --rm -i markitdown-mcp:latest`; add a volume mount to make a host directory available to the container.

No network exposure should be assumed safe without additional controls. The server has no authentication and can read files accessible to its user or retrieve network data. HTTP and SSE bind to localhost by default; use a sandbox or restricted container and do not bind other interfaces unless the risks are understood.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMarkitdown AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/microsoft-markitdown?style=directory)](https://allmcps.com/mcp/microsoft-markitdown)
HTML Embed
<a href="https://allmcps.com/mcp/microsoft-markitdown"><img src="https://allmcps.com/api/badge/microsoft-markitdown?style=directory" alt="Markitdown on AllMCPs" /></a>