JSON Canvas MCP 服务器是一个实现了 Model Context Protocol (MCP) 协议的服务器,它依据 官方规范,提供了用于处理 JSON Canvas 文件的工具。该服务器支持创建、修改和验证无限画布数据结构,为用户在画布操作方面提供了强大的功能支持。
使用 Git 克隆此项目:
git clone https://github.com/your-username/jsoncanvas.git
cd jsoncanvas
运行以下命令安装所需依赖项:
pip install -r requirements.txt
安装完成后,运行以下命令启动服务器:
python3 -m jsoncanvas.server
JSON Canvas MCP 服务器完整实现了 JSON Canvas 1.0 规范,具备以下强大功能:
设置以下环境变量以自定义服务器行为:
JSONCANVAS_PORT:指定服务器监听的端口,默认为 3000。JSONCANVAS_HOST:指定服务器绑定的主机地址,默认为 localhost。JSONCANVAS_LOG_LEVEL:指定日志级别,可选值有 debug, info, warning, error,默认为 info。可以在项目根目录下创建一个 config.json 文件:
{
"port": 3001,
"host": "127.0.0.1",
"log_level": "debug"
}
python3 -m jsoncanvas.example
from jsoncanvas import Canvas, TextNode, Edge
# 创建节点
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" # 使用预设颜色
)
# 创建画布
canvas = Canvas()
canvas.add_node(title)
canvas.add_node(info)
# 连接节点
edge = Edge(
id="edge1",
from_node="title",
to_node="info",
from_side="right",
to_side="left",
label="Connection"
)
canvas.add_edge(edge)
# 保存画布
canvas.save("example.canvas")
from jsoncanvas import Canvas, TextNode, Edge
# 创建节点
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" # 使用预设颜色
)
# 创建画布
canvas = Canvas()
canvas.add_node(title)
canvas.add_node(info)
# 连接节点
edge = Edge(
id="edge1",
from_node="title",
to_node="info",
from_side="right",
to_side="left",
label="Connection"
)
canvas.add_edge(edge)
# 保存画布
canvas.save("example.canvas")
服务器公开了以下资源:
canvas://schema:用于验证画布文件的 JSON 模式。canvas://examples:演示不同功能的示例画布文件。canvas://templates:创建新画布的模板。create_node
type (字符串):节点类型 ("text", "file", "link", "group")。properties (对象):节点特定属性。
id, x, y, width, height, color。text, file, url 等。update_node
id (字符串):要更新的节点 ID。properties (对象):要更新的属性。delete_node
id (字符串):要删除的节点 ID。create_edge
id (字符串):边的唯一标识符。from_node (字符串):起始节点的 ID。to_node (字符串):目标节点的 ID。label (字符串,可选):边的标签。color (字符串,可选):边的颜色,默认为 "#000000"。update_edge
id (字符串):要更新的边 ID。properties (对象):要更新的属性。delete_edge
id (字符串):要删除的边 ID。此项目采用 MIT 许可证。详见 LICENSE 文件。