mcp-server-jotbird 0.1.7 → 0.2.0

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  An [MCP](https://modelcontextprotocol.io/) server for [JotBird](https://www.jotbird.com) that lets any LLM publish Markdown as beautifully formatted, shareable web pages.
4
4
 
5
- Write a document in conversation, publish it with one tool call, and get back a live URL. Supports full Markdown — headings, code blocks, tables, footnotes, math, task lists, and more. Update or delete pages by slug.
5
+ Write a document in conversation, publish it with one tool call, and get back a live URL. Supports full Markdown — headings, code blocks, tables, footnotes, math, task lists, and more. Update or delete pages by slug, and view or change page settings (theme, branding, visibility, password protection).
6
6
 
7
7
  Works with Claude, ChatGPT, Gemini, and any MCP-compatible client.
8
8
 
@@ -116,6 +116,10 @@ Ask your LLM things like:
116
116
  - *"Show me all my published pages"*
117
117
  - *"Take down the page with slug 'old-draft'"*
118
118
  - *"Publish this at my namespace as 'project-notes'"* (Pro)
119
+ - *"What are the settings on my page 'my-notes'?"*
120
+ - *"Switch my page 'launch-plan' to the essay theme"* (Pro)
121
+ - *"Make my page 'resume' public so search engines can find it"*
122
+ - *"Password-protect my page 'board-deck'"* (Pro)
119
123
 
120
124
  ## Tools
121
125
 
@@ -142,8 +146,34 @@ Permanently delete a published page and its shareable URL. Cannot be undone.
142
146
 
143
147
  | Parameter | Required | Description |
144
148
  |-----------|----------|-------------|
145
- | `slug` | Yes | Slug of the page to delete. Use `list_documents` to find slugs. |
146
- | `namespaced` | No | When `true`, delete the document at `@username/slug` instead of the flat URL. Requires Pro and a username. |
149
+ | `slug` | Yes | Slug of the page to delete, or the full `@username/slug` identifier for a namespaced page. Use `list_documents` to find slugs. |
150
+ | `namespaced` | No | When `true`, delete the document at `@username/slug` instead of the flat URL. Unnecessary if the slug already starts with `@username/`. Requires Pro and a username. |
151
+
152
+ ### `get_settings`
153
+
154
+ Get a published page's settings: theme, branding, visibility, tags, and expiration. The page password is write-only and never returned.
155
+
156
+ | Parameter | Required | Description |
157
+ |-----------|----------|-------------|
158
+ | `slug` | Yes | Slug of the page, or the full `@username/slug` identifier. Use `list_documents` to find slugs. |
159
+ | `namespaced` | No | When `true`, resolve the slug at `@username/slug` instead of the flat URL. Unnecessary if the slug already starts with `@username/`. |
160
+
161
+ ### `update_settings`
162
+
163
+ Update a published page's settings. Only the fields you pass change; everything else is preserved. Enabling a Pro feature (non-default theme, `hideBranding: true`, password protection) requires a Pro subscription — any account can clear them.
164
+
165
+ | Parameter | Required | Description |
166
+ |-----------|----------|-------------|
167
+ | `slug` | Yes | Slug of the page to update, or the full `@username/slug` identifier. |
168
+ | `namespaced` | No | When `true`, resolve the slug at `@username/slug` instead of the flat URL. Unnecessary if the slug already starts with `@username/`. |
169
+ | `theme` | No | `default`, `minimal`, `essay`, or `terminal`. Non-default themes are Pro-only. |
170
+ | `hideBranding` | No | Hide the "Published with JotBird" footer. Enabling is Pro-only. |
171
+ | `visibility` | No | `unlisted` (default), `public` (search-indexable), or `password` (Pro). Setting a visibility clears any previous password. |
172
+ | `password` | No | Required with (and only valid with) `visibility: "password"`. Never echoed back. |
173
+
174
+ At least one of `theme`, `hideBranding`, or `visibility` must be provided.
175
+
176
+ Settings changes are reflected in the API immediately, but the live page can take up to about a minute to reflect a relaxed visibility (enabling password protection is instant). Theme and branding apply right away.
147
177
 
148
178
  ## Namespaced URLs (Pro)
149
179
 
package/dist/index.js CHANGED
@@ -41,15 +41,133 @@ const PublishArgs = z.object({
41
41
  .describe("When true, publish at your namespace: share.jotbird.com/@username/slug. " +
42
42
  "Requires a Pro subscription and a username set in Account Settings. " +
43
43
  "A slug is required when namespaced is true."),
44
- });
45
- const DeleteArgs = z.object({
46
- slug: z.string().describe("The slug of the document to delete"),
44
+ })
45
+ // Strict for the same reason as the settings schemas: a stripped key is a
46
+ // silent partial success. A model that passes `theme` here (settings belong to
47
+ // update_settings) should be told, not quietly published with the default.
48
+ .strict();
49
+ const THEMES = ["default", "minimal", "essay", "terminal"];
50
+ const VISIBILITIES = ["unlisted", "password", "public"];
51
+ /**
52
+ * Split an "@username/slug" identifier into its parts.
53
+ *
54
+ * list_documents reports a namespaced page's identity as "@username/slug", and
55
+ * the tool descriptions point at it to find slugs — so that string is exactly
56
+ * what a model passes back. Taken literally it addresses a FLAT slug that does
57
+ * not exist, and the call 404s on a page that plainly does. Mirrors
58
+ * parseSlugValue/resolveTarget in the CLI.
59
+ */
60
+ function parseTarget(slug, namespaced) {
61
+ if (slug.startsWith("@") && slug.includes("/")) {
62
+ return { slug: slug.slice(slug.indexOf("/") + 1), namespaced: true };
63
+ }
64
+ return { slug, namespaced: Boolean(namespaced) };
65
+ }
66
+ // Every tool that addresses an existing page shares this target, and it
67
+ // NORMALIZES ITSELF: parsing yields the resolved {slug, namespaced} and nothing
68
+ // else, so a handler cannot forget to call parseTarget (three hand-written call
69
+ // sites is how the "@username/slug" bug shipped in the first place). `target`
70
+ // preserves what the caller actually typed, for echoing back in messages.
71
+ //
72
+ // The post-transform length check is the load-bearing half: "@user/" splits to
73
+ // an EMPTY slug, which would otherwise sail through `z.string()` and request
74
+ // `/api/v1/documents//settings` — and `delete` would then cheerfully confirm a
75
+ // deletion that never happened.
76
+ //
77
+ // `.strict()` matters for the same class of reason: zod's default is to STRIP
78
+ // unknown keys, which would turn a patch the server rejects (its contract 400s
79
+ // on an unknown key) into a silent partial success. `tags` is the trap —
80
+ // get_settings reports them, so a model naturally tries to set them, and a
81
+ // stripped key would come back as "Settings updated".
82
+ const TargetShape = {
83
+ slug: z
84
+ .string()
85
+ .trim()
86
+ .min(1)
87
+ .describe("Slug of the page, or the full @username/slug identifier"),
47
88
  namespaced: z
48
89
  .boolean()
49
90
  .optional()
50
- .describe("When true, delete the document at @username/slug instead of the flat URL. " +
51
- "Requires a Pro subscription and a username set in Account Settings."),
52
- });
91
+ .describe("When true, resolve the slug at @username/slug instead of the flat URL."),
92
+ };
93
+ function normalizeTarget(a) {
94
+ return { ...a, ...parseTarget(a.slug, a.namespaced), target: a.slug };
95
+ }
96
+ const EMPTY_SLUG = 'slug must name a page, e.g. "my-notes" or "@username/my-notes".';
97
+ const hasSlug = (a) => a.slug.length > 0;
98
+ const TargetArgs = z.object(TargetShape).strict();
99
+ // get_settings and delete take nothing but a target, so they share one schema.
100
+ const NormalizedTargetArgs = TargetArgs.transform(normalizeTarget).refine(hasSlug, { message: EMPTY_SLUG, path: ["slug"] });
101
+ const GetSettingsArgs = NormalizedTargetArgs;
102
+ const DeleteArgs = NormalizedTargetArgs;
103
+ const UpdateSettingsArgs = TargetArgs.extend({
104
+ theme: z.enum(THEMES).optional().describe("Page theme"),
105
+ hideBranding: z
106
+ .boolean()
107
+ .optional()
108
+ .describe("Hide the JotBird footer branding (true is Pro-only)"),
109
+ visibility: z.enum(VISIBILITIES).optional().describe("Page visibility state"),
110
+ password: z
111
+ .string()
112
+ .optional()
113
+ .describe("Page password; required with (and only valid with) visibility \"password\""),
114
+ })
115
+ // These mirror the server's validation. Rejecting locally matters because a
116
+ // PATCH is charged against the hourly rate limit BEFORE validation — a
117
+ // request the server will always refuse would still burn a write.
118
+ //
119
+ // One superRefine rather than chained .refine()s: chained refinements abort at
120
+ // the first failure, so `{password}` with no visibility reported only the
121
+ // generic "provide at least one setting" and never mentioned the password it
122
+ // was about to drop. superRefine collects every issue, and the explicit paths
123
+ // keep the rendered message field-anchored.
124
+ .superRefine((a, ctx) => {
125
+ if (a.password !== undefined && a.visibility !== "password") {
126
+ ctx.addIssue({
127
+ code: z.ZodIssueCode.custom,
128
+ path: ["password"],
129
+ message: 'password is only valid with visibility "password".',
130
+ });
131
+ }
132
+ if (a.visibility === "password" && (a.password ?? "") === "") {
133
+ ctx.addIssue({
134
+ code: z.ZodIssueCode.custom,
135
+ path: ["password"],
136
+ message: 'visibility "password" requires a non-empty password.',
137
+ });
138
+ }
139
+ if (a.theme === undefined &&
140
+ a.hideBranding === undefined &&
141
+ a.visibility === undefined) {
142
+ ctx.addIssue({
143
+ code: z.ZodIssueCode.custom,
144
+ path: [],
145
+ message: "Provide at least one setting to change: theme, hideBranding, or visibility.",
146
+ });
147
+ }
148
+ })
149
+ .transform(normalizeTarget)
150
+ .refine(hasSlug, { message: EMPTY_SLUG, path: ["slug"] });
151
+ // ---------------------------------------------------------------------------
152
+ // Formatting
153
+ // ---------------------------------------------------------------------------
154
+ function formatSettings(s) {
155
+ const identifier = s.username ? `@${s.username}/${s.slug}` : s.slug;
156
+ const lines = [
157
+ `Slug: ${identifier}`,
158
+ `URL: ${s.url}`,
159
+ // `||`, not `??`: an untitled page comes back as "" as readily as null, and
160
+ // `??` would render a bare "Title: ".
161
+ `Title: ${s.title || "(untitled)"}`,
162
+ `Theme: ${s.theme}`,
163
+ `Branding: ${s.hideBranding ? "hidden" : "shown"}`,
164
+ `Visibility: ${s.visibility}`,
165
+ ];
166
+ if (s.tags?.length)
167
+ lines.push(`Tags: ${s.tags.join(", ")}`);
168
+ lines.push(`Expires: ${s.expiresAt ?? "never"}`);
169
+ return lines.join("\n");
170
+ }
53
171
  // ---------------------------------------------------------------------------
