mcpField
H
Homespun

Homespun

远程服务
homespun.dev云与基础设施11 周前更新

关于 Homespun

Homespun 是用于部署多用户 Web 应用并操作其数据的 MCP 服务。它让 MCP 客户端使用托管应用部署、身份验证、共享数据库、权限、通知和附件功能。

主要功能

  1. 01部署和更新托管 Web 应用
  2. 02管理集合记录与变更动态
  3. 03配置成员、角色和授权
  4. 04处理文件附件
  5. 05管理应用、域名和 Agent 身份

适用场景

  1. 01通过 Agent 部署多用户应用
  2. 02在部署后读取和更新应用数据
  3. 03跟踪应用用户所做的更改
  4. 04邀请成员并分配数据权限

MCP 相关

stdio MCP 服务将 Homespun CLI 的功能作为工具提供给 MCP 客户端,并与 CLI 共用配置和 Agent 身份。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://homespun.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@homespunapps/mcp1.6.98

工具

27
参数类型必填说明
sizeinteger是HTML 文档的 UTF-8 字节长度。
app_idstring否如果此上传用于重新部署,则填写现有应用 ID;创建应用时省略。
sha256string是要上传的确切 UTF-8 HTML 字节的 SHA-256 十六进制摘要。

详细介绍

@homespunapps/mcp

面向 Homespun 的轻量级 stdio Model Context Protocol 服务。它让任何 MCP 客户端(Claude Desktop、Cursor、Windsurf、Cline 或你自己的宿主)都能通过一次调用部署真正的多用户 Web 应用,并在之后持续操作其数据:应用托管在专属 URL 上,包含魔法链接身份验证、按角色设置权限的共享实时数据库、邮件通知和文件附件。

它是一个封装层,而非重新实现:所有中继 I/O 都通过 @homespunapps/core 完成,并且与 homespun CLI 共用配置(~/.config/homespun/config.json),因此 CLI 和此服务使用同一 Agent 身份。

运行时要求:Node.js >= 20

二进制文件为 homespun-mcp。它通过 stdio 使用 MCP,旨在由 MCP 宿主启动,而非交互式运行。

快速开始

无需全局安装:将 MCP 客户端指向 npx @homespunapps/mcp 即可。首次使用时,如果未配置 API 密钥,服务会自动在托管中继上注册一个新 Agent,并将密钥保存到共享的 CLI 存储中;无需进行其他设置。

Claude Desktop

编辑 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "homespun": {
      "command": "npx",
      "args": ["-y", "@homespunapps/mcp"]
    }
  }
}

若要固定使用现有 Agent 密钥而不是自动注册,请添加 env 块:

{
  "mcpServers": {
    "homespun": {
      "command": "npx",
      "args": ["-y", "@homespunapps/mcp"],
      "env": { "HOMESPUN_API_KEY": "hs_..." }
    }
  }
}
Cursor

添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目):

{
  "mcpServers": {
    "homespun": {
      "command": "npx",
      "args": ["-y", "@homespunapps/mcp"],
      "env": { "HOMESPUN_API_KEY": "hs_..." }
    }
  }
}
通用 MCP 宿主

任何支持 command + args + env 的客户端都可以采用相同方式配置:

{
  "mcpServers": {
    "homespun": {
      "command": "npx",
      "args": ["-y", "@homespunapps/mcp"],
      "env": {
        "HOMESPUN_URL": "https://homespun.dev",
        "HOMESPUN_API_KEY": "hs_..."
      }
    }
  }
}

如果你更愿意全局安装(npm i -g @homespunapps/mcp),请使用 "command": "homespun-mcp",无需设置 args。

配置

所有环境变量均为可选;默认配置面向托管中继,并会在首次使用时自动注册。

变量默认值用途
HOMESPUN_URLhttps://homespun.dev中继基础 URL。设置此项可指向其他中继。
HOMESPUN_API_KEY(自动注册)Agent API 密钥。如果未设置,服务会在首次使用时注册一个 Agent,并将密钥保存到 ~/.config/homespun/config.json(与 CLI 共用)。
HOMESPUN_TOKEN(无)HOMESPUN_API_KEY 的别名(适用于将密钥命名为 *_TOKEN 的宿主)。如果两者均已设置,则以 HOMESPUN_API_KEY 为准。
HOMESPUN_AGENT_NAMEhomespun-mcp自动注册的 Agent 的显示名称。
HOMESPUN_REGISTER_SECRET(无)注册密钥,仅用于运行 REGISTRATION_MODE=secret 的中继。

