关于 Plopino
Plopino 提供发布服务、命令行工具和 MCP 服务,供 Agent 分享生成的页面或本地文件。常见文档会渲染为可阅读页面,也可替换已发布内容并保留原链接。
主要功能
- 01发布生成内容或本地路径
- 02将文档渲染为可读页面
- 03预览代码、数据、图片和视频
- 04更新内容并保留原链接
- 05匿名发布或账户发布
适用场景
- 01分享 Agent 生成的 HTML 页面
- 02发布本地报告或电子表格
- 03修改已发布页面并保留链接
MCP 相关
MCP 服务提供 `publish_page`、`publish_path` 和 `publish_files` 工具,用于发布内容。支持本地 stdio 和托管 HTTP 端点;远程使用提供 `publish_files`,不支持访问本地路径。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 是 | 文件的完整内容,以字符串形式提供。默认文件名下,此内容应为包含 <html> 标签的独立 HTML 文档;对本地文件的相对引用将无法解析,因此如果页面需要同级文件(CSS、JS、图像),请使用 publish_path。 |
| filename | string | 否 | 文件名,用于决定内容的呈现方式,因此请正确设置,不要把 Markdown 重命名为 .html。默认为 "index.html"。可使用 "report.md"、"data.csv"、"query.sql" 等;也支持子目录("reports/q3.md")。只能将文本作为字符串发送;二进制格式(docx、xlsx、pdf)必须通过 publish_path 发送。 |
| update_url | string | 否 | 之前发布时返回的 URL。指定后,该页面的内容将被替换,链接保持不变。要求服务器已配置 Plopino token。 |
详细介绍
plopino
CLI:使用一条命令发布
npx -y plopino publish ./index.html
npx -y plopino publish ./dist --json
npx -y plopino login
npx -y plopino publish ./dist --update https://plopino.com/b/YOUR_BOARD_ID/
npx -y plopino whoami
npx -y plopino logout
login 会提示输入邮箱和隐藏的密码。如有需要,请先在网站上创建账户。登录后会认领使用此 CLI 保存的身份进行的可用匿名上传,报告认领数量,并保存会话以供后续上传使用。已存在的 PLOPINO_TOKEN 会覆盖已保存的会话,用于发布。对于仅通过 Google/GitHub 登录的账户,请使用 API token 进行后续上传;CLI 密码登录要求账户设置了密码。
Cookie 会以未加密的 JSON 格式,按服务器源分别存储在 ~/.config/plopino/ 下。该目录以 0700 权限创建,Cookie 文件以 0600 权限写入;这会限制对你操作系统用户的访问,但并未加密。使用 PLOPINO_CONFIG_DIR 覆盖该目录。
保留此目录,才能继续认领匿名上传。密码绝不会被存储。退出登录会撤销已保存的账户会话,但会保留匿名身份;将共享的操作系统账户交给他人之前,请先退出登录。浏览器会话与 MCP 会话相互独立:仅在网站上登录不会认领 CLI 上传的内容。
如需以非交互方式登录,请使用 login --email [email protected] --password-stdin,通过标准输入从密钥管理器提供密码。不要将密码作为命令行参数传入。--json 会输出结构化结果和错误;发生错误时,退出状态为 1。默认情况下,发布时仅将 URL 写入 stdout,状态信息写入 stderr。
CLI 和 MCP 的目录上传都会跳过 .git、.env*、node_modules、.ssh、.aws 和符号链接。其他文件都会包含在内;请发布你打算分享的输出目录。明确选择的单个文件会按请求上传,因此绝不要选择凭据或其他机密。符号链接输入会被拒绝。
同一服务器的 CLI 命令不能并发运行;进程被强制终止后,下一个命令会识别出过期锁,并在没有命令运行时提示将其移除。
在 npm 发布前进行开发时,请在上面的示例中将 npx -y plopino 替换为 node /path/to/boards/mcp/index.js。
MCP
Plopino 的 MCP 服务(https://plopino.com)——让 AI Agent 发布刚刚构建的内容并返回公开链接,无需用户操作浏览器。
agent writes index.html — or has a report / spreadsheet / markdown on disk
↓ publish_page / publish_path
https://plopino.com/b/xxxxxxxx/
文档是一等公民:Word(doc/docx)、Excel(xls/xlsx)和 Markdown 会呈现为易读页面;代码和数据文件会显示语法高亮预览;图片和视频则会直接显示在页面中。接收者打开链接即可查看,无需下载文件。
工具
| 工具 | 适用场景 |
|---|---|
publish_page | 内容是字符串形式时使用,例如生成的 HTML,或 Markdown / CSV / 代码文档。filename 决定呈现方式:保留为 index.html 时会呈现为页面,传入 report.md 则会呈现为文档。 |
publish_path | 页面需要同级文件(CSS、JS、图片),或要分享已存储在磁盘上的内容时使用,包括任何文档,也包括无法作为字符串发送的二进制格式(docx、xlsx、pdf)。指定一个目录即可保留其结构,无需先压缩成 zip。 |
publish_files | 仅限远程端点。作用与 publish_path 相同,适用于无法提供本地路径的客户端:以内联方式发送文件内容(每个条目包含相对路径及其内容)。 |
两者都接受可选的 update_url:传入之前发布时返回的链接,即可替换该页面的
内容,同时保持链接不变。这需要令牌(见下文)。
发布默认匿名进行:无需账户、配置或 API 密钥。返回的链接是公开的;没有令牌时, 页面会保留一个月;使用令牌时,页面会永久保留,并且可以原位更新。
stdio MCP 服务会复用 CLI 在 ~/.config/plopino/ 中按来源保存的匿名 Cookie
(可通过 PLOPINO_CONFIG_DIR 覆盖)。因此,重复发布和重启 MCP 都会保留相同的匿名身份,
并且可以通过 plopino login 认领这些上传内容。MCP 不会使用已保存的 CLI 登录会话;
账户发布和更新仍需要 PLOPINO_TOKEN。
匿名创建也会返回 claimUrl。这是供发布者使用的私密浏览器链接:
由你自行打开、登录并确认认领,即可将该页面保留在你的账户中。请勿将其
附加到公开 URL,也不要与页面浏览者分享。JSON 输出会将其包含在
claimUrl 中;CLI 发布时,人类可读输出会将其打印到 stderr;Agent 发布时,
则会将其显示在 MCP 工具结果中。
身份验证(可选)
设置 PLOPINO_TOKEN,即可发布到你的账户,而非匿名发布。你将获得私有
看板、保持链接不变的更新,并且不受匿名速率限制的约束。
在 plopino.com/b 创建令牌——面板会提供一条已包含令牌的现成命令 (服务端会保存加密副本,因此你随时都可以回来获取),然后:
claude mcp add plopino --env PLOPINO_TOKEN=plp_xxx -- npx -y plopino
不设置令牌是受支持的配置,并非功能降级。 大多数用户都不需要令牌—— 匿名流程就是本产品的一部分。
安装
也已列入官方 MCP 注册表,名称为
io.github.plopino/plopino-mcp;同时也在 Smithery
上提供可安装的软件包。
Claude Code 插件
此仓库也是一个 Claude Code 插件市场:
claude plugin marketplace add plopino/plopino-mcp
claude plugin install plopino@plopino
该插件连接到 Plopino 的远程 MCP 端点,因此无需本地 Node 进程即可运行。令牌可选; 留空即可匿名发布。
OpenAI Codex / ChatGPT 插件
codex-plugin/ 是 OpenAI 格式的软件包,.agents/plugins/marketplace.json 是
其 Codex 市场条目:
codex plugin marketplace add plopino/plopino-mcp
codex plugin add plopino@plopino
它使用带混合身份验证的远程 MCP 端点:默认匿名,也可以使用 Plopino OAuth 2.1(DCR + PKCE) 进行账户发布和原位更新。同一文件夹也是提交到 OpenAI 目录 ZIP 的单插件根目录软件包。
Claude Desktop 扩展
下载最新的 plopino.mcpb,
然后打开它,或将其拖入 Claude Desktop。这是本地 stdio 服务,可在扩展设置中选择性配置
PLOPINO_TOKEN。
任何支持 stdio MCP 的客户端都能使用——该服务是一个普通的 stdio 进程,因此客户端之间唯一的区别是注册方式。以下都是客户端官方文档中记录的配置形式(已于 2026-09 验证)。看到 plp_xxx 时,请粘贴来自
plopino.com/b 的令牌——该页面会自动填入令牌,并让你选择客户端。如果你的客户端不想运行本地进程,请跳转到
远程端点——无需安装——工具相同,只需一个 URL。
Claude Code
claude mcp add plopino -e PLOPINO_TOKEN=plp_xxx -- npx -y plopino
Codex(CLI 和 IDE 扩展共用 ~/.codex/config.toml)
codex mcp add plopino --env PLOPINO_TOKEN=plp_xxx -- npx -y plopino
Gemini CLI
gemini mcp add -e PLOPINO_TOKEN=plp_xxx plopino npx -y plopino
WorkBuddy — ~/.workbuddy/mcp.json(Windows 上为 %USERPROFILE%\.workbuddy\mcp.json;
需要 WorkBuddy 5.3+),然后重启 WorkBuddy:
{
"mcpServers": {
"plopino": {
"command": "npx",
"args": ["-y", "plopino"],
"env": { "PLOPINO_TOKEN": "plp_xxx" }
}
}
}
Cursor — 在 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局)中使用相同的 JSON。
Windsurf — 在 ~/.codeium/windsurf/mcp_config.json 中使用相同的 JSON。
Claude Desktop — 在 claude_desktop_config.json 中使用相同的 JSON。
VS Code — 配置方式相同,但在 .vscode/mcp.json 中使用的键是 servers,而不是 mcpServers:
{
"servers": {
"plopino": {
"command": "npx",
"args": ["-y", "plopino"],
"env": { "PLOPINO_TOKEN": "plp_xxx" }
}
}
}
没有 npm? 网站上也提供了一个独立的单文件版本。需要两行而不是一行,但无需安装:
curl -fsSL https://plopino.com/plopino-mcp.mjs -o "$HOME/.plopino-mcp.mjs"
claude mcp add plopino -e PLOPINO_TOKEN=plp_xxx -- node "$HOME/.plopino-mcp.mjs"
粘贴时,shell 会展开
"$HOME/…",因此注册时使用的是绝对路径。这一点很重要:MCP 客户端会从任意工作目录启动服务,因此相对路径会导致故障。
然后只需询问:“将此发布到 Plopino”,或 “给我那个页面的链接”。
远程端点——无需安装
以上方式都在你的机器上运行。此外,还有一个托管的 Streamable HTTP 端点,提供相同的工具,适用于支持远程 MCP 服务且不想运行本地进程的客户端:
https://plopino.com/mcp
claude mcp add --transport http plopino https://plopino.com/mcp
任何接受远程服务 URL 的客户端都可以使用同一个地址。身份验证方式相同:如果你有令牌,请发送 Authorization: Bearer plp_xxx;如果没有,也可以匿名发布。
与 stdio 版本相比有两点不同,都是有意为之:
- 远程版本不提供
publish_path。 它需要服务器运行所在机器上的路径——而远程服务器所在的机器并不是你的机器。请使用publish_files并发送文件内容。 - 该端点是无状态的:每个请求都独立处理,无需维持会话。
可自托管 / 本地部署
服务器默认发布到 https://plopino.com。设置 PLOPINO_BASE_URL 即可指向其他实例——例如预发布环境,或你自己的部署:
PLOPINO_BASE_URL=https://plopino.com npx -y plopino
要求
- Node 20 或更高版本(MCP TypeScript SDK v2 所需)。
- 唯一的运行时依赖是 MCP SDK。
开发
npm install
npm test # 路径展开的边界 + 协议握手/工具列表(不需要网络)
如需完整测试发布流程,请运行一个 Plopino 实例,并通过 stdio 向其驱动服务:
PLOPINO_BASE_URL=https://plopino.com node index.js
stdout 是 MCP 协议通道。 写入其中的任何非 JSON-RPC 消息都会导致客户端故障。所有日志都必须写入 stderr——因此应始终使用
console.error,绝不要使用console.log。
隐私政策
完整政策:https://plopino.com/privacy
- 收集的内容。 仅收集发布所需的信息:你传递给工具的文件内容和文件名、目标 URL,以及匿名发布时的请求 IP 地址(用于每日速率限制)。MCP 服务本身不收集任何信息,也不发送遥测数据;它在本地运行,且仅向 stderr 写入日志。匿名发布会写入上文所述的本地身份 Cookie。
- 使用和存储方式。 上传的内容存储在 Plopino 的服务器上,并通过返回的公开链接提供。
PLOPINO_TOKEN存储在你的 MCP 客户端配置中;服务端仅保存其 SHA-256 哈希值。 - 第三方。 不会出售、分享内容或使用数据,也不会将其发送给第三方用于广告。Plopino 使用 Cloudflare 作为 CDN/反向代理,并使用可自托管的 Umami 统计汇总的、无 Cookie 的访问次数。
- 保留期限。 匿名上传内容会在 30 天 后删除;也可以从账户页面提前移除链接。使用令牌进行的上传内容会保留,直到你将其删除或账户关闭。如需请求删除或举报滥用行为,请联系 [email protected]。
- 联系方式。 [email protected](用于举报滥用行为和隐私相关请求),或访问 https://plopino.com/abuse。
说明
publish_path会递归遍历目录,并跳过符号链接——跟随符号链接可能会越出目录树,上传计算机其他位置的文件。- 匿名上传受服务端的 IP 速率限制。
- 只有在调用工具后才会上传内容;服务在启动时不会进行网络 I/O。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。