54
172
  // MCP server factory (exported for testing)
55
173
  // ---------------------------------------------------------------------------
@@ -71,8 +189,14 @@ export function createServer(apiKey, apiBase) {
71
189
  const retryAfter = res.headers.get("Retry-After");
72
190
  throw new Error(`Rate limit exceeded.${retryAfter ? ` Try again in ${retryAfter} seconds.` : ""}`);
73
191
  }
74
- const msg = data?.error ?? `HTTP ${res.status}`;
75
- throw new Error(String(msg));
192
+ const body = data;
193
+ let msg = String(body?.error ?? `HTTP ${res.status}`);
194
+ // Pro-gated settings 403s name the offending setting — surface it so the
195
+ // model can tell the user which feature needs Pro instead of guessing.
196
+ if (res.status === 403 && body?.setting) {
197
+ msg += ` (Pro required for: ${String(body.setting)})`;
198
+ }
199
+ throw new Error(msg);
76
200
  }
77
201
  return data;
78
202
  }
@@ -91,6 +215,21 @@ export function createServer(apiKey, apiBase) {
91
215
  params.set("namespaced", "true");
92
216
  return apiRequest(`/api/v1/documents?${params.toString()}`, { method: "DELETE" });
93
217
  }
218
+ function settingsPath(slug, namespaced) {
219
+ let path = `/api/v1/documents/${encodeURIComponent(slug)}/settings`;
220
+ if (namespaced)
221
+ path += "?namespaced=true";
222
+ return path;
223
+ }
224
+ async function getSettings(slug, namespaced) {
225
+ return apiRequest(settingsPath(slug, namespaced));
226
+ }
227
+ async function updateSettings(slug, patch, namespaced) {
228
+ return apiRequest(settingsPath(slug, namespaced), {
229
+ method: "PATCH",
230
+ body: JSON.stringify(patch),
231
+ });
232
+ }
94
233
  // -- Server setup --
