snapy-mcp 1.1.1 → 1.1.2
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 +3 -3
- package/index.js +7 -6
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# snapy-mcp
|
|
2
2
|
|
|
3
|
-
An MCP server that gives an AI assistant (Claude and other MCP clients) a `publish` tool. The assistant can publish text or HTML to
|
|
3
|
+
An MCP server that gives an AI assistant (Claude and other MCP clients) a `publish` tool. The assistant can publish text or HTML to Snapy.host and get back a shareable link.
|
|
4
4
|
|
|
5
5
|
## Breaking change in 1.1.0: an API key is required
|
|
6
6
|
|
|
7
7
|
**Versions before 1.1.0 no longer work.** They publish without a credential, and the
|
|
8
|
-
|
|
8
|
+
Snapy.host publish API no longer accepts that — for any file type.
|
|
9
9
|
|
|
10
10
|
Publishing anonymously was a contradiction in the product: the website has always made
|
|
11
11
|
you verify an email address before your link goes live, while the API did not. It has
|
|
@@ -39,7 +39,7 @@ npm install
|
|
|
39
39
|
node index.js
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
The tool calls the
|
|
42
|
+
The tool calls the Snapy.host publish API at `https://api.snapy.host`. Set `SNAPY_API` to
|
|
43
43
|
override the host, and `SNAPY_API_KEY` to supply your key (required).
|
|
44
44
|
|
|
45
45
|
Without a key the `publish` tool returns an error telling you to create one, rather than
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// snapy MCP server: gives an assistant (Claude, etc.) a "publish" tool that uploads
|
|
3
|
-
// text or HTML to
|
|
3
|
+
// text or HTML to Snapy.host and returns a shareable link. Talks to the public publish API.
|
|
4
4
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
6
|
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
@@ -23,7 +23,8 @@ const API = process.env.SNAPY_API || "https://api.snapy.host";
|
|
|
23
23
|
const KEY = process.env.SNAPY_API_KEY || "";
|
|
24
24
|
|
|
25
25
|
const server = new Server(
|
|
26
|
-
{ name: "snapy", version: "1.1.
|
|
26
|
+
{ name: "snapy", title: "Snapy.host", version: "1.1.1",
|
|
27
|
+
websiteUrl: "https://snapy.host" },
|
|
27
28
|
{ capabilities: { tools: {} } }
|
|
28
29
|
);
|
|
29
30
|
|
|
@@ -32,7 +33,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
32
33
|
{
|
|
33
34
|
name: "publish",
|
|
34
35
|
description:
|
|
35
|
-
"Publish text or HTML content to
|
|
36
|
+
"Publish text or HTML content to Snapy.host and get back a shareable link that opens in any browser. Use this to host a page or file you created and return the link.",
|
|
36
37
|
inputSchema: {
|
|
37
38
|
type: "object",
|
|
38
39
|
properties: {
|
|
@@ -54,7 +55,7 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
54
55
|
if (!KEY) {
|
|
55
56
|
return {
|
|
56
57
|
content: [{ type: "text", text:
|
|
57
|
-
"
|
|
58
|
+
"Snapy.host: set SNAPY_API_KEY before publishing. Create a free key at " +
|
|
58
59
|
"https://snapy.host/dashboard (API keys) with a verified email address, then put " +
|
|
59
60
|
"it in this server's env as SNAPY_API_KEY. Publishing without an account is no " +
|
|
60
61
|
"longer possible." }],
|
|
@@ -69,7 +70,7 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
69
70
|
});
|
|
70
71
|
const data = await res.json();
|
|
71
72
|
if (!res.ok) {
|
|
72
|
-
return { content: [{ type: "text", text: "
|
|
73
|
+
return { content: [{ type: "text", text: "Snapy.host error: " + (data.error || res.status) }], isError: true };
|
|
73
74
|
}
|
|
74
75
|
return {
|
|
75
76
|
content: [{ type: "text", text: `Published. Link: ${data.url}\nPrivate analytics: ${data.stats_url}` }],
|
|
@@ -81,4 +82,4 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
81
82
|
|
|
82
83
|
const transport = new StdioServerTransport();
|
|
83
84
|
await server.connect(transport);
|
|
84
|
-
console.error("
|
|
85
|
+
console.error("Snapy.host MCP server running on stdio");
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snapy-mcp",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "MCP server to publish files and pages to
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "MCP server to publish files and pages to Snapy.host and get a shareable link.",
|
|
5
5
|
"homepage": "https://snapy.host/integrations/mcp",
|
|
6
6
|
"author": "Snapy",
|
|
7
|
+
"mcpName": "host.snapy/snapy",
|
|
7
8
|
"keywords": [
|
|
8
9
|
"mcp",
|
|
9
10
|
"mcp-server",
|
|
@@ -25,6 +26,10 @@
|
|
|
25
26
|
"bin": {
|
|
26
27
|
"snapy-mcp": "index.js"
|
|
27
28
|
},
|
|
29
|
+
"files": [
|
|
30
|
+
"index.js",
|
|
31
|
+
"README.md"
|
|
32
|
+
],
|
|
28
33
|
"engines": {
|
|
29
34
|
"node": ">=18"
|
|
30
35
|
},
|