JSON Canvas MCP Server

by Cam10001110101
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports exporting canvas data to SVG format through the export_canvas tool, allowing visualization of JSON Canvas content.

Servidor MCP de lienzo JSON

Una implementación de servidor del Protocolo de Contexto de Modelo (MCP) que proporciona herramientas para trabajar con archivos JSON Canvas según la especificación oficial . Este servidor permite crear, modificar y validar estructuras de datos Canvas infinitas.

Descripción general

El servidor JSON Canvas MCP proporciona una implementación completa de la especificación JSON Canvas 1.0, lo que permite:

  • Creación y manipulación de datos de lienzo infinitos
  • Soporte para todos los tipos de nodos (texto, archivo, enlace, grupo)
  • Conexiones de borde con estilo y etiquetas
  • Validación contra la especificación
  • Rutas de salida configurables

Componentes

Recursos

El servidor expone los siguientes recursos:

  • canvas://schema : Esquema JSON para validar archivos de lienzo
  • canvas://examples : Archivos de lienzo de ejemplo que demuestran diferentes funciones
  • canvas://templates : Plantillas para crear nuevos lienzos

Herramientas

Operaciones de nodo

  • crear_nodo
    • Crea un nuevo nodo de cualquier tipo compatible
    • Aporte:
      • type (cadena): Tipo de nodo ("texto", "archivo", "enlace", "grupo")
      • properties (objeto): Propiedades específicas del nodo
        • Común: id , x , y , width , height , color
        • Específico del tipo: text , file , url , etc.
    • Devuelve: objeto de nodo creado
  • nodo_de_actualización
    • Actualizar las propiedades de un nodo existente
    • Aporte:
      • id (cadena): ID del nodo a actualizar
      • properties (objeto): Propiedades a actualizar
    • Devuelve: objeto de nodo actualizado
  • eliminar_nodo
    • Eliminar un nodo y sus bordes conectados
    • Aporte:
      • id (cadena): ID del nodo a eliminar
    • Devoluciones: Confirmación de éxito

Operaciones de borde

  • crear_borde
    • Crear un nuevo borde entre nodos
    • Aporte:
      • id (cadena): identificador de borde único
      • fromNode (cadena): ID del nodo de origen
      • toNode (cadena): ID del nodo de destino
      • fromSide (cadena opcional): Lado de inicio ("arriba", "derecha", "abajo", "izquierda")
      • toSide (cadena opcional): lado final
      • color (cadena opcional): color del borde
      • label (cadena opcional): etiqueta de borde
    • Devuelve: objeto de borde creado
  • actualizar_borde
    • Actualizar las propiedades de un borde existente
    • Aporte:
      • id (cadena): ID de borde que se actualizará
      • properties (objeto): Propiedades a actualizar
    • Devoluciones: objeto de borde actualizado
  • eliminar_borde
    • Quitar un borde
    • Aporte:
      • id (cadena): ID del borde que se eliminará
    • Devoluciones: Confirmación de éxito

Operaciones de Canvas

  • validar_lienzo
    • Validar un lienzo contra la especificación
    • Aporte:
      • canvas (objeto): Datos del canvas a validar
    • Devuelve: Resultados de validación con cualquier error
  • lienzo_de_exportación
    • Exportar lienzo a diferentes formatos
    • Aporte:
      • format (cadena): Formato de destino ("json", "svg", "png")
      • canvas (objeto): Datos de Canvas para exportar
    • Devoluciones: Lienzo exportado en el formato solicitado

Uso con Claude Desktop

Estibador

Agregue esto a su claude_desktop_config.json :

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

UV

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

Configuración

El servidor se puede configurar mediante variables de entorno:

  • OUTPUT_PATH : Directorio donde se guardarán los archivos de lienzo (predeterminado: "./output")
  • FORMAT : Formato de salida predeterminado para archivos de lienzo (predeterminado: "json")

Edificio

Compilación de Docker

docker build -t mcp/jsoncanvas .

Construcción local

# 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

Ejemplo de uso

Creando un lienzo

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")

Licencia

Este servidor MCP cuenta con la licencia MIT. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.

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

Un servidor de protocolo de contexto de modelo que permite crear, modificar y validar estructuras de datos de lienzo infinitas según la especificación JSON Canvas 1.0.

  1. Overview
    1. Components
      1. Resources
      2. Tools
    2. Usage with Claude Desktop
      1. Docker
      2. UV
    3. Configuration
      1. Building
        1. Docker Build
        2. Local Build
      2. Example Usage
        1. Creating a Canvas
      3. License
        ID: ajj64p9c3i