FnMCP。Penpot
一个完全兼容的MCP服务器和Penpot客户端
FnMCP。Penpot是模型上下文协议(MCP)的独立实现,旨在与开源设计和原型平台Penpot无缝集成。该项目展示了函数式编程、事件驱动架构和类型驱动设计的强大功能。
______________________________________________________________________
项目状态
当前阶段: 规划\ 版本: 0.1.0-α\ 最后更新时间: 2025-11-03
______________________________________________________________________
概述
该项目实现了一个完整的MCP服务器和客户端,使AI系统和其他应用程序能够通过标准化协议与Penpot设计进行交互。它采用F#构建,并利用函数式编程原理,展示了:
- 完全符合MCP:遵守MCP规范2025-06-18
- 事件溯源:完成所有业务的审计跟踪
- 类型驱动设计:编译时间保证防止非法状态
- 功能架构:纯函数、不变性和可组合性
______________________________________________________________________
核心技术
- 语言:F#(.NET 8+)
- 建筑:事件建模、事件采购、CQRS
- 设计理念:类型驱动设计(Scott Wlaschin),函数式编程
- 外部集成:Penpot API,MCP协议(JSON-RPC 2.0)
______________________________________________________________________
文档
全面的规划和架构文件可在 docs/ 目录:
规划文件
- 执行摘要和核心目标 - 建筑哲学与设计原则 - 系统架构概述 - MCP与Penpot的整合策略 - 存储库API设计 - 类型驱动设计示例 - 成功标准和风险缓解
- 事件建模基础 - 12个核心事件切片,涵盖系统行为 - 事件存储模式和流命名 - 预测(阅读模型) - 自动化策略 - 事件版本控制策略 - 测试策略
- 12周实施时间表 - 6个开发阶段,包含详细的可交付成果 - 技术里程碑 - 风险管理 - 质量关卡和成功指标 - 技术栈规范
______________________________________________________________________
主要功能(计划中)
MCP协议支持
- ✅ 初始化和能力协商
- ✅ 资源发现和访问
- ✅ 工具调用
- ✅ 及时管理
- ✅ 采样支持
- ✅ 综合录井
- ✅ 多个传输层(stdio、HTTP+SSE)
Penpot集成
- ✅ 文件管理(创建、读取、更新、删除)
- ✅ 页面操作
- ✅ 形状操作(添加、修改、删除)
- ✅ 组件系统
- ✅ 导出功能
- ✅ 认证与授权
事件溯源
- ✅ 完整的事件历史记录
- ✅ 事件回放和时间查询
- ✅ 读取模型的预测
- ✅ 自动化策略
- ✅ 审计跟踪
______________________________________________________________________
项目结构(计划)
FnMCP.Penpot/
├── docs/ # Project documentation
├── src/
│ ├── FnMCP.Core/ # Core MCP protocol implementation
│ ├── FnMCP.Domain/ # Domain layer (types, events, workflows)
│ ├── FnMCP.Penpot/ # Penpot API integration
│ ├── FnMCP.EventStore/ # Event sourcing infrastructure
│ └── FnMCP.Server/ # Runnable MCP server
├── tests/
│ ├── FnMCP.Core.Tests/
│ ├── FnMCP.Domain.Tests/
│ ├── FnMCP.Penpot.Tests/
│ └── FnMCP.Integration.Tests/
├── AI_Interactions/ # AI session logs
└── README.md______________________________________________________________________
发展原则
1.用F进行函数式编程\#
- 默认情况下不可变
- 具有明确副作用的纯函数
- 组合胜过继承
- 面向铁路的错误处理编程
- 代数数据类型(区分的并集和记录)
2.事件建模
- 作为一流公民的活动
- 基于时间的系统行为推理
- 四种核心模式:
- 命令(蓝色):用户意图 - 活动(橙色):关于所发生事情的事实 - 查看/读取模型(绿色):查询的数据预测 - 自动化(紫色):响应式策略、屏幕(人工操作)或公共API(外部集成)
3.类型驱动设计
- 使非法国家无法代表
- 使用类型系统来执行业务规则
- 将已验证数据与未验证数据分开
- 将工作流建模为转换的显式管道
4.活动采购
- 仅添加事件存储
- 状态重建事件回放
- 时态查询
- 完整的审计跟踪
5.文件和示例惯例
- 代码示例:所有例子都有利于 F 展示函数式编程模式
- 内部配置:使用 YAML 用于配置、文档和内部表示
- 人工编辑的内容更具可读性和可维护性 - 支持评论和更好的视觉结构
- 外部系统交互:使用 JSON 仅用于外部系统交互
- MCP协议(JSON-RPC 2.0)需要JSON - Penpot API使用JSON进行请求/响应 - 强制JSON格式的外部集成
______________________________________________________________________
入门指南
先决条件
- .NET 8+SDK
- F#编译器
- Git
- (可选)JetBrains Rider或带有Ionide的VS代码
安装
# Clone the repository
git clone https://github.com/yourusername/FnMCP.Penpot.git
cd FnMCP.Penpot
# Build the solution (once implementation begins)
dotnet build
# Run tests (once implementation begins)
dotnet test______________________________________________________________________
路线图
第一阶段:基础(第1-2周)
- 项目结构设置
- 核心域类型
- 存储库API接口
第2阶段:MCP协议(第3-4周)
- JSON-RPC 2.0实现
- MCP消息类型
- 传输层
第三阶段:阴茎整合(第5-6周)
- HTTP客户端和API包装器
- 类型映射层
- MCP工具和资源
第4阶段:活动采购(第7-8周)
- 事件存储实施
- 预测
- 自动化策略
第5阶段:完整功能(第9-10周)
- 提示和采样
- HTTP+SSE传输
- 综合录井
第六阶段:波兰语(第11-12周)
- 测试和文件
- 性能优化
- 部署准备
看 发展路线图 查看详细的时间线。
______________________________________________________________________
参考文献
MCP协议
佩普特
学习资源
______________________________________________________________________
贡献
该项目目前正处于规划阶段。一旦开始实施,将制定捐款指南。
______________________________________________________________________
许可证
看 许可证 文件以获取详细信息。
______________________________________________________________________
项目团队
这是针对Penpot的MCP的独立实现,开发的重点是函数式编程的卓越性和架构最佳实践。
维护者:IvanTheGeek
______________________________________________________________________
备注:该项目目前处于规划阶段。将按照文档中概述的路线图开始实施。