95
234
  const server = new Server({ name: "mcp-server-jotbird", version: VERSION }, { capabilities: { tools: {} } });
96
235
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
@@ -154,18 +293,95 @@ export function createServer(apiKey, apiBase) {
154
293
  properties: {
155
294
  slug: {
156
295
  type: "string",
157
- description: "Slug of the page to delete (e.g. 'my-notes'). " +
296
+ description: "Slug of the page to delete (e.g. 'my-notes'), or the full " +
297
+ "'@username/my-notes' identifier for a namespaced page. " +
158
298
  "Use list_documents to find slugs.",
159
299
  },
160
300
  namespaced: {
161
301
  type: "boolean",
162
302
  description: "When true, delete the document at @username/slug instead of the flat URL. " +
303
+ "Unnecessary if the slug already starts with '@username/'. " +
163
304
  "Requires a Pro subscription and a username set in Account Settings.",
164
305
  },
165
306
  },
166
307
  required: ["slug"],
167
308
  },
168
309
  },
310
+ {
311
+ name: "get_settings",
312
+ description: "Get a published JotBird page's settings: theme, branding, visibility " +
313
+ "(unlisted/password/public), tags, and expiration. Use before changing " +
314
+ "settings or when the user asks how a page is configured. The page " +
315
+ "password is write-only and never returned.",
316
+ inputSchema: {
317
+ type: "object",
318
+ properties: {
319
+ slug: {
320
+ type: "string",
321
+ description: "Slug of the page (e.g. 'my-notes'), or the full '@username/my-notes' " +
322
+ "identifier for a namespaced page. Use list_documents to find slugs.",
323
+ },
324
+ namespaced: {
325
+ type: "boolean",
326
+ description: "When true, resolve the slug at @username/slug instead of the flat URL. " +
327
+ "Unnecessary if the slug already starts with '@username/'.",
328
+ },
329
+ },
330
+ required: ["slug"],
331
+ },
332
+ },
333
+ {
334
+ name: "update_settings",
335
+ description: "Update a published JotBird page's settings: theme, branding, and " +
336
+ "visibility. Only the provided fields change; others are preserved. " +
337
+ "Pro-only: non-default themes, hiding branding, and password " +
338
+ "protection (free accounts can clear these and switch " +
339
+ "unlisted/public). Visibility semantics: 'unlisted' (default — not " +
340
+ "indexed by search engines), 'public' (indexable, listed in the " +
341
+ "sitemap), 'password' (Pro — requires the password argument; setting " +
342
+ "a visibility clears any previous password). The API reflects changes " +
343
+ "immediately, but the live page can take up to about a minute to " +
344
+ "reflect a relaxed visibility (enabling password protection is " +
345
+ "instant) — a briefly stale page is not a failed update.",
346
+ inputSchema: {
347
+ type: "object",
348
+ properties: {
349
+ slug: {
350
+ type: "string",
351
+ description: "Slug of the page to update (e.g. 'my-notes'), or the full " +
352
+ "'@username/my-notes' identifier for a namespaced page. " +
353
+ "Use list_documents to find slugs.",
354
+ },
355
+ namespaced: {
356
+ type: "boolean",
357
+ description: "When true, resolve the slug at @username/slug instead of the flat URL. " +
358
+ "Unnecessary if the slug already starts with '@username/'.",
359
+ },
360
+ theme: {
361
+ type: "string",
362
+ enum: [...THEMES],
363
+ description: "Page theme. Any non-default theme requires a Pro subscription.",
364
+ },
365
+ hideBranding: {
366
+ type: "boolean",
367
+ description: "Hide the 'Published with JotBird' footer. Enabling requires Pro; " +
368
+ "any account can set it back to false.",
369
+ },
370
+ visibility: {
371
+ type: "string",
372
+ enum: [...VISIBILITIES],
373
+ description: "Page visibility: 'unlisted' (default), 'public' (search-indexable), " +
374
+ "or 'password' (Pro; requires the password argument).",
375
+ },
376
+ password: {
377
+ type: "string",
378
+ description: "Page password. Required with (and only valid with) visibility " +
379
+ "'password'. Write-only — it is never echoed back.",
380
+ },
381
+ },
382
+ required: ["slug"],
383
+ },
384
+ },
169
385
  ],