配置优先级与 CLI 一致:环境变量优先于已保存的配置,未设置时则回退到默认中继 URL。

工具

此服务与 homespun CLI 完全一致:CLI 提供的所有功能都可以在此使用。

MCP 工具采用请求/响应模式,因此没有长期运行的“监视”。若要查看变化,请使用上一次调用返回的游标轮询 get_feed_events(传入 wait 可进行长轮询,范围为 0 到 30 秒);若要监视某个集合,请使用上一次返回的 next_cursor 作为 since,再次调用 list_rows。每个工具的描述都为模型说明了相应模式。

为保持工具列表精简(扁平列出 50 多个工具会膨胀客户端上下文并降低选择质量),高频路径上的名词仍作为独立工具,而包含多个动词的管理类名词则各自合并为一个工具,并要求提供 action 枚举值。

热路径(离散)工具
工具功能
deploy_app部署一个 v2 应用:由 HTML 文档和功能清单组成,并托管在专属 URL 上。省略 app_id 可创建应用;传入 app_id 可原地重新部署(URL、数据和成员均保持不变)。接受 html 或 html_path,以及可选的 assets、visibility、slug、dry_run、force。
list_rows列出集合中的行。也可用于轮询集合的当前状态:将之前的 next_cursor 作为 since 传入。
get_row按 key 获取一行(使用专用中继路由,而不是在客户端扫描)。
add_row创建一行;如果 key 已存在,则返回现有行(deduped: true);如果集合的 read 列表未授权你读取该行,则返回 row_not_found。唯一用于创建的动词。
update_row替换现有行的 data。可选的 if_match 乐观锁。
delete_row软删除一行。可选的 if_match。
get_feed_events轮询应用的变更信息流,获取任何写入者(无论是人还是 Agent)对行的创建、更新和删除事件。可选的 wait(0-30 秒)用于长轮询。
合并工具(一个工具,必需的 action)
工具操作
appslist · show · update · share_link_rotate · delete · wake · domain_set · domain_status · domain_remove
membersadd · list · set_role · remove · roles
grantsmint · list · revoke
ingestlist · rotate · set_signing_secret · clear_signing_secret
attachmentsupload · fetch · presign · finalize · download · show · list · delete · mint_token · revoke_token · list_tokens
tasteget · set · clear
keylist · mint · revoke
feedbackcreate · list
agentwhoami · claim · logout
communitypublish · unpublish · get_config_contract · install · list_pending · get_submission · approve · reject · set_trust_level
publisherclaim · get · update
reviewcreate · respond · report · remove · unhold
单一用途工具
工具功能
get_skill获取中继自动更新的指南(无需身份验证),以自学工作流。

附件接收并返回文件路径:upload 读取绝对路径 file_path;download 写入绝对路径 out_path(若省略,则返回 base64)。对于实际媒体,使用 presign,然后执行 PUT,再调用 finalize,即可避免通过工具调用传输字节。

一种数据原语。 应用存储的所有内容都是一个集合:一组有名称、可变且可查询的行,每行都有一个 key、一个 data 载荷、一个乐观锁 version 和一个 author。每次写入也都会记录到应用的有序变更信息流中。若要创建日志(例如审计跟踪或提交记录),而非可变状态,可在清单中将集合声明为 appendOnly: true。

未公开的功能(及原因)
  • CLI 的 config show 已由 agent → whoami 取代(显示解析出的中继 URL、活动配置文件以及是否已设置密钥;不显示机密)。
  • agent register 不是工具。服务器会在首次使用时自动注册,并与 CLI 共用密钥存储;之后可通过 agent → claim 将其绑定到某个人。
  • demo(交互式终端导览)和 CLI 自动更新程序属于终端功能,Agent 不会用到,因此省略。

典型流程

  1. 使用你的 HTML 和 x-homespun-manifest 调用 deploy_app,在清单中声明应用的集合,以及哪些角色可以读取、写入和删除各个集合。返回 { app_id, url, ... }。
  2. 将 url 提供给所有者,并通过 members(action: add)邀请其他人。
  3. 在循环中调用 get_feed_events 并设置 wait: 25,将之前的 cursor 作为 since 传入,以查看人们的操作。
  4. 使用 list_rows / add_row / update_row 读取和写入相同的数据;再次调用 deploy_app 并传入 app_id,即可发布更改。

MCP 注册表

server.json(位于此软件包中)包含官方 MCP 注册表的元数据。发布到该注册表是维护者的后续步骤。

许可证

MIT,详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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