brewpage-mcp 1.16.7 → 1.16.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
@@ -17,7 +17,7 @@ Choosing a host? See how BrewPage compares with GitHub Pages, Netlify Drop, Tiin
17
17
  ## Quick Start
18
18
 
19
19
  ```bash
20
- npx -y brewpage-mcp@1.16.7
20
+ npx -y brewpage-mcp@1.16.9
21
21
  ```
22
22
 
23
23
  Requires Node.js 20 or newer. This starts the stdio server for an MCP client.
@@ -50,7 +50,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
50
50
  "mcpServers": {
51
51
  "brewpage": {
52
52
  "command": "npx",
53
- "args": ["-y", "brewpage-mcp@1.16.7"]
53
+ "args": ["-y", "brewpage-mcp@1.16.9"]
54
54
  }
55
55
  }
56
56
  }
@@ -61,7 +61,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
61
61
  Register a project-scoped stdio server:
62
62
 
63
63
  ```bash
64
- claude mcp add --transport stdio --scope project brewpage -- npx -y brewpage-mcp@1.16.7
64
+ claude mcp add --transport stdio --scope project brewpage -- npx -y brewpage-mcp@1.16.9
65
65
  ```
66
66
 
67
67
  This writes `.mcp.json` in the project root. Use `--scope user` for user-scoped registration. See the [official Claude Code MCP guide](https://code.claude.com/docs/en/mcp).
@@ -75,7 +75,7 @@ Open **Settings > MCP** and add:
75
75
  "mcpServers": {
76
76
  "brewpage": {
77
77
  "command": "npx",
78
- "args": ["-y", "brewpage-mcp@1.16.7"]
78
+ "args": ["-y", "brewpage-mcp@1.16.9"]
79
79
  }
80
80
  }
81
81
  }
@@ -89,7 +89,7 @@ Open the Cline MCP settings panel and add:
89
89
  {
90
90
  "brewpage": {
91
91
  "command": "npx",
92
- "args": ["-y", "brewpage-mcp@1.16.7"]
92
+ "args": ["-y", "brewpage-mcp@1.16.9"]
93
93
  }
94
94
  }
95
95
  ```
@@ -97,7 +97,7 @@ Open the Cline MCP settings panel and add:
97
97
  ### Global Install
98
98
 
99
99
  ```bash
100
- npm install -g brewpage-mcp@1.16.7
100
+ npm install -g brewpage-mcp@1.16.9
101
101
  brewpage-mcp
102
102
  ```
103
103
 
@@ -530,6 +530,14 @@ Every publish response includes an **owner token** -- the only credential that a
530
530
 
531
531
  ## Changelog
532
532
 
533
+ ## 1.16.9 -- 2026-11-05
534
+
535
+ - A publish result without an owner token (`result.extras.isOwner` false) prints a neutral line instead of naming another owner. Contract 2.9.6. `User-Agent: brewpage-mcp/1.16.9`.
536
+
537
+ ## 1.16.8 -- 2026-11-02
538
+
539
+ - Local (stdio) `publish_file` source downloads send `User-Agent: brewpage-mcp/1.16.8`, like every BrewPage call.
540
+
533
541
  ## 1.16.7 -- 2026-11-01
534
542
 
535
543
  - Owner tools answer a 404 `WRONG_RESOURCE_TYPE` (this id lives under another type) with the server body plus the `resourceUrl` to repeat the write at, instead of the publish-anew hint. Contract 2.8.58.
package/dist/tools.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { McpServer } from "@modelcontextprotocol/server";
2
2
  export declare const DEFAULT_BASE_URL = "https://brewpage.app";
3
- export declare const USER_AGENT = "brewpage-mcp/1.16.7";
3
+ export declare const USER_AGENT = "brewpage-mcp/1.16.9";
4
4
  export declare const OWNER_TOKEN_ENV = "BREWPAGE_OWNER_TOKEN";
5
5
  export interface ServerOptions {
6
6
  /** BrewPage origin for API calls; default https://brewpage.app. */
package/dist/tools.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { z } from "zod";
3
3
  export const DEFAULT_BASE_URL = "https://brewpage.app";
4
- export const USER_AGENT = "brewpage-mcp/1.16.7";
4
+ export const USER_AGENT = "brewpage-mcp/1.16.9";
5
5
  export const OWNER_TOKEN_ENV = "BREWPAGE_OWNER_TOKEN";
6
6
  const READ_ONLY = { readOnlyHint: true };
7
7
  const DESTRUCTIVE = { readOnlyHint: false, destructiveHint: true };
@@ -206,9 +206,9 @@ function formatUpdateResponse(data) {
206
206
  lines.push(...hostingResponseLines(data));
207
207
  return lines.join("\n");
208
208
  }
209
- /** Stdio source download: plain fetch; a non-2xx answer becomes the tool error. */
209
+ /** Stdio source download: plain fetch with the client User-Agent; a non-2xx answer becomes the tool error. */
210
210
  async function plainFetchSource(url) {
211
- const res = await fetch(url);
211
+ const res = await fetch(url, { headers: { "User-Agent": USER_AGENT } });
212
212
  if (!res.ok)
213
213
  throw new Error(`Failed to fetch file from URL: ${res.status} ${res.statusText}`);
214
214
  return res.blob();
@@ -223,7 +223,7 @@ export function createServer(options = {}) {
223
223
  const apiFetch = options.fetch ?? fetch;
224
224
  const server = new McpServer({
225
225
  name: "brewpage-mcp",
226
- version: "1.16.7",
226
+ version: "1.16.9",
227
227
  });
228
228
  /** Caller argument first, then the configured default; `fromEnv` marks the configured one. */
229
229
  function ownerTokenFor(argument) {
@@ -238,13 +238,13 @@ export function createServer(options = {}) {
238
238
  headers.set("User-Agent", userAgent);
239
239
  return apiFetch(url, { ...init, headers });
240
240
  }
241
- /** Owner token banner; the configured default is named, never repeated; none for a foreign existing publication.
241
+ /** Owner token banner; the configured default is named, never repeated; none when result.extras.isOwner is false.
242
242
  * Sign-in hint only for a token minted by this call (not `sent`, not the configured default). */
243
243
  function ownerTokenLines(data, purpose, sent) {
244
244
  const token = data.ownerToken;
245
245
  const extras = data.result?.extras;
246
246
  if (extras?.isOwner === false)
247
- return [``, `No owner token: an existing publication of another owner was returned.`];
247
+ return [``, `No owner token returned for this publication; it cannot be edited or deleted with this call.`];
248
248
  if (typeof token !== "string" || token.length === 0)
249
249
  return [];
250
250
  const shown = defaultOwnerToken !== undefined && token === defaultOwnerToken ? `${OWNER_TOKEN_ENV} (not repeated)` : token;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brewpage-mcp",
3
- "version": "1.16.7",
3
+ "version": "1.16.9",
4
4
  "mcpName": "io.github.kochetkov-ma/brewpage-mcp",
5
5
  "description": "MCP server for BrewPage — publish and manage HTML, sites, KV, JSON and files from AI assistants",
6
6
  "type": "module",