Skip to main content
Glama
metacoma

freeplane-mcp

by metacoma

freeplane-mcp

AI 에이전트(예: Claude Desktop, Cursor, opencode)가 freeplane_plugin_grpc gRPC 플러그인을 통해 실행 중인 Freeplane 마인드 맵을 읽고 수정할 수 있게 해주는 MCP 서버입니다.

일회성 “Markdown → image” 방식의 MCP 서버와 달리, 변경 사항은 현재 열려 있는 Freeplane 맵에 실시간으로 적용됩니다.

아키텍처

MCP client (Claude / Cursor / opencode)
        │
        │ stdio or Streamable HTTP (MCP SDK)
        ▼
freeplane-mcp (Python, FastMCP)
        │
        │ gRPC (grpcio)
        ▼
Freeplane + org.freeplane.plugin.grpc
(port 50051)

Related MCP server: xmind-mcp

요구 사항

  • Python 3.10+

  • gRPC 플러그인이 설치된 상태로 실행 중인 Freeplane

  • 기본 Freeplane gRPC 포트: 50051

설치

cd ~/spaces/freeplane-mcp
python -m venv .venv
.venv/bin/pip install -e .

실행

stdio

Claude Desktop, Cursor, opencode 등에서 사용하는 기본 전송 방식:

.venv/bin/freeplane-mcp

Streamable HTTP

.venv/bin/freeplane-mcp --transport http --port 8000

설정

환경 변수

CLI 옵션

기본값

FREEPLANE_GRPC_HOST

--grpc-host

127.0.0.1

FREEPLANE_GRPC_PORT

--grpc-port

50051

FREEPLANE_GRPC_TIMEOUT

10

FREEPLANE_MCP_TRANSPORT

--transport

stdio

FREEPLANE_MCP_HOST

--host

127.0.0.1

FREEPLANE_MCP_PORT

--port

8000

MCP 도구

export_map

현재 맵을 정규 JSON으로 내보냅니다.

지원되는 필드는 다음과 같습니다:

text, id, children, note, detail, link, tags, icons, attributes, background_color, folded, relationships.

import_map

정규 JSON에서 마인드 맵을 가져옵니다.

지원되는 insert_mode 값:

  • root — 맵 루트 아래에 삽입합니다. 기본값

  • nodeinsert_node_id 아래에 삽입합니다

  • selected — 현재 선택된 노드 아래에 삽입합니다

테스트

현재 맵 내보내기:

.venv/bin/python -c "
import sys; sys.path.insert(0, '.')
from freeplane_mcp.freeplane_grpc import FreeplaneGrpcClient
c = FreeplaneGrpcClient()
print(c.export_map())
"

맵을 가져온 후 다시 내보내기:

.venv/bin/python -c "
import sys; sys.path.insert(0, '.')
from freeplane_mcp.freeplane_grpc import FreeplaneGrpcClient
c = FreeplaneGrpcClient()
c.import_map('{\"text\": \"Hello from MCP\", \"children\": [{\"text\": \"child 1\"}]}')
print(c.export_map())
"

MCP 클라이언트 설정

stdio 구성 예시:

{
  "mcpServers": {
    "freeplane": {
      "command": "/home/bebebeka/spaces/freeplane-mcp/.venv/bin/freeplane-mcp"
    }
  }
}

HTTP 구성:

{
  "mcpServers": {
    "freeplane": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

JSON 형식 정보

정규 JSON 형식은 플러그인의 JsonHelper.java에 정의되어 있습니다.

_fp_import_root_node를 지원합니다:

{"_fp_import_root_node": "root", "mindmap": {...}}

맵 루트 아래에 삽입됩니다.

{"_fp_import_root_node": "ID_...", "mindmap": {...}}

특정 노드 아래에 삽입됩니다.

래퍼 없이 삽입하면 맵은 현재 선택된 노드 아래에 삽입됩니다.

이전 형식도 지원됩니다:

{"node text": {"child node": "note"}}

라이선스

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Shared long-term memory vault for AI agents with 20 MCP tools.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

View all 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/metacoma/mcp-freeplane'

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