170
386
  }));
171
387
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
@@ -218,13 +434,48 @@ export function createServer(apiKey, apiBase) {
218
434
  };
219
435
  }
220
436
  case "delete": {
221
- const { slug, namespaced } = DeleteArgs.parse(args);
437
+ const { slug, namespaced, target } = DeleteArgs.parse(args);
222
438
  await deleteDocument(slug, namespaced);
223
439
  return {
224
440
  content: [
225
441
  {
226
442
  type: "text",
227
- text: `Deleted document "${slug}".`,
443
+ text: `Deleted document "${target}".`,
444
+ },
445
+ ],
446
+ };
447
+ }
448
+ case "get_settings": {
449
+ const { slug, namespaced } = GetSettingsArgs.parse(args);
450
+ const settings = await getSettings(slug, namespaced);
451
+ return {
452
+ content: [{ type: "text", text: formatSettings(settings) }],
453
+ };
454
+ }
455
+ case "update_settings": {
456
+ const { slug, namespaced, target: _target, ...patch } = UpdateSettingsArgs.parse(args);
457
+ // Pre-flight every write with the GET (which is not rate-limited):
458
+ // PATCH is charged against the hourly write limit BEFORE validation,
459
+ // even when it 404s, so a mistyped slug would otherwise silently eat
460
+ // one of a free account's 10 writes per hour.
461
+ //
462
+ // The result is deliberately NOT used to skip a PATCH whose values
463
+ // already match. Re-applying identical settings is the documented way
464
+ // to repair drift and to finish a partially-applied patch ("a retry of
465
+ // the same PATCH is idempotent" — PAGE_SETTINGS_ARCHITECTURE.md), and
466
+ // the CLI always writes. Saving a rate-limit unit isn't worth being the
467
+ // one client that can't force a re-apply.
468
+ await getSettings(slug, namespaced);
469
+ const settings = await updateSettings(slug, patch, namespaced);
470
+ const note = patch.visibility !== undefined
471
+ ? "\n\nNote: the live page can take up to about a minute to reflect " +
472
+ "a visibility change (enabling password protection is instant)."
473
+ : "";
474
+ return {
475
+ content: [
476
+ {
477
+ type: "text",
478
+ text: `Settings updated.\n${formatSettings(settings)}${note}`,
228
479
  },
229
480
  ],
230
481
  };
@@ -240,8 +491,10 @@ export function createServer(apiKey, apiBase) {
240
491
  }
241
492
  catch (error) {
242
493
  if (error instanceof z.ZodError) {
494
+ // Cross-field refinements can carry an empty path; prefixing those with
495
+ // ": " renders a stray double colon ("Validation error: : Provide …").
243
496
  const issues = error.issues
244
- .map((i) => `${i.path.join(".")}: ${i.message}`)
497
+ .map((i) => (i.path.length ? `${i.path.join(".")}: ${i.message}` : i.message))
245
498
  .join("; ");
246
499
  return {
247
500
  content: [
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-jotbird",
3
- "version": "0.1.7",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for JotBird – publish Markdown documents from any LLM",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",