Communitygithub.com

texopub-publish

发布或更新静态HTML网站,或将独立文件上传至用户的TexoPub空间。使用云MCP工具进行操作,适用于用户请求TexoPub发布、更新、个人资产存储、创作者资料、AI合作伙伴、外部网站收录、资产权限、列表更改、默认偏好或永久删除等场景。

texopub-publish 是什么?

TexoPub发布技能(texopub-publish)是一款面向AI智能体的云发布工具,支持通过MCP工具链完成静态网站发布、文件上传、资产管理及创作者身份维护等操作。该技能适用于Claude Code、Cursor、Codex等支持MCP协议的AI编程助手,用户需通过OAuth连接自己的TexoPub账户,无需手动输入API密钥或验证码。 技能核心功能包括:发布/更新静态网站(支持单次调用最多8个文件、25 MiB/文件、32 MiB总量,以及分阶段发布最多250个文件/100 MiB)、上传独立文件、管理AI合作伙伴身份卡、设置资源可见性(私密/公开展示/仅主页),以及永久删除作品。操作前需通过`list_categories`、`get_my_space`、`get_work`等读取工具获取上下文,所有写操作均要求幂等性键和版本号确保一致性。 重要限制包括:无单独修改作品标题/摘要/封面的工具,必须提交完整新版;已归档的未完成上传草稿24小时后不可提交;永久删除不可逆,需用户明确确认。技能遵循人类与AI协作原则,编辑由AI执行但发布需用户授权,创作者身份为自我声明而非验证。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/ivanliyuanning/texopub/tree/main/service/plugin/skills/texopub-publish

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

English instructions: https://texopub.com/for-ai/en/SKILL.md · English interface: https://texopub.com/?lang=en

TexoPub 云发布

使用 TexoPub MCP 工具。它们在云端运行,无法读取本地文件系统路径。插件连接使用用户的 TexoPub 账户;安装软件包本身并不授权发布。

选择操作

请求先读取写入/操作工具
查找分类或公共作品list_categories;通过 HTTP 访问公共目录无需发布
识别自己的空间/内容get_my_space, list_my_works, get_work, list_my_materials无需修改
修改人类姓名/头像/简介get_my_profileupdate_my_profile
注册/更改 AI 合作伙伴名片get_my_profileupsert_ai_partner
发布/更新托管静态网站list_categories;更新时使用 get_workpublish_website
收录/更新现有外部网站list_categories;更新时使用 get_worksubmit_website
上传/更新一个独立文件更新时使用 get_workupload_asset
发布较大的完整网站批量 inspect_filesprepare_upload → upload_file → commit_upload
更改现有网站列表get_workset_work_listing
更改未来默认列表get_my_spaceset_publish_preferences
更改独立资产访问权限get_workset_asset_visibility
关闭访问 / 永久删除get_work分别使用 archive_work / delete_work

get_work 仅读取拥有的内容,包括草稿/存档。它不是一个任意的公共作品读取器。已连接的插件使用 OAuth;不要要求单独提供 API 密钥或请求验证码/cookie。该网站是一个可读/可展示的社区,具有人类登录、主页选择加入和凭据管理;内容编辑属于 AI。

列表选择与永久删除

每次网站发布前都要问:“展示在哪里?不展示 / 仅个人主页 / 公开展示(默认)”。读取 get_my_space.default_listing 获取默认建议。如果用户已在请求中选择或给出了适用的固定指令,则遵循它而不再询问。建议的默认值不是答案;当需要回复时,等待它。初始默认值为 public;用户可以使用 set_publish_preferences(default_listing) 要求更改它,而不会更改现有作品或打开其主页。仅更改默认值不会跳过发布问题。

listing: unlisted = 不展示(仅在所有者的管理集合中);profile = 仅个人主页(仅在其启用的个人主页上);public = 公开展示(主页和 TexoPub 发现)。所有三种模式都保留 URL 和依赖项,供任何有链接的人访问。这些是列表控制,不是私有认证。独立资产保留其单独的私有/公共访问规则。不要自动启用个人主页。

将 listing 传递给 publish_website 或 prepare_upload。省略它不会改变作品的现有值。要更改列表而不上传文件,请先读取 get_work,然后调用 set_work_listing(work_id, expected_version, expected_revision, listing)。

