Skip to main content
Glama
isdmx

Markmap MCP Server

by isdmx
README.md
# Markmap MCP Server

![Sample Mindmap](https://raw.githubusercontent.com/isdmx/markmap-mcp-server/refs/heads/master/docs/markmap.svg)

[![NPM Version](https://img.shields.io/npm/v/@isdmx/markmap-mcp-server.svg)](https://www.npmjs.com/package/@isdmx/markmap-mcp-server)
[![GitHub License](https://img.shields.io/github/license/isdmx/markmap-mcp-server.svg)](LICENSE)
[![Stars](https://img.shields.io/github/stars/isdmx/markmap-mcp-server)](https://github.com/isdmx/markmap-mcp-server)

Markmap MCP Server is based on the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) that allows one-click conversion of Markdown text to interactive mind maps, built on the open source project [markmap](https://github.com/markmap/markmap). The generated mind maps support rich interactive operations and can be exported in various image formats.

> 🎉 **Explore More Mind Mapping Tools**
>
> Try [MarkXMind](https://github.com/isdmx/markxmind) - An online editor that creates complex mind maps using simple XMindMark syntax. It supports real-time preview, multi-format export (.xmind/.svg/.png), importing existing XMind files. [Try it now](https://markxmind.js.org/)!

## Features

- 🌠 **Markdown to Mind Map**: Convert Markdown text to interactive mind maps
- 🖼️ **Multi-format Export**: Support for exporting as PNG, JPG, and SVG images
- 🔄 **Interactive Operations**: Support for zooming, expanding/collapsing nodes, and other interactive features
- 📋 **Markdown Copy**: One-click copy of the original Markdown content
- 🌐 **Automatic Browser Preview**: Option to automatically open generated mind maps in the browser

## Prerequisites

1. Node.js (v25)

## Installation

### Manual Installation

```bash
# Install from npm
npm install @isdmx/markmap-mcp-server -g

# Basic run
npx -y @isdmx/markmap-mcp-server

# Specify output directory
npx -y @isdmx/markmap-mcp-server --output /path/to/output/directory

# Or
markmap-mcp-server
```

Alternatively, you can clone the repository and run locally:

```bash
# Clone the repository
git clone https://github.com/isdmx/markmap-mcp-server.git

# Navigate to the project directory
cd markmap-mcp-server

# Build project
npm install && npm run build

# Run the server
node build/index.js
```

## Usage

Add the following configuration to your MCP client configuration file:

```json
{
  "mcpServers": {
    "default-server": {
      "type": "streamable-http",
      "url": "http://localhost:3000/mcp",
      "note": "For Streamable HTTP connections, add this URL directly in your MCP Client"
    }
  }
}
```

Install inspector `@modelcontextprotocol/inspector`

```bash
npm install -g @modelcontextprotocol/inspector
```

List tools with inspector

```bash
mcp-inspector --cli --transport http --method tools/list --server-url --target http://localhost:3000/mcp
```

Call `markdown-to-mindmap` tool

```bash
mcp-inspector --cli --transport http --method tools/call --server-url --target http://localhost:3000/mcp --tool-name markdown_to_mindmap --tool-arg markdown="
# header 1
## Header 1.1
- [x] ul 1
- [ ] ul 2
- [ ] ul 3
## Header 1.2
- bullet 1
- bullet 2
## Header 1.3
### Header 1.3.1
### Header 1.3.2
1. ol 1
2. ol 2
3. ol 3
"
```

## Available Tools

### markdown-to-mindmap

Convert Markdown text into an interactive mind map.

**Parameters:**

- `markdown`: The Markdown content to convert (required string)

**Return Value:**

```json
{
  "tools": [
    {
      "name": "markdown_to_mindmap",
      "title": "Markdown to Mind Map Converter",
      "description": "Converts Markdown content to an interactive HTML mind map",
      "inputSchema": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Markdown content to convert into a mind map"
          }
        },
        "required": ["markdown"]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "html": {
            "type": "string",
            "description": "HTML content of the generated mind map"
          },
          "contentLength": {
            "type": "number",
            "description": "Length of the HTML content"
          },
          "success": {
            "type": "boolean",
            "description": "Whether the conversion was successful"
          },
          "error": {
            "type": "string",
            "description": "Error message if conversion failed"
          }
        },
        "required": ["html", "contentLength", "success"],
        "additionalProperties": false
      }
    }
  ]
}
```

## License

This project is licensed under the [MIT](./LICENSE) License.