brewpage-mcp 1.23.0 → 1.23.1
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 +9 -5
- package/dist/guides/page-data.js +2 -2
- package/dist/tools.d.ts +1 -1
- package/dist/tools.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ Claude Code: `claude mcp add --transport http brewpage --scope user https://brew
|
|
|
38
38
|
For clients that only start local servers; the same tools as the server URL.
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx -y brewpage-mcp@1.23.
|
|
41
|
+
npx -y brewpage-mcp@1.23.1
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Requires Node.js 20 or newer. This starts the stdio server for an MCP client.
|
|
@@ -63,7 +63,7 @@ Local fallback (stdio, needs Node.js; the same tools): add to `~/Library/Applica
|
|
|
63
63
|
"mcpServers": {
|
|
64
64
|
"brewpage": {
|
|
65
65
|
"command": "npx",
|
|
66
|
-
"args": ["-y", "brewpage-mcp@1.23.
|
|
66
|
+
"args": ["-y", "brewpage-mcp@1.23.1"]
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -86,7 +86,7 @@ Custom servers follow your ChatGPT plan and workspace settings.
|
|
|
86
86
|
The remote command above is the default. Local fallback: register a project-scoped stdio server:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
claude mcp add --transport stdio --scope project brewpage -- npx -y brewpage-mcp@1.23.
|
|
89
|
+
claude mcp add --transport stdio --scope project brewpage -- npx -y brewpage-mcp@1.23.1
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
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).
|
|
@@ -110,7 +110,7 @@ Local fallback (stdio, needs Node.js; the same tools): open **Settings > MCP** a
|
|
|
110
110
|
"mcpServers": {
|
|
111
111
|
"brewpage": {
|
|
112
112
|
"command": "npx",
|
|
113
|
-
"args": ["-y", "brewpage-mcp@1.23.
|
|
113
|
+
"args": ["-y", "brewpage-mcp@1.23.1"]
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
}
|
|
@@ -124,7 +124,7 @@ Open the Cline MCP settings panel and add:
|
|
|
124
124
|
{
|
|
125
125
|
"brewpage": {
|
|
126
126
|
"command": "npx",
|
|
127
|
-
"args": ["-y", "brewpage-mcp@1.23.
|
|
127
|
+
"args": ["-y", "brewpage-mcp@1.23.1"]
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
```
|
|
@@ -769,6 +769,10 @@ Every publish response includes an **owner token** -- the only credential that a
|
|
|
769
769
|
|
|
770
770
|
## Changelog
|
|
771
771
|
|
|
772
|
+
## 1.23.1 -- 2026-11-15
|
|
773
|
+
|
|
774
|
+
- Page data guide (`get_guide` topic `page-data`) regenerated from BrewPage's Browser SDK text: the totals example uses `onStats`, which shows the totals now and again right after the page's own saves (`stats()` can lag a save by up to 30 s). Thirty-two tools. Contract 2.36.0. `User-Agent: brewpage-mcp/1.23.1`.
|
|
775
|
+
|
|
772
776
|
## 1.23.0 -- 2026-11-14
|
|
773
777
|
|
|
774
778
|
- Page data guide (`get_guide` topic `page-data`) regenerated from BrewPage's new Browser SDK text: build, try locally, publish. It adds the local preview (a page opened from disk or localhost keeps entries in that browser and sends nothing: `s.local`, `?bp-local=owner`, `?bp-local=off`; the same file works unchanged once published with `state`) and the owner view (`s.role`, `s.onRole`, `list({all: true})`, `removeById`, error `not_owner`). Custom domains: 400 `DOMAIN_NOT_REGISTERED` and the notice `domain-not-registered` name the next step (buy the domain from a registrar first, or check its spelling); the `NOT_ELIGIBLE` reasons `EXPIRED` and `MODE` name the server's next step; the `DOMAIN_TAKEN` and `CHECK_PAUSED` problem texts follow the site. `ttlDays` states the contract. Thirty-two tools. Contract 2.36.0. `User-Agent: brewpage-mcp/1.23.0`.
|
package/dist/guides/page-data.js
CHANGED
|
@@ -14,7 +14,7 @@ export const PAGE_DATA_GUIDE = [
|
|
|
14
14
|
" const v = s.col(\"votes\");",
|
|
15
15
|
" await v.set(\"me\", {choice: \"a\"}); // key A-Za-z0-9_.-, no leading _, <=128; \"me\" = one per visitor",
|
|
16
16
|
" await v.get(\"me\"); // value or null; remove(key) -> true if it existed",
|
|
17
|
-
"
|
|
17
|
+
" v.onStats({countBy: \"choice\"}, show); // show({count, by}) now + after own saves; stats() lags <=30 s",
|
|
18
18
|
" }",
|
|
19
19
|
" start();",
|
|
20
20
|
" bp.storage.ready.then(() => bp.storage.setItem(\"k\", \"v\")); // localStorage-like, synced; works where s is null",
|
|
@@ -33,7 +33,7 @@ export const PAGE_DATA_GUIDE = [
|
|
|
33
33
|
"5) Publish: POST https://brewpage.app/api/html, Content-Type: application/json, body {\"content\":\"<html>...\",\"state\":{...}}; sites: multipart field \"state\".",
|
|
34
34
|
" Raw HTML body cannot carry state (or PATCH /api/{ns}/{id}/state later). Own address https://<label>.brewpage.app (or custom domain).",
|
|
35
35
|
" Give the user the page link (`link`) and the management link (`manageUrl`, private; Data tab shows entries).",
|
|
36
|
-
" On the published link: one save
|
|
36
|
+
" On the published link: one save shows in the Data tab; lists behave as declared.",
|
|
37
37
|
"6) Errors: e.code: rate_limited (e.retryAfter), quota, too_large, value_refused, mode_forbidden, not_owner, challenge_cancelled,",
|
|
38
38
|
" challenge_failed, challenge_unavailable, not_found, invalid_argument, network, unavailable, error.",
|
|
39
39
|
" Own CSP: allow https://challenges.cloudflare.com (script-src, frame-src).",
|
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.23.
|
|
3
|
+
export declare const USER_AGENT = "brewpage-mcp/1.23.1";
|
|
4
4
|
export declare const OWNER_TOKEN_ENV = "BREWPAGE_OWNER_TOKEN";
|
|
5
5
|
/** Server instructions of the handshake: one paragraph per line; the first stands alone within 512 chars. */
|
|
6
6
|
export declare const SERVER_INSTRUCTIONS: string;
|
package/dist/tools.js
CHANGED
|
@@ -3,7 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { DOMAIN_PROBLEMS, DOMAIN_STATUSES } from "./guides/custom-domain.js";
|
|
4
4
|
import { PAGE_DATA_CALLS, PAGE_DATA_GUIDE } from "./guides/page-data.js";
|
|
5
5
|
export const DEFAULT_BASE_URL = "https://brewpage.app";
|
|
6
|
-
export const USER_AGENT = "brewpage-mcp/1.23.
|
|
6
|
+
export const USER_AGENT = "brewpage-mcp/1.23.1";
|
|
7
7
|
export const OWNER_TOKEN_ENV = "BREWPAGE_OWNER_TOKEN";
|
|
8
8
|
/** Server instructions of the handshake: one paragraph per line; the first stands alone within 512 chars. */
|
|
9
9
|
export const SERVER_INSTRUCTIONS = [
|
|
@@ -599,7 +599,7 @@ export function createServer(options = {}) {
|
|
|
599
599
|
const apiFetch = options.fetch ?? fetch;
|
|
600
600
|
const server = new McpServer({
|
|
601
601
|
name: "brewpage-mcp",
|
|
602
|
-
version: "1.23.
|
|
602
|
+
version: "1.23.1",
|
|
603
603
|
}, { instructions: SERVER_INSTRUCTIONS });
|
|
604
604
|
/** Caller argument first, then the configured default; `fromEnv` marks the configured one. */
|
|
605
605
|
function ownerTokenFor(argument) {
|
package/package.json
CHANGED