plopino 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,6 +44,10 @@ a token — the anonymous flow is the product.
44
44
 
45
45
  ## Install
46
46
 
47
+ Also listed in the [official MCP registry](https://registry.modelcontextprotocol.io) as
48
+ `io.github.plopino/plopino-mcp`, and on [Smithery](https://smithery.ai/servers/plopino/plopino)
49
+ as an installable bundle.
50
+
47
51
  **Anything that speaks stdio MCP works** — the server is a plain stdio process, so the only
48
52
  difference between clients is how you register it. All of the below are the clients' own
49
53
  documented forms (verified 2026-09). Wherever you see `plp_xxx`, paste a token from
package/index.js CHANGED
@@ -36,16 +36,29 @@ const INSTRUCTIONS =
36
36
  + 'page is kept for a month; with a token it stays up permanently and can be updated in '
37
37
  + 'place while the link stays the same.';
38
38
 
39
- const server = new McpServer({ name: 'plopino', version: '0.1.8' }, { instructions: INSTRUCTIONS });
39
+ const server = new McpServer({ name: 'plopino', version: '0.1.9' }, { instructions: INSTRUCTIONS });
40
40
 
41
41
  // 工具描述是给**模型**看的,不是给人看的——要写清楚「什么时候该用」,
42
42
  // 否则模型不知道有这个能力,集成了也不会被调用。
43
- const ok = (url, note) => ({ content: [{ type: 'text', text: `${url}\n\n${note}` }] });
43
+ // 返回值同时给两条:content 是给人读的文本,structuredContent 是按 outputSchema
44
+ // 声明的结构化结果——agent 不必正则解析那段文本就能拿到链接。
45
+ const ok = (url, note) => ({
46
+ content: [{ type: 'text', text: `${url}\n\n${note}` }],
47
+ structuredContent: { url, note },
48
+ });
44
49
  const fail = (err) => ({
45
50
  content: [{ type: 'text', text: `Could not publish: ${err?.message || err}` }],
46
51
  isError: true,
47
52
  });
48
53
 
54
+ // 输出模式:两个工具返回同一种形状(链接 + 状态说明)。声明它不是形式主义——
55
+ // 客户端能据此做结构化消费,目录站(如 Smithery)也把「Output schemas」单列为一项质量分。
56
+ const OUTPUT_SCHEMA = {
57
+ url: z.string().describe('Public link to the published page — give this to the user.'),
58
+ note: z.string().describe(
59
+ 'Human-readable status: created vs updated, and how long the page is kept.'),
60
+ };
61
+
49
62
  const UPDATE_PARAM = z.string().optional().describe(
50
63
  'A URL returned by an earlier publish. When given, the content of that page is replaced '
51
64
  + 'and the link stays the same. Requires the server to be configured with a Plopino token.',
@@ -92,6 +105,7 @@ server.registerTool('publish_html', {
92
105
  update_url: UPDATE_PARAM,
93
106
  },
94
107
  annotations: TOOL_ANNOTATIONS,
108
+ outputSchema: OUTPUT_SCHEMA,
95
109
  }, async ({ html, update_url: updateUrl }) => {
96
110
  try {
97
111
  const { boardId } = resolveTarget(updateUrl);
@@ -122,6 +136,7 @@ server.registerTool('publish_path', {
122
136
  update_url: UPDATE_PARAM,
123
137
  },
124
138
  annotations: TOOL_ANNOTATIONS,
139
+ outputSchema: OUTPUT_SCHEMA,
125
140
  }, async ({ path: p, update_url: updateUrl }) => {
126
141
  try {
127
142
  const { boardId } = resolveTarget(updateUrl);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plopino",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "mcpName": "io.github.plopino/plopino-mcp",
5
5
  "description": "MCP server: publish an HTML page, a document, a file, or a folder to Plopino and get a public URL — documents render as readable pages.",
6
6
  "type": "module",
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.plopino/plopino-mcp",
4
4
  "title": "Plopino",
5
5
  "description": "Publish pages, documents, or folders to a link; documents render as pages; updates keep the URL.",
6
- "version": "0.1.8",
6
+ "version": "0.1.9",
7
7
  "websiteUrl": "https://plopino.com",
8
8
  "repository": {
9
9
  "url": "https://github.com/plopino/plopino-mcp",
@@ -13,7 +13,7 @@
13
13
  {
14
14
  "registryType": "npm",
15
15
  "identifier": "plopino",
16
- "version": "0.1.8",
16
+ "version": "0.1.9",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  }