┌─────────────────────────────────────────────────────────────────────────┐
│ AI 代理层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Claude │ │ ChatGPT │ │ Gemini │ │ Cursor │ │ Custom │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────┬───────────────────────────────────────────────┘
│ 标准 MCP 协议
┌─────────────────────────┴───────────────────────────────────────────────┐
│ MCP 服务器核心 │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 工具处理器 │ │ 资源处理器 │ │ 提示处理器 │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │ │
│ ┌─────────────────────────────┴─────────────────────────────┐ │
│ │ 服务层 │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Figma API │ │ 缓存层 │ │ 插件通信 │ │ │
│ │ │ 服务 │ │ │ │ (可选) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────┬───────────────────────────────────────────────────┘
│
┌─────────────────────┴───────────────────────────────────────────────────┐
│ 外部服务 │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Figma REST API │ │ Figma 插件 │ │ 数据库 │ │
│ │ │ │ (可选) │ │ (可选) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
figma-mcp-server/
├── package.json
├── tsconfig.json
├── .env.example
├── README.md
├── src/
│ ├── index.ts # 入口点
│ ├── server/
│ │ ├── mcp-server.ts # 核心 MCP 服务器设置
│ │ ├── tool-handler.ts # 工具请求处理
│ │ ├── resource-handler.ts # 资源管理
│ │ └── prompt-handler.ts # 提示定义
│ ├── services/
│ │ ├── figma-api.ts # Figma REST API 客户端
│ │ ├── cache.ts # 缓存层
│ │ ├── plugin-comm.ts # 插件通信(未来)
│ │ └── design-intelligence.ts # AI 功能
│ ├── tools/
│ │ ├── base-tool.ts # 抽象工具类
│ │ ├── read-tools/ # 读操作
│ │ │ ├── get-document.ts
│ │ │ ├── get-nodes.ts
│ │ │ ├── search-nodes.ts
│ │ │ └── export-nodes.ts
│ │ ├── write-tools/ # 写操作(未来)
│ │ │ ├── create-nodes.ts
│ │ │ ├── modify-nodes.ts
│ │ │ └── delete-nodes.ts
│ │ └── analysis-tools/ # AI 分析
│ │ ├── analyze-design.ts
│ │ ├── suggest-improvements.ts
│ │ └── check-accessibility.ts
│ ├── types/
│ │ ├── figma.ts # Figma API 类型
│ │ ├── mcp.ts # MCP 特定类型
│ │ └── common.ts # 共享类型
│ └── utils/
│ ├── errors.ts # 错误处理
│ ├── validation.ts # 输入验证
│ └── helpers.ts # 工具函数
├── tests/
│ ├── unit/
│ ├── integration/
│ └── fixtures/
└── docs/
├── API.md
├── TOOLS.md
└── DEPLOYMENT.md
目标:基本的 MCP 服务器和必要的读操作
特性:
get_document - 获取文档信息get_nodes - 获取特定节点search_nodes - 按类型/名称搜索export_nodes - 导出为图片交付成果:能够读取 Figma 文件的工作 MCP 服务器
目标:高级读取能力和缓存
特性:
get_components - 列出本地组件get_styles - 获取文档样式
、 get_comments - 读取评论analyze_structure - 文档结构分析交付成果:快速、功能丰富的只读 MCP 服务器
目标:AI 驱动的设计分析和建议
特性:
analyze_design_system - 检查一致性suggest_improvements - AI 建议check_accessibility - A11y 合规性find_similar_components - 模式匹配交付成果:智能设计分析能力
目标:通过 REST API 的基本写能力
特性:
create_comment - 添加评论update_comment - 修改评论organize_files - 文件管理prepare_plugin_setup - 插件搭建交付成果:支持写入的 MCP 服务器
目标:通过 Figma 插件实现完整的读写
特性:
交付成果:完整的 Figma 自动化平台
mkdir figma-mcp-server
cd figma-mcp-server
pnpm init
# 安装依赖
# 设置 TypeScript
# 配置开发工具
// 基本服务器设置与 MCP SDK
// 工具注册系统
// 请求/响应处理
// REST API 客户端
// 认证处理
// 速率限制
// 错误处理
// 文档读取工具
// 节点信息工具
// 搜索能力
// 导出功能
# 单元测试
# 集成测试
# MCP 代理兼容性测试
interface FigmaMCPConfig {
figma: {
token: string;
rateLimitPerMinute: number;
timeoutMs: number;
};
cache: {
enabled: boolean;
ttlSeconds: number;
maxSize: number;
};
features: {
aiAnalysis: boolean;
pluginSupport: boolean;
batchOperations: boolean;
};
logging: {
level: 'debug' | 'info' | 'warn' | 'error';
file?: string;
};
}
# 开发
npm run dev # 在开发模式下启动
npm run build # 构建生产环境
npm run test # 运行测试
npm run lint # 检查代码
# 使用不同代理
npx figma-mcp-server # 直接使用
# 将其添加到 Claude、ChatGPT 等的 MCP 配置中
准备好开始第一步了吗?告诉我,我将引导您完成项目的建立!