> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/microsoft/markitdown/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Install the markitdown-mcp package and its dependencies

The MarkItDown MCP server can be installed via pip or run using Docker. Choose the installation method that best fits your needs.

## Prerequisites

* Python 3.10 or higher (for pip installation)
* Docker (for Docker installation)

## Installing with pip

Install the `markitdown-mcp` package using pip:

```bash theme={null}
pip install markitdown-mcp
```

This will install:

* The `markitdown-mcp` command-line tool
* The MCP server components (mcp \~1.8.0)
* MarkItDown with all optional plugins (markitdown\[all])

### Verifying Installation

Verify the installation by running:

```bash theme={null}
markitdown-mcp --help
```

You should see the command-line help output with available options.

## Installing with Docker

For a containerized deployment, build the Docker image from the source:

### Building the Docker Image

1. Clone the MarkItDown repository or navigate to the `markitdown-mcp` package:

```bash theme={null}
cd packages/markitdown-mcp
```

2. Build the Docker image:

```bash theme={null}
docker build -t markitdown-mcp:latest .
```

The Docker image includes:

* Python 3.13 slim runtime
* MarkItDown with all plugins enabled
* ffmpeg for video/audio processing
* exiftool for metadata extraction

### Testing the Docker Image

Test the Docker image by running:

```bash theme={null}
docker run -it --rm markitdown-mcp:latest
```

The server will start in STDIO mode (the container will wait for input).

## Plugin Support

The MCP server supports enabling optional MarkItDown plugins through an environment variable.

### Enabling Plugins

When running the server, set the `MARKITDOWN_ENABLE_PLUGINS` environment variable:

```bash theme={null}
export MARKITDOWN_ENABLE_PLUGINS=true
markitdown-mcp
```

For Docker:

```bash theme={null}
docker run -it --rm -e MARKITDOWN_ENABLE_PLUGINS=true markitdown-mcp:latest
```

<Note>
  The Docker image has plugins enabled by default. For pip installations, you need to set the environment variable explicitly.
</Note>

### Accepted Values

The following values enable plugins (case-insensitive):

* `true`
* `1`
* `yes`

Any other value disables plugins.

## Dependencies

The package has the following key dependencies:

| Package          | Version         | Purpose                                     |
| ---------------- | --------------- | ------------------------------------------- |
| mcp              | \~1.8.0         | Model Context Protocol server framework     |
| markitdown\[all] | >=0.1.1,\<0.2.0 | Document conversion engine with all plugins |

Additional dependencies are installed automatically as part of the MCP and MarkItDown packages.

## System Requirements

### For pip Installation

* Python 3.10, 3.11, 3.12, or 3.13
* CPython or PyPy implementation
* Operating system: Linux, macOS, or Windows

### For Docker Installation

* Docker Engine (any recent version)
* Sufficient disk space for the image (\~500MB)

## Next Steps

<CardGroup cols={2}>
  <Card title="Usage Guide" icon="book" href="/integrations/mcp/usage">
    Learn how to run the MCP server
  </Card>

  <Card title="Claude Desktop" icon="robot" href="/integrations/mcp/claude-desktop">
    Configure Claude Desktop integration
  </Card>
</CardGroup>
