Penpot MCP 是一个革命性的模型上下文协议(MCP)服务器,它弥合了AI语言模型与Penpot之间的差距,Penpot是一个开源的设计和原型平台。这种集成使得像Claude这样的AI助手(在Claude桌面和Cursor IDE中)能够理解、分析并以编程方式与你的设计文件互动。
观看我们的演示视频,了解Penpot MCP的实际应用:
pip install penpot-mcp
# 直接安装(已发布到PyPI)
uvx penpot-mcp
# 本地开发时使用uvx
uvx --from . penpot-mcp
# 或在项目中安装
uv add penpot-mcp
# 克隆仓库
git clone https://github.com/montevive/penpot-mcp.git
cd penpot-mcp
# 使用uv(推荐)
uv sync
uv run penpot-mcp
# 或使用传统pip
python -m venv .venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate
pip install -e .
根据env.example创建.env文件,并填写你的Penpot凭证:
PENPOT_API_URL=https://design.penpot.app/api
PENPOT_USERNAME=your_penpot_username
PENPOT_PASSWORD=your_penpot_password
PORT=5000
DEBUG=true
⚠️ CloudFlare保护通知:Penpot云站点(penpot.app)使用CloudFlare保护,可能会偶尔阻止API请求。如果你遇到身份验证错误或被阻止的请求:
- 打开你的网络浏览器并导航至https://design.penpot.app
- 登录你的Penpot账户
- 如果提示,请完成CloudFlare的人类验证挑战
- 验证后,API请求应该在一段时间内正常工作
# 使用uvx(已发布到PyPI)
uvx penpot-mcp
# 使用uvx进行本地开发
uvx --from . penpot-mcp
# 使用uv在项目中运行(推荐用于本地开发)
uv run penpot-mcp
# 使用入口点(如果已安装)
penpot-mcp
# 或直接使用模块
python -m penpot_mcp.server.mcp_server
要调试MCP服务器,你可以:
.env文件中启用调试模式,设置DEBUG=true# 测试API连接并输出调试信息
python -m penpot_mcp.api.penpot_api --debug list-projects
# 获取特定项目的详细信息
python -m penpot_mcp.api.penpot_api --debug get-project --id YOUR_PROJECT_ID
# 列出项目中的文件
python -m penpot_mcp.api.penpot_api --debug list-files --project-id YOUR_PROJECT_ID
# 获取文件详细信息
python -m penpot_mcp.api.penpot_api --debug get-file --file-id YOUR_FILE_ID
该包包括实用的命令行工具:
# 生成Penpot文件的树形可视化
penpot-tree path/to/penpot_file.json
# 验证Penpot文件是否符合模式
penpot-validate path/to/penpot_file.json
# 在一个终端启动你的MCP服务器
python -m penpot_mcp.server.mcp_server
# 在另一个终端使用mcp-cli监控并与你的服务器交互
python -m mcp.cli monitor python -m penpot_mcp.server.mcp_server
# 或连接到特定端口上的已运行服务器
python -m mcp.cli monitor --port 5000
# 在一个终端启动你的MCP服务器
python -m penpot_mcp.server.mcp_server
# 在另一个终端运行MCP检查器(需要Node.js)
npx @modelcontextprotocol/inspector
# 运行示例客户端
penpot-client
server://info - 服务器状态和信息penpot://schema - Penpot API模式作为JSONpenpot://tree-schema - Penpot对象树模式作为JSONrendered-component://{component_id} - 渲染的组件图像penpot://cached-files - 缓存的Penpot文件列表list_projects - 列出所有Penpot项目get_project_files - 获取特定项目的文件get_file - 通过ID检索Penpot文件并缓存export_object - 导出Penpot对象为图像get_object_tree - 获取Penpot对象的对象树结构search_object - 按名称在Penpot文件中搜索对象Penpot MCP服务器可以通过模型上下文协议与AI助手集成。它支持Claude桌面和Cursor IDE,以实现无缝的设计工作流自动化。
详细的Claude桌面设置说明,请参阅CLAUDE_INTEGRATION.md。
在你的Claude桌面配置文件中添加以下配置(macOS上的~/Library/Application Support/Claude/claude_desktop_config.json或Windows上的%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"penpot": {
"command": "uvx",
"args": ["penpot-mcp"],
"env": {
"PENPOT_API_URL": "https://design.penpot.app/api",
"PENPOT_USERNAME": "your_penpot_username",
"PENPOT_PASSWORD": "your_penpot_password"
}
}
}
}
Cursor IDE通过其AI集成特性支持MCP服务器。要配置Penpot MCP与Cursor:
安装MCP服务器(如果尚未安装):
pip install penpot-mcp
配置Cursor设置,将MCP服务器添加到你的Cursor配置中。打开Cursor设置并添加:
{
"mcpServers": {
"penpot": {
"command": "uvx",
"args": ["penpot-mcp"],
"env": {
"PENPOT_API_URL": "https://design.penpot.app/api",
"PENPOT_USERNAME": "your_penpot_username",
"PENPOT_PASSWORD": "your_penpot_password"
}
}
}
}
替代方案:使用环境变量,在项目根目录下创建一个.env文件:
PENPOT_API_URL=https://design.penpot.app/api
PENPOT_USERNAME=your_penpot_username
PENPOT_PASSWORD=your_penpot_password
启动MCP服务器在你的项目中:
# 在你的项目目录中
penpot-mcp
在Cursor中使用:配置完成后,你可以在Cursor中直接与你的Penpot设计互动,例如询问:
Claude桌面和Cursor集成都提供了:
penpot_mcp/
├── api/ # Penpot API客户端
├── server/ # MCP服务器实现
│ ├── mcp_server.py # 主MCP服务器
│ └── client.py # 客户端实现
├── tools/ # 实用工具
│ ├── cli/ # 命令行接口
│ └── penpot_tree.py # Penpot对象树可视化
├── resources/ # 资源文件和模式
└── utils/ # 辅助工具
该项目使用pytest进行测试:
# 使用uv(推荐)
uv sync --extra dev
uv run pytest
# 运行覆盖率测试
uv run pytest --cov=penpot_mcp tests/
# 使用传统pip
pip install -e ".[dev]"
pytest
pytest --cov=penpot_mcp tests/
# 使用uv(推荐)
uv sync --extra dev
# 设置预提交钩子
uv run pre-commit install
# 运行代码检查
uv run python lint.py
# 自动修复代码检查问题
uv run python lint.py --autofix
# 使用传统pip
pip install -r requirements-dev.txt
pre-commit install
./lint.py
./lint.py --autofix
欢迎贡献!请随意提交Pull Request。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)请确保你的代码遵循项目的编码标准,并包含适当的测试。
此项目采用MIT许可证 - 详情见LICENSE文件。