Token导航 LogoToken导航TokenDH.com
Fn Penpot MCP logo
AI代理未说明官方级别未说明来源级核验

Fn Penpot MCP

MCP Server

一个功能性的F#实现的Penpot模型上下文协议(MCP)服务器,使AI模型能够与Penpot设计进行交互。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
ClaudeAI交互AI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

IvanTheGeek

提供方

IvanTheGeek

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Penpot MCP服务器-F#版🎨🤖

Penpot模型上下文协议(MCP)服务器的功能性F#实现,使Claude等AI模型能够与Penpot设计进行交互。

概述

这是Python的惯用F#函数式编程转换 微型计算机 项目。它使用F#的强类型系统、不可变数据结构和函数式编程范式提供相同的功能。

特性

  • 列出项目和文件:浏览Penpot项目和设计文件
  • 文件检索:使用缓存获取完整的文件数据
  • 对象树导航:通过字段选择遍历设计层次结构
  • 搜索:使用正则表达式模式按名称查找对象
  • 图像导出:将设计导出为PNG/SVG
  • HTTP服务器:用于提供导出图像的可选HTTP服务器
  • 缓存:内存中基于TTL的缓存以提高性能
  • 错误处理:全面的错误处理,包括CloudFlare检测

建筑

该项目按照F#最佳实践分为功能模块:

  • 配置.fs:使用纯函数的基于环境的配置
  • 缓存.fs:支持TTL的通用内存缓存
  • HttpServer.fs:用于图像传递的基于Suave的HTTP服务器
  • PenpotApi.fs:Penpot API的HTTP客户端,具有异步操作
  • 彭波特树.fs:函数树遍历和操作
  • McpServer.fs:MCP工具实现
  • 程序.fs:入口点和命令行界面

先决条件

安装

1.克隆存储库

git clone 
cd FnPenpotMCP

2.配置环境变量

复制示例环境文件:

cp .env.example .env

编辑 .env 使用您的Penpot凭据:

PENPOT_USERNAME=your-email@example.com
PENPOT_PASSWORD=your-password

3.恢复依赖关系

dotnet restore

4.建设项目

dotnet build

用法

运行服务器

dotnet run

命令行选项

dotnet run -- --mode stdio
dotnet run -- --mode sse --port 5000
dotnet run -- --debug

配置选项

变量默认值描述
PENPOT_API_URLhttps://design.penpot.app/apiPenpot API终点
PENPOT_USERNAME(必填)您的Penpot电子邮件
PENPOT_PASSWORD(必填)您的Penpot密码
DEBUGtrue启用调试日志记录
ENABLE_HTTP_SERVERtrue为图像启用HTTP服务器
HTTP_SERVER_HOSTlocalhostHTTP服务器主机
HTTP_SERVER_PORT0HTTP服务器端口(0=随机)
RESOURCES_AS_TOOLStrue将资源作为工具公开
MODEstdioMCP模式(stdio或sse)

可用工具

项目管理

  • list_项目:检索所有可用的Penpot项目
  • get_project_files:获取特定项目中的所有文件

文件操作

  • 获取文件:按ID检索文件(带缓存)
  • 搜索对象:使用正则表达式按名称搜索对象

设计输出

  • 导出对象:将设计对象导出为图像(PNG/SVG)
  • get_object_tree:使用屏幕截图获取对象树结构

资源

  • get_server_info:服务器状态和配置
  • get_cached_files:列出缓存文件
  • 获取_提交_组件:检索渲染的组件
  • get_penpot_schema:Penpot API架构
  • get_penpot_tree_schema:对象树架构

函数式编程特性

此F#实现展示了:

  • 不可变数据:默认情况下,所有数据结构都是不可变的
  • 选项类型:使用空安全操作 Option
  • 结果类型:显式错误处理 Result
  • 异步工作流:带F#异步的非阻塞I/O
  • 模式匹配:控制流的详尽模式匹配
  • 类型安全:贯穿始终的强打字和类型推理
  • 功能组成:小型可组合功能
  • 基于表达式:Everything是一个返回值的表达式

