mcpField
P
prefab

prefab

本地服务
github.com/davidjaykelly生产力29 周前更新

关于 prefab

prefab-mcp 是连接 Prefab 的 MCP 服务,让 Agent 查看项目模板并按需部署。它支持先预览部署内容,也能读取监视文件夹与模板占位符。

主要功能

  1. 01列出并查看模板详情
  2. 02预览部署内容及缺失值
  3. 03按提供的值部署模板
  4. 04查看受监视文件夹与规则
  5. 05查看全局占位符和预设值

适用场景

  1. 01查找适合新项目的模板
  2. 02部署客户或活动文件夹结构
  3. 03部署前检查所需占位符
  4. 04查看 Prefab 的文件夹监视规则

MCP 相关

该服务向 MCP 客户端提供模板查询、部署预览和部署等工具。读取功能可在 Prefab 未运行时使用;部署需要 Prefab 正在运行,并获得目标文件夹权限。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"io-prefabapp-prefab": {
"command": "npx",
"args": [
"-y",
"prefab-mcp"
]
}
}
}
启动命令npx -y prefab-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmprefab-mcp0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

prefab-mcp

适用于 Prefab 的 MCP 服务,让 Agent 能查看你的模板并为你部署模板。

"在我的桌面上为 Northwind 创建一个新的客户文件夹,用于秋季营销活动"

提供的功能

工具功能
list_templates列出所有模板、模板会创建的内容以及所需信息
describe_template完整介绍单个模板:结构、占位符和操作
preview_deploy显示部署将创建的内容以及仍缺少的值,不会创建任何内容
deploy_template创建文件夹,并填入提供的值
list_watched_foldersPrefab 正在监视的文件夹及其规则
list_globals整个资料库通用的占位符、操作和值预设

设置

适用于任何通过 stdio 使用 MCP 的客户端。

作为扩展包安装 - 从发布页面下载 prefab.mcpb 并双击。包括 Claude Desktop 在内,能够安装 MCP 扩展包的客户端都自带 Node,无需安装其他内容。

通过命令行安装(Claude Code,以及其他采用类似方式的客户端):

claude mcp add prefab -- npx -y prefab-mcp

在配置文件中设置 - Cursor、Zed 及大多数其他客户端:

{
  "mcpServers": {
    "prefab": { "command": "npx", "args": ["-y", "prefab-mcp"] }
  }
}

然后在 Prefab 的 Settings ▸ Permissions 中启用 Let agents and scripts control Prefab。此选项默认关闭;关闭时仍可读取模板,但无法创建和部署。

此开关从 Prefab 1.1.6 开始提供。使用更早版本时,读取工具可用,其余工具会说明这一点。

需要 macOS、已安装并至少打开过一次的 Prefab,以及 Node 18+(.mcpb 安装方式除外)。

工作原理

Prefab 在沙盒中运行,且无法访问网络,因此不能托管任何内容。此 MCP 服务在旁边运行:它直接从应用组(~/Library/Group Containers/group.VFDG327T66.prefab)中读取资料库,并通过 Finder 扩展使用的同一个 prefab:// URL 请求应用部署。有两点需要注意:

  • 部署时 Prefab 必须正在运行。读取则不受影响。
  • 目标必须是 Prefab 已获授权访问的文件夹。 在你指定文件夹之前,macOS 会阻止沙盒应用访问你的文件夹。preview_deploy 和 deploy_template 都会先检查并说明这一点,不会留下 Agent 无法处理的权限对话框。在 Prefab 的 Settings ▸ Permissions 中授权文件夹。

这里的任何操作都不会写入 Prefab 的资料库。这些文件由应用管理;如果在应用不知情的情况下编辑它们,下次保存时更改就会被覆盖。

开发

npm test    # 检查占位符解析是否与应用中的 Swift 实现逐项匹配
npm run try '[["list_templates",{}]]'    # 按照客户端的调用方式调用工具

src/resolve.js 是 RenamePattern.swift 的有意重复实现。修改其中一个时,也要修改另一个——npm test 会编译 Swift 并比较两者。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。