Skip to main content
Glama
conexaoarteiro

MindMeister MCP Server

MindMeister MCP Server

An MCP (Model Context Protocol) server that connects Claude to the MindMeister API v2, enabling AI-powered mind map management directly from Claude Desktop or Claude Code.

What is MCP?

MCP is an open standard that lets AI assistants like Claude interact with external tools and services. This server exposes MindMeister operations as MCP tools that Claude can call during conversations.

Available Tools

Tool

Description

mindmeister_get_user

Get the authenticated user's profile

mindmeister_get_map

Get metadata for a specific map (JSON)

mindmeister_list_maps

List maps with pagination

mindmeister_export_map

Export a map as PDF, DOCX, PPTX, RTF, or image

mindmeister_get_map_image

Get the image/thumbnail of a map

mindmeister_list_rights

List sharing permissions for a map

mindmeister_get_preferences

Get user preferences

Prerequisites

  • Python 3.10+

  • A MindMeister account with API access

  • A Personal Access Token from MindMeister

Getting Your API Token

  1. Log in to MindMeister

  2. Go to AccountAPIPersonal Access Tokens

  3. Create a new token with the scopes you need:

    • mindmeister.readonly — for read-only access

    • mindmeister — for full access

  4. Copy the token

Installation

Option 1: Install from source

git clone https://github.com/conexaoarteiro/mindmeister-mcp.git
cd mindmeister-mcp
pip install -e .

Option 2: Install directly from GitHub

pip install git+https://github.com/conexaoarteiro/mindmeister-mcp.git

Option 3: Manual setup

git clone https://github.com/conexaoarteiro/mindmeister-mcp.git
cd mindmeister-mcp
pip install -r requirements.txt

Configuration

Set your MindMeister API token as an environment variable:

export MINDMEISTER_API_TOKEN="your_personal_access_token_here"

Or create a .env file based on .env.example:

cp .env.example .env
# Edit .env and add your token

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "mindmeister": {
      "command": "python",
      "args": ["-m", "mindmeister_mcp.server"],
      "env": {
        "MINDMEISTER_API_TOKEN": "your_personal_access_token_here"
      }
    }
  }
}

If you installed with pip install -e ., you can also use:

{
  "mcpServers": {
    "mindmeister": {
      "command": "mindmeister-mcp",
      "env": {
        "MINDMEISTER_API_TOKEN": "your_personal_access_token_here"
      }
    }
  }
}

Config file location

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Usage with Claude Code

claude mcp add mindmeister -- python -m mindmeister_mcp.server

Then set the environment variable before running Claude Code:

export MINDMEISTER_API_TOKEN="your_token"
claude

Example Conversations

Once configured, you can ask Claude things like:

  • "Show me my MindMeister maps"

  • "Get the details of map 1234567890"

  • "Export map 1234567890 as PDF"

  • "Who has access to map 1234567890?"

  • "What are my MindMeister account details?"

Development

# Clone and install in dev mode
git clone https://github.com/conexaoarteiro/mindmeister-mcp.git
cd mindmeister-mcp
pip install -e ".[dev]"

# Run the server directly
python -m mindmeister_mcp.server

Project Structure

mindmeister-mcp/
├── README.md
├── pyproject.toml
├── requirements.txt
├── .env.example
├── .gitignore
└── src/
    └── mindmeister_mcp/
        ├── __init__.py
        ├── server.py      # FastMCP server with all tools
        ├── client.py       # Async HTTP client for MindMeister API v2
        └── models.py       # Pydantic input validation models

API Coverage

This server targets MindMeister API v2 (https://www.mindmeister.com/api/v2/). The following endpoints are covered:

  • GET /users/me — user profile

  • GET /maps/{id} — map metadata

  • GET /maps — list maps

  • GET /maps/{id} (with Accept header) — export as PDF/DOCX/PPTX/RTF/image

  • GET /map_images/{id} — map image

  • GET /maps/{id}/rights — map permissions

  • GET /users/me/preferences — user preferences

License

MIT

Available Tools

7 tools
mindmeister_export_mapA
Read-only

Export a MindMeister map to a specific file format.

Supported formats: pdf, docx, pptx, rtf, image, presentation. The export is fetched via GET /maps/{id} with an appropriate Accept header. Returns the binary content as a base64 string so it can be saved locally.

Args: params: ExportMapInput with map_id (str) and format (ExportFormat).

Returns: str: JSON with keys "format", "filename", "content_base64", and "size_bytes". The base64 payload can be decoded and saved as a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details that the export is fetched via GET with an appropriate Accept header and returns binary content as a base64 string. This goes beyond annotations (readOnlyHint: true) to explain the actual request behavior and response format, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with two paragraphs: an overview and a detailed docstring-style section. It is succinct yet covers the essential aspects without unnecessary words, though it could be slightly more concise by removing the redundant listing of formats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (not shown), but the description still provides the complete return structure with keys (format, filename, content_base64, size_bytes). It sufficiently explains the base64 encoding and implies the file save process. No gaps are evident for this straightforward export operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema's top-level parameter 'params' lacks a description, but the description compensates by specifying the nested fields (map_id, format) and the list of formats. It adds clarity to the structure, though it largely repeats information from the schema's $defs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports a MindMeister map to a specific file format and lists supported formats (pdf, docx, pptx, rtf, image, presentation). It distinguishes from sibling tools like mindmeister_get_map (returns JSON) and mindmeister_get_map_image (returns image), making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description lists the supported formats and implies use for file exports, it lacks explicit guidance on when to use this tool versus alternatives. No direct mention of when not to use it or comparisons with sibling tools like mindmeister_get_map or mindmeister_get_map_image is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmeister_get_mapA
Read-onlyIdempotent

Get metadata for a specific MindMeister map.

Retrieves the full JSON representation of a map including its title, nodes, connections, and settings via GET /maps/{id}.

Args: params: GetMapInput with map_id (str).

Returns: str: JSON with the map's complete metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description confirms it's a read operation (GET) and returns metadata, but adds no additional behavioral context such as error handling or permission requirements. Since annotations cover the safety profile, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences plus an Args/Returns block. It front-loads the purpose and uses minimal but sufficient words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values need not be explained in detail. The description mentions the HTTP method, endpoint, and that it returns a JSON string. Sibling tools are listed, and annotations provide safety info. It lacks mention of error handling for invalid map_ids, but is otherwise complete for a simple retrieval operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage at the top level (the 'params' property lacks description), but the nested map_id has a description. The description explains the parameter by saying 'params: GetMapInput with map_id (str).' This adds some clarity beyond the bare schema, but does not fully compensate for the lack of top-level description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get metadata for a specific MindMeister map' and details that it retrieves full JSON representation including title, nodes, connections, and settings. This distinctly separates it from siblings like get_map_image or list_maps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a single map by ID via GET /maps/{id}, but lacks explicit guidance on when to use this over alternatives or prerequisites. It is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmeister_get_map_imageA
Read-onlyIdempotent

Get the image/thumbnail for a MindMeister map.

Retrieves the map image via GET /map_images/{id}. Returns the image as base64-encoded data along with metadata.

Args: params: GetMapImageInput with map_id (str).

Returns: str: JSON with "map_id", "content_type", "content_base64", and "size_bytes".

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by specifying the HTTP method (GET) and the return format (base64-encoded data with metadata), which goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: it opens with the core purpose, then provides implementation details and return format. Every sentence is meaningful, with no redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, clear annotations, and an output schema), the description covers all necessary aspects: purpose, behavior, parameter, and return value. No critical information is missing for proper invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description restates the parameter 'params: GetMapImageInput with map_id (str)', but the input schema already documents 'map_id' with description 'The MindMeister map ID'. Thus, the description adds no new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the image/thumbnail for a MindMeister map.' It provides a specific verb and resource, and the context with sibling tools (e.g., mindmeister_get_map) helps distinguish it as the image-specific retrieval tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like mindmeister_get_map or mindmeister_export_map. The agent must infer based on the tool name and purpose, but no when-to-use or when-not-to-use instructions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmeister_get_preferencesA
Read-onlyIdempotent

Get the authenticated user's MindMeister preferences.

Retrieves settings and preferences via GET /users/me/preferences (or equivalent endpoint).

Returns: str: JSON with user preference key-value pairs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds the specific endpoint (GET /users/me/preferences) and return format (JSON key-value pairs), enhancing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding value: purpose, endpoint, return type. Front-loaded and no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fairly complete for a simple zero-parameter tool with output schema. Could mention authentication context more explicitly, but annotations cover safety. Sibling tools do not overlap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist. Baseline score of 4 applies per guidelines. Description adds context about the endpoint implying no parameters needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves the authenticated user's preferences, using a specific verb and resource. It is distinct from sibling tools like mindmeister_get_map or mindmeister_export_map.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The purpose is clear, but the description does not mention when not to use it or specify any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmeister_get_userA
Read-onlyIdempotent

Get the authenticated MindMeister user profile.

Returns the current user's id, name, email, and account details from GET /users/me.

Returns: str: JSON with user profile fields (id, name, email, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by specifying the exact API endpoint (GET /users/me) and the return format (JSON with user profile fields), which complements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with only four lines, front-loading the action and resource. Every sentence provides necessary information, including the endpoint and return type, with no redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, straightforward get request) and the presence of an output schema, the description fully covers the tool's behavior. It mentions the endpoint and return fields, which is sufficient for an agent to understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters in the input schema, so the description does not need to explain any. With 100% schema coverage and zero parameters, the baseline score of 4 applies. The description usefully notes the return fields even though it's not parameter-related.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'authenticated MindMeister user profile', listing specific fields such as id, name, email, and account details. It uniquely identifies this tool among siblings that focus on maps, images, and preferences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving the current user's profile with no parameters needed. It does not explicitly specify when not to use it, but the context of zero parameters and the nature of the tool make it clear. No alternatives are needed as no sibling tool provides user profile information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmeister_list_mapsA
Read-onlyIdempotent

List mind maps belonging to the authenticated user.

Supports pagination via limit/offset. The MindMeister API v2 may not expose a dedicated list-all endpoint; this tool attempts GET /maps and returns whatever the API provides. If the endpoint is not available, an appropriate error is returned.

Args: params: ListMapsInput with optional limit (int, 1-50) and offset (int, >=0).

Returns: str: JSON array of map objects with pagination metadata, or an error message if the endpoint is unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds details about attempting GET /maps, returning API response, and handling missing endpoints, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, front-loaded purpose, then pagination and API quirks. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, parameters, return type (JSON array with metadata/error), and endpoint availability issue. With output schema present, description adequately complements it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has high description coverage (limit, offset explained). Description repeats these but adds context about pagination limits and API behavior. Baseline 3 with moderate added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List mind maps belonging to the authenticated user,' with a specific verb and resource. It distinguishes from siblings like mindmeister_export_map and mindmeister_get_map by focusing on listing all maps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides pagination instructions and notes the API may not have a dedicated list-all endpoint, including error handling. Lacks explicit when-not but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmeister_list_rightsA
Read-onlyIdempotent

List sharing permissions for a MindMeister map.

Returns all collaborators and their access levels for the given map via GET /maps/{id}/rights.

Args: params: ListRightsInput with map_id (str).

Returns: str: JSON array of permission objects (user, role, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds mention of the HTTP method (GET) and return format (JSON array), but no additional behavioral traits beyond what annotations convey. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, with two sentences plus an Args/Returns section. It front-loads the purpose and provides necessary details without unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema exists, good annotations), the description fully covers what the tool does, the input required, and the output format. No gaps are evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description minimally mentions 'params: ListRightsInput with map_id (str)', which is redundant with the schema's own description for map_id. Despite context signals indicating 0% schema description coverage, the schema does provide a description for the map_id property, so the description adds little value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'sharing permissions for a MindMeister map'. It distinguishes itself from sibling tools like mindmeister_get_map or mindmeister_list_maps by specifying it is about permissions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving all collaborators and their access levels, which is clear from context. However, it does not explicitly state when not to use it or mention alternatives, though sibling names are distinct enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct aspect of MindMeister: maps, user, preferences, image, export, rights. No overlap in purpose, agents can clearly differentiate.

Naming Consistency5/5

All tools follow the mindmeister_verb_noun pattern, using snake_case consistently. The naming is uniform and predictable.

Tool Count5/5

Seven tools is a well-scoped set for a mind map service, covering listing, retrieving, exporting, user info, and permissions without unnecessary bloat.

Completeness2/5

The server lacks create, update, and delete operations for maps, which are essential for full lifecycle management. The tool surface is read-only plus export, leaving agents unable to perform core editing tasks.

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

Latest Blog Posts

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/conexaoarteiro/mindmeister-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server