MindMeister MCP Server
MindMeister MCP 서버
Claude를 MindMeister API v2에 연결하여 Claude Desktop 또는 Claude Code에서 직접 AI 기반 마인드 맵 관리를 가능하게 하는 MCP (Model Context Protocol) 서버입니다.
MCP란 무엇인가요?
MCP는 Claude와 같은 AI 어시스턴트가 외부 도구 및 서비스와 상호 작용할 수 있도록 하는 개방형 표준입니다. 이 서버는 MindMeister 작업을 Claude가 대화 중에 호출할 수 있는 MCP 도구로 노출합니다.
사용 가능한 도구
도구 | 설명 |
| 인증된 사용자의 프로필 가져오기 |
| 특정 맵의 메타데이터 가져오기 (JSON) |
| 페이지네이션을 사용하여 맵 목록 가져오기 |
| 맵을 PDF, DOCX, PPTX, RTF 또는 이미지로 내보내기 |
| 맵의 이미지/썸네일 가져오기 |
| 맵에 대한 공유 권한 목록 가져오기 |
| 사용자 기본 설정 가져오기 |
사전 요구 사항
Python 3.10 이상
API 액세스 권한이 있는 MindMeister 계정
MindMeister에서 발급받은 개인 액세스 토큰(Personal Access Token)
API 토큰 발급 방법
MindMeister에 로그인합니다.
계정(Account) → API → **개인 액세스 토큰(Personal Access Tokens)**으로 이동합니다.
필요한 범위(scope)를 선택하여 새 토큰을 생성합니다:
mindmeister.readonly— 읽기 전용 액세스mindmeister— 전체 액세스
토큰을 복사합니다.
설치
옵션 1: 소스에서 설치
git clone https://github.com/conexaoarteiro/mindmeister-mcp.git
cd mindmeister-mcp
pip install -e .옵션 2: GitHub에서 직접 설치
pip install git+https://github.com/conexaoarteiro/mindmeister-mcp.git옵션 3: 수동 설정
git clone https://github.com/conexaoarteiro/mindmeister-mcp.git
cd mindmeister-mcp
pip install -r requirements.txt구성
MindMeister API 토큰을 환경 변수로 설정합니다:
export MINDMEISTER_API_TOKEN="your_personal_access_token_here"또는 .env.example을 기반으로 .env 파일을 생성합니다:
cp .env.example .env
# Edit .env and add your tokenClaude Desktop에서 사용하기
claude_desktop_config.json에 다음을 추가합니다:
{
"mcpServers": {
"mindmeister": {
"command": "python",
"args": ["-m", "mindmeister_mcp.server"],
"env": {
"MINDMEISTER_API_TOKEN": "your_personal_access_token_here"
}
}
}
}pip install -e .로 설치한 경우 다음을 사용할 수도 있습니다:
{
"mcpServers": {
"mindmeister": {
"command": "mindmeister-mcp",
"env": {
"MINDMEISTER_API_TOKEN": "your_personal_access_token_here"
}
}
}
}구성 파일 위치
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Code에서 사용하기
claude mcp add mindmeister -- python -m mindmeister_mcp.server그런 다음 Claude Code를 실행하기 전에 환경 변수를 설정합니다:
export MINDMEISTER_API_TOKEN="your_token"
claude대화 예시
구성이 완료되면 Claude에게 다음과 같이 요청할 수 있습니다:
"내 MindMeister 맵 보여줘"
"맵 1234567890의 세부 정보 가져와"
"맵 1234567890을 PDF로 내보내"
"맵 1234567890에 누가 액세스할 수 있어?"
"내 MindMeister 계정 정보가 뭐야?"
개발
# 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프로젝트 구조
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 modelsAPI 지원 범위
이 서버는 MindMeister API v2(https://www.mindmeister.com/api/v2/)를 대상으로 합니다. 다음 엔드포인트가 지원됩니다:
GET /users/me— 사용자 프로필GET /maps/{id}— 맵 메타데이터GET /maps— 맵 목록GET /maps/{id}(Accept 헤더 포함) — PDF/DOCX/PPTX/RTF/이미지로 내보내기GET /map_images/{id}— 맵 이미지GET /maps/{id}/rights— 맵 권한GET /users/me/preferences— 사용자 기본 설정
라이선스
MIT
Available Tools
7 toolsmindmeister_export_mapARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_mapARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_imageARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_preferencesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_userARead-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.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_mapsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_rightsARead-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.)
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
mindmeister_export_map - First observed
mindmeister_get_map - First observed
mindmeister_get_map_image - First observed
mindmeister_get_preferences - First observed
mindmeister_get_user - First observed
mindmeister_list_maps - First observed
mindmeister_list_rights
TDQS
Scored across 7 tools
Each tool targets a distinct aspect of MindMeister: maps, user, preferences, image, export, rights. No overlap in purpose, agents can clearly differentiate.
All tools follow the mindmeister_verb_noun pattern, using snake_case consistently. The naming is uniform and predictable.
Seven tools is a well-scoped set for a mind map service, covering listing, retrieving, exporting, user info, and permissions without unnecessary bloat.
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.
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.