项目结构

FnPenpotMCP/
├── Config.fs              # Configuration management
├── Cache.fs               # TTL-based caching
├── HttpServer.fs          # Image HTTP server (Suave)
├── PenpotApi.fs           # Penpot API client
├── PenpotTree.fs          # Tree traversal logic
├── McpServer.fs           # MCP tool implementations
├── Program.fs             # Entry point
├── resources/
│   ├── penpot-schema.json
│   └── penpot-tree-schema.json
├── .env.example           # Environment template
├── FnPenpotMCP.fsproj     # Project file
└── README.md              # This file

依赖项

  • FSharp。数据:HTTP请求和数据访问
  • FSharp。SystemTextJson:JSON序列化
  • Dotnetease:环境变量管理
  • 柔和的:轻量级web服务器
  • 模型上下文协议:MCP SDK(预览版)

CloudFlare防护

如果您遇到CloudFlare保护错误:

  1. 打开https://design.penpot.app在浏览器中
  2. 登录您的Penpot帐户
  3. 完成任何CloudFlare验证挑战
  4. 请重试您的请求

验证通常持续一段时间。

发展

建筑

dotnet build

运行测试(如果可用)

dotnet test

出版

dotnet publish ./FnPenpotMCP.fsproj -c Release -o ./publish

你需要更新吗 .env 出版前?

简短的回答:没有。

  • 发布步骤将编译后的应用程序及其运行时依赖项捆绑在一起。它不读取、嵌入或要求您 .env 文件。
  • 环境值仅在运行时应用程序启动时读取。改变 .env 永远不需要重建或重新发布。

是一个 .env 发布的二进制文件需要什么文件才能工作?

不需要,但支持。

此应用程序在启动时按以下顺序加载配置:

  1. 操作系统/进程环境提供的标准环境变量。
  2. 可选地,a .env 当前工作目录中的文件(通过 DotNetEnv).如果没有 .env 它存在,只是被忽略了。

因此,在生产中,您有两个选择:

  • 建议:通过流程管理器或宿主环境(例如systemd)设置所需变量 Environment=,Docker -e 标志、Kubernetes机密、云服务环境设置)。
  • 备选方案:放置a .env 运行二进制文件旁边的文件,并确保进程工作目录与包含 .env 文件。

成功Penpot身份验证所需的变量:

  • PENPOT_USERNAME
  • PENPOT_PASSWORD

其他可选变量列在上面的配置选项表中。

安全注意事项:

  • 永不承诺 .env 版本控制。
  • 更喜欢秘密管理器或主机提供的环境变量 .env 生产中的文件。

与Python版本的差异

在保持功能奇偶性的同时,此F#版本包括:

  • 类型安全:编译时类型检查可防止许多运行时错误
  • 不可变性:默认情况下,数据结构是不可变的
  • 模式匹配:更清洁的控制流程,完美匹配
  • 异步工作流:本机F#异步,而不是Python异步
  • 选项类型:显式处理可为null的值
  • 结果类型:在适当的情况下,无异常的显式错误处理

局限性

  • 完整的MCP协议集成需要使用ModelContextProtocol进行额外的实现。NET SDK
  • 与Python版本相比,YAML输出支持简化(使用JSON并注明)
  • 一些高级Python特定功能在实现上可能有所不同

贡献

欢迎投稿!请随时提交问题或拉取请求。

许可证

本项目根据GNU Affero通用公共许可证v3.0(AGPL-3.0)获得许可。

这是Python项目的衍生作品 微型计算机,最初是根据麻省理工学院许可证获得许可的。根据MIT许可证的许可条款,此衍生作品已根据AGPL-3.0重新许可,以确保所有用户都可以自由使用任何进一步的修改和增强。

有关完整详细信息,请参阅LICENSE文件。

集成指南

了解如何将此MCP服务器与不同工具集成:

另请参见:

致谢

另见

目录标签

目录标签

ClaudeAI交互AI代理F#本地部署设计工具F#编程协议服务器功能编程

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP