JSON Canvas MCP Server
一个模型上下文协议服务器,它能够根据 JSON Canvas 1.0 规范创建、修改和验证无限画布数据结构。
README
JSON Canvas MCP 服务器
一个模型上下文协议 (MCP) 服务器实现,它提供了根据 官方规范 处理 JSON Canvas 文件的工具。此服务器支持创建、修改和验证无限画布数据结构。
概述
JSON Canvas MCP 服务器提供了 JSON Canvas 1.0 规范的完整实现,支持:
- 创建和操作无限画布数据
- 支持所有节点类型(文本、文件、链接、组)
- 具有样式和标签的边连接
- 针对规范进行验证
- 可配置的输出路径
组件
资源
服务器公开以下资源:
canvas://schema
: 用于验证画布文件的 JSON Schemacanvas://examples
: 演示不同功能的示例画布文件canvas://templates
: 用于创建新画布的模板
工具
节点操作
-
create_node
- 创建任何支持类型的新节点
- 输入:
type
(string): 节点类型 ("text", "file", "link", "group")properties
(object): 节点特定属性- 通用:
id
,x
,y
,width
,height
,color
- 类型特定:
text
,file
,url
等
- 通用:
- 返回:创建的节点对象
-
update_node
- 更新现有节点的属性
- 输入:
id
(string): 要更新的节点 IDproperties
(object): 要更新的属性
- 返回:更新的节点对象
-
delete_node
- 删除节点及其连接的边
- 输入:
id
(string): 要删除的节点 ID
- 返回:成功确认
边操作
-
create_edge
- 在节点之间创建新边
- 输入:
id
(string): 唯一的边标识符fromNode
(string): 源节点 IDtoNode
(string): 目标节点 IDfromSide
(optional string): 起始边 ("top", "right", "bottom", "left")toSide
(optional string): 结束边color
(optional string): 边颜色label
(optional string): 边标签
- 返回:创建的边对象
-
update_edge
- 更新现有边的属性
- 输入:
id
(string): 要更新的边 IDproperties
(object): 要更新的属性
- 返回:更新的边对象
-
delete_edge
- 删除边
- 输入:
id
(string): 要删除的边 ID
- 返回:成功确认
画布操作
-
validate_canvas
- 针对规范验证画布
- 输入:
canvas
(object): 要验证的画布数据
- 返回:包含任何错误的验证结果
-
export_canvas
- 将画布导出为不同的格式
- 输入:
format
(string): 目标格式 ("json", "svg", "png")canvas
(object): 要导出的画布数据
- 返回:以请求格式导出的画布
与 Claude Desktop 一起使用
Docker
将此添加到您的 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"
}
}
}
}
配置
可以使用环境变量配置服务器:
OUTPUT_PATH
: 将保存画布文件的目录(默认值:"./output")FORMAT
: 画布文件的默认输出格式(默认值:"json")
构建
Docker 构建
docker build -t mcp/jsoncanvas .
本地构建
# 如果尚未安装,请安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建虚拟环境并安装依赖项
uv venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
uv pip install -e .
# 运行测试
pytest
使用示例
创建画布
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")
许可证
此 MCP 服务器是在 MIT 许可证下获得许可的。 这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。 有关更多详细信息,请参阅项目存储库中的 LICENSE 文件。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Notion API MCP Server
使用 Notion API 实现高级待办事项列表管理和内容组织,支持创建数据库、动态筛选和协作任务跟踪等功能。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。