Skip to main content
Glama

JSON キャンバス MCP サーバー

モデルコンテキストプロトコル(MCP)サーバー実装。公式仕様に従ってJSON Canvasファイルを操作するためのツールを提供します。このサーバーは、無限のCanvasデータ構造の作成、変更、検証を可能にします。

概要

JSON Canvas MCP サーバーは、JSON Canvas 1.0 仕様の完全な実装を提供し、次のことを可能にします。

  • 無限のキャンバスデータの作成と操作

  • すべてのノード タイプ (テキスト、ファイル、リンク、グループ) をサポート

  • スタイルとラベルによるエッジ接続

  • 仕様に対する検証

  • 設定可能な出力パス

Related MCP server: mcp-server-code-assist

コンポーネント

リソース

サーバーは次のリソースを公開します。

  • canvas://schema : キャンバスファイルを検証するための JSON スキーマ

  • canvas://examples : さまざまな機能を示すサンプルキャンバスファイル

  • canvas://templates : 新しいキャンバスを作成するためのテンプレート

ツール

ノード操作

  • ノード作成

    • サポートされている任意のタイプの新しいノードを作成します

    • 入力:

      • type (文字列): ノードタイプ ("text", "file", "link", "group")

      • properties (オブジェクト):ノード固有のプロパティ

        • 共通: idxywidthheightcolor

        • タイプ固有: textfileurlなど。

    • 戻り値: 作成されたノードオブジェクト

  • ノードの更新

    • 既存のノードのプロパティを更新する

    • 入力:

      • id (文字列): 更新するノードID

      • properties (オブジェクト): 更新するプロパティ

    • 戻り値: 更新されたノードオブジェクト

  • ノードの削除

    • ノードとそれに接続されたエッジを削除する

    • 入力:

      • id (文字列): 削除するノードID

    • 戻り値: 成功確認

エッジオペレーション

  • エッジを作成する

    • ノード間に新しいエッジを作成する

    • 入力:

      • id (文字列): 一意のエッジ識別子

      • fromNode (文字列): ソースノードID

      • toNode (文字列): ターゲットノードID

      • fromSide (オプションの文字列): 開始側 ("top", "right", "bottom", "left")

      • toSide (オプションの文字列): 終了側

      • color (オプションの文字列): エッジの色

      • label (オプションの文字列):エッジラベル

    • 戻り値: 作成されたエッジオブジェクト

  • 更新エッジ

    • 既存のエッジのプロパティを更新する

    • 入力:

      • id (文字列): 更新するエッジID

      • properties (オブジェクト): 更新するプロパティ

    • 戻り値: 更新されたエッジオブジェクト

  • 削除エッジ

    • エッジを削除する

    • 入力:

      • id (文字列): 削除するエッジID

    • 戻り値: 成功確認

キャンバスオペレーション

  • 検証キャンバス

    • 仕様に基づいてキャンバスを検証する

    • 入力:

      • canvas (オブジェクト):検証するキャンバスデータ

    • 戻り値: エラーを含む検証結果

  • エクスポートキャンバス

    • キャンバスをさまざまな形式でエクスポートする

    • 入力:

      • format (文字列): ターゲット形式 ("json", "svg", "png")

      • canvas (オブジェクト): エクスポートするキャンバスデータ

    • 戻り値: 要求された形式でエクスポートされたキャンバス

Claude Desktopでの使用

ドッカー

これをclaude_desktop_config.jsonに追加します:

{
  "mcpServers": {
    "jsoncanvas": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "canvas-data:/data",
        "mcp/jsoncanvas"
      ],
      "env": {
        "OUTPUT_PATH": "/data/output"
      }
    }
  }
}

紫外線

{
  "mcpServers": {
    "jsoncanvas": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/jsoncanvas",
        "run",
        "mcp-server-jsoncanvas"
      ],
      "env": {
        "OUTPUT_PATH": "./output"
      }
    }
  }
}

構成

サーバーは環境変数を使用して設定できます。

  • OUTPUT_PATH : キャンバスファイルが保存されるディレクトリ(デフォルト: "./output")

  • FORMAT : キャンバスファイルのデフォルトの出力形式 (デフォルト: "json")

建物

Dockerビルド

docker build -t mcp/jsoncanvas .

ローカルビルド

# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create virtual environment and install dependencies
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e .

# Run tests
pytest

使用例

キャンバスを作成する

from jsoncanvas import Canvas, TextNode, Edge

# Create nodes
title = TextNode(
    id="title",
    x=100,
    y=100,
    width=400,
    height=100,
    text="# Hello Canvas\n\nThis is a demonstration.",
    color="#4285F4"
)

info = TextNode(
    id="info",
    x=600,
    y=100,
    width=300,
    height=100,
    text="More information here",
    color="2"  # Using preset color
)

# Create canvas
canvas = Canvas()
canvas.add_node(title)
canvas.add_node(info)

# Connect nodes
edge = Edge(
    id="edge1",
    from_node="title",
    to_node="info",
    from_side="right",
    to_side="left",
    label="Connection"
)
canvas.add_edge(edge)

# Save canvas
canvas.save("example.canvas")

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

-
security - not tested
A
license - permissive license
-
quality - not tested

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/Cam10001110101/mcp-server-obsidian-jsoncanvas'

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