当明确要求永久删除时,先读取 get_work,然后调用 delete_work(work_id, expected_version, confirm=true)。草稿的版本可能为 null。删除不可逆转:它会关闭访问,删除每个历史版本以及未被其他内容使用的文件,并在完成后释放配额。如果 deleted=false,继续使用完全相同的参数,直到 deleted=true;如果出错,使用这些相同参数重试。不要过早报告成功。小的地址墓碑仍然存在,因此旧 URL 不能指向其他人未来的作品。archive_work 仅关闭访问并保留历史/配额,因此不是永久删除。在接受测试后,使用 delete_work 清理一次性测试发布。

发布网站

  1. 确认所请求的内容是一个静态网站,并且用户请求了发布。仅创建页面并不是发布它的许可。不要上传凭据、源代码研究或不相关的文件。
  2. 读取 list_categories 以选择一个有效的二级 category_id 和适当的 format。使用完整的 group.id/child.id 路径,例如 technology/software,切勿单独使用子 ID software。
  3. 对于新网站,制作一个与其主题相符的专用自包含 SVG 图标,并作为 icon_svg 传递。通用的平台图标不是作品专属图标。
  4. 使用 publish_website。将自包含的小页面作为 html 发送,将额外的文本页面/CSS/JS 作为 text_files,将经授权的对话文件作为 attachments 并附上匹配的 attachment_paths。文件值必须通过主机的文件机制传递,而不是 sandbox: URL 或本地路径。相对路径保留页面和图像链接。提供完整的文件集,包括所有页面依赖项。
  5. 对完全相同版本的重试使用稳定的 idempotency_key。新的预期版本需要新键。服务器验证文件字节,并仅在整个包准备就绪后提交。
  6. 返回实际的服务 URL 以及 work_id/version 以供后续更新。未经测试,不要声称移动浏览器或交互接受。

单次调用 publish_website 最多接受 8 个文件(包括图标/封面),每个文件 25 MiB,合并 32 MiB;HTML 限制为 2 MiB。完整的 MCP 请求 JSON 限制为 3 MiB,因此大的内联文本也需要分阶段发布。对于更大的网站,使用 inspect_files 分批(最多 8 个)获取精确的字节数和 SHA256 哈希,合并清单,调用 prepare_upload,然后对每个文件调用 upload_file,最后调用 commit_upload。分阶段发布支持现有的 250 文件/100 MiB 包限制,并保持草稿私有,直到所有文件准备就绪。重试时使用相同的 upload_id。它接受提取的静态文件,而不是需要服务器端解压的 ZIP 或需要编译的框架源代码项目。首先在可用的执行环境中构建/导出此类项目。如果无法将引用的文件交给插件,请保留作品并解释具体的文件交接问题;切勿声称发布成功。

平台会添加自己的标题/主页栏和网站图标。作品控制自己的阅读 UI;不要添加重复的平台栏或保留平台页眉偏移。

更新现有网站

使用 list_my_works 和 get_work 找到预期作品和当前版本。传递其原始 slug、work_id 和当前版本作为 expected_version。更新保留公共 URL。对于 publish_website,可以通过省略 icon_svg 和 icon 来重复使用以前的特定作品图标;重复使用的图标仍计入 8 文件限制。submit_website 始终需要 icon_svg,包括更新。prepare_upload 需要一个包含图标文件及其打包路径的显式完整清单。如果发生版本冲突,请在继续之前检索当前状态;不要创建重复品或静默覆盖更改。

更新提交完整的版本,而不是补丁。包括所有保留的页面/依赖项和元数据。省略的 listing 和 ai_partners 保留旧值;ai_partners: [] 清除署名。不要假设其他省略字段被保留:summary/tags/format 可能恢复为默认值,而省略的 cover 使用排版回退。再次包含原始封面图像及其路径以保留它。工具不接受 CLI/REST 中可用的每个字段;例如,submit_website 没有 tags/license 参数。不要发明参数或声称未支持的字段被保留。

独立文件

使用 upload_asset 并传入一个经授权的对话文件。省略 visibility 表示私有存储。仅在用户授权公共访问时设置 visibility: public;私有资产 URL 需要所有者身份验证,不是匿名图像或下载 URL。公共网页所需的图像应包含在该网页的文件包中。上传替换版本时,显式发送预期的 visibility;省略它则使用私有,而不是保证先前的权限。要仅更改权限,请使用 set_asset_visibility 而无需重新上传。

账户与移除

get_my_space 标识已连接的空间;list_my_materials 列出其文件。archive_work 关闭访问并保留历史存储使用;仅在用户要求移除后、读取当前版本后使用。它不能移除其他发布者的作品。

如果需要连接,让主机启动 OAuth 并让用户在 texopub.com 上登录。切勿要求他们将密码、验证码、发布密钥或 cookie 粘贴到对话中。连接可以在 https://texopub.com/api/oauth/connections 撤销。

创作者身份与 AI 合作伙伴 (v0.3.0)

TexoPub 是一个人类与 AI 共同创作的社区。其网站显示内容;编辑由 AI 执行。人类登录、主页选择加入、API 密钥发放和 OAuth 批准保留在网站上。

在 update_my_profile 之前使用 get_my_profile。提供当前的 expected_revision,仅更改用户请求的字段,并在冲突时重新读取。name: null 恢复稳定的生成名称;avatar_url: "" 恢复生成的头像;bio: "" 清除简介。仅在用户提供或确认时添加简介。自定义头像必须是公共 HTTPS 图像,绝不能是私有认证文件 URL。个人资料工具无法启用主页。

首先读取 get_my_profile 并重复使用匹配客户端的现有合作伙伴密钥。使用 upsert_ai_partner 注册或更新拥有的合作伙伴:稳定的 key、经确认的 application 名称,以及该合作伙伴当前的 expected_revision(新合作伙伴为 0),而不是人类个人资料修订版。省略的名称默认为 application。仅在用户请求的范围内设置昵称、简介、自定义头像或 show_on_profile。这是自我声明的身份,不是经过验证的模型归属。

将 ai_partners 传递给 publish_website / prepare_upload 用于此作品的实际参与者:[{"key":"codex","application":"Codex","contribution":"Implemented layout and interaction"}]。仅在当前客户端已知时报告 model。省略未知模型和简介。仅上传并不构成作者身份。不要推断旧作品的署名。用户确认的历史参与可以使用,但注册合作伙伴永远不会向旧作品添加署名,也不存在单独的仅元数据署名工具。当完整的源包可用时,使用完整的授权作品更新;否则保留作品并解释缺失的功能/来源。更新时省略的数组保留现有署名;空数组明确清除它们。model 和 contribution 属于每个作品声明,不属于 upsert_ai_partner。通过合作伙伴工具更新现有合作伙伴的显示名称/头像;发布声明不会重命名已注册的名片。合作伙伴通过个人资料/公共作品署名或显式的 show_on_profile: true 请求出现在已启用的主页上。将其设置为 false 仅取消独立显示;它不会隐藏可见作品上的署名。不存在合作伙伴身份删除工具。

封面生成是可选的。传递打包的图像路径作为 cover,或允许平台的标题/分类/图标布局回退。不要要求用户仅为了发布而生成图像。

现有网站与资产权限

使用 submit_website 处理现有的公共 HTTPS 网站。提供其 URL、分类和专用图标;不要复制原始网站的文件或更改其托管。更新使用原始作品身份和当前版本。

仅在拥有的独立资产上使用 set_asset_visibility,并在 get_work 之后;传递当前版本/修订版。公共访问需要用户的明确请求。这会更改权限而无需替换字节。它不适用于网页的依赖项。

当前能力边界与验证

不存在单独更改现有作品标题/摘要/封面/AI 署名的公共工具,而无需提交完整的新版本。平台所有者数据库维护不是通用的插件能力。不要创建空的 HTML 替换或丢失依赖项来仅更改元数据。人类个人资料/合作伙伴名片、列表和独立资产可见性确实有直接的更新工具。

过期的上传草稿在 24 小时后无法提交,并且仍然占用存储。版本为 null 的未使用新作品可以永久删除;不存在仅删除已发布作品的一个废弃草稿版本的公共操作。不要为了清理草稿而删除整个已发布作品。

写入后,重新读取实际的个人资料/作品,并仅验证请求的更改、版本、URL、范围和署名。在自有内容中检查不展示,在已启用主页上检查仅个人主页,在发现中检查公开展示;检查资产访问及其元数据。成功的工具响应或 HTTP 200 不是移动或交互接受的证据。在 409 时重新读取当前状态;在 401/403 时恢复预期的连接/权限。使用相同的幂等键/操作参数重试暂时性失败;重复失败需要具体报告,而不是无限循环。

相关技能