BrewPage MCP
Voting openPublish HTML, Markdown, sites and data from AI agents
From the maker
BrewPage provides free hosting for HTML, Markdown, multi-file static sites, files, JSON and key-value data. Its MCP server offers 20 tools for publishing, reading, updating and managing publications. Connect to the remote Streamable HTTP endpoint without an account or API key, or run the MIT-licensed brewpage-mcp companion package locally. The hosted BrewPage service is proprietary. Publications expire: API and agent publishes default to 15 days, with up to 30 days without a profile or 90 days with a free profile. Each publish returns an HTTPS link and an owner token for updates and deletion. Unlisted links are readable by anyone who has the link; optional passwords restrict access.
How to connect
Streamable HTTP endpoint:
https://brewpage.app/mcp
What we found when we connected
Verified 2026-10-26 | 20 tools | responded in 159ms
- Protocol revision
- 2025-11-25
- Server identified itself as
- brewpage-mcp 1.14.4
- Tools exposed
- 20
- Tool descriptions
- present
- tools/list round trip
- 159ms
- Tested
- 2026-10-26 21:13 UTC
The 20 tools it exposed
Every name below came back from this server's own tools/list response on the date above. So did each description, parameter list and label like "read-only": they are the server describing itself. We did not call any of them.
-
publish_html
Publish HTML or Markdown content to BrewPage (repository default limit 5 MiB). Returns its primary share link and owner token. Supports password protection… more Publish HTML or Markdown content to BrewPage (repository default limit 5 MiB). Returns its primary share link and owner token. Supports password protection, custom TTL, optional filename, and an opt-in top toolbar (showTopBar). When deliveryMode is omitted for a `public` page, the server may publish it on its own subdomain if the page needs browser features a BrewPage link does not provide; the result then includes deliveryModeReason and a delivery notice. Markdown raw HTML is allowlisted: scripts, styles, event handlers, forms and embeds are removed. Returns manageUrl, a private management li [shortened] less
Parameters: content (required), deliveryMode, format, namespace, password, ttlDays, filename, showTopBar, ownerToken
-
publish_file
Upload a file to BrewPage via URL. Repository defaults: 5 MiB for files/audio, 20 MiB for video. Returns its primary share link and owner token. Does not… more Upload a file to BrewPage via URL. Repository defaults: 5 MiB for files/audio, 20 MiB for video. Returns its primary share link and owner token. Does not expose password or TTL inputs. Returns manageUrl, a private management link (grants control; not for public sharing). Secrets allowed; likely ones are flagged in notices. Private namespace + password suit secrets. less
Parameters: url (required), deliveryMode, namespace, filename, ownerToken
-
update_hosting
Change delivery mode for a NEW publication (not a site, not a non-public HTML-format page). Requires owner token; optional expectedVersion = current… more Change delivery mode for a NEW publication (not a site, not a non-public HTML-format page). Requires owner token; optional expectedVersion = current hostingVersion. Mismatches are reported, not rejected: a stale version still applies, and OLD links or forced subdomain modes stay unchanged; the result then carries a delivery notice. Content updates never change hosting. less
Parameters: type (required), namespace (required), id (required), ownerToken, deliveryMode (required), expectedVersion
-
delete_resource destructive
Delete a BrewPage resource (HTML page, site, KV store, JSON document, or file) using the owner token.
Parameters: type (required), namespace (required), id (required), ownerToken
-
get_page read-only
Fetch stored rendered HTML or format-specific code/text by namespace and ID. This reads API content, not the owner-only original-source endpoint or browser… more Fetch stored rendered HTML or format-specific code/text by namespace and ID. This reads API content, not the owner-only original-source endpoint or browser viewer. Protected reads use the password header. less
Parameters: namespace (required), id (required), password
Show the other 15 tools Hide the other 15 tools
-
get_stats read-only
Get BrewPage platform-wide usage statistics including page count, file count, and storage usage. Counts use disjoint split: alive_public + alive_private +… more Get BrewPage platform-wide usage statistics including page count, file count, and storage usage. Counts use disjoint split: alive_public + alive_private + deleted == total. Optional `tz` shifts the 'today' boundary to the given IANA zone (default UTC). less
Parameters: tz
-
publish_site
Publish an HTML site to BrewPage. Single-page: `entryContent`. Multi-page: `files` (array of `{path, content}`). Optional `entry` overrides default… more Publish an HTML site to BrewPage. Single-page: `entryContent`. Multi-page: `files` (array of `{path, content}`). Optional `entry` overrides default `index.html`. Returns its primary share link and owner token. Default limits (current values: GET /api/limits): a request is at most 25 MB; a site at most 200 files, 5 MB per file and 20 MB in total; each path at most 380 characters. System files (.DS_Store, __MACOSX/ and similar) are skipped and never count; files with an unsupported extension or a too-long path are skipped and listed in notices. Entry: `entry`, else root index.html, else the shal [shortened] less
Parameters: deliveryMode, entryContent, files, entry, namespace, password, ttlDays, ownerToken
-
republish_site destructive
Republish (full-replace) an existing multi-file BrewPage site in place at the SAME URL/ID. Requires owner token. The uploaded bundle becomes the complete new… more Republish (full-replace) an existing multi-file BrewPage site in place at the SAME URL/ID. Requires owner token. The uploaded bundle becomes the complete new file set — files absent from it are removed, new files added, matching files overwritten. Single-page: `entryContent`. Multi-page: `files` (array of `{path, content}`). Optional `entry` overrides the default `index.html`. Republishing preserves existing expiry. Old publications (made before 5 October 2026) are read-only: 409 OLD_PUBLICATION_READ_ONLY with createUrl to publish anew. Default limits (current values: GET /api/limits): a reque [shortened] less
Parameters: namespace (required), id (required), ownerToken, entryContent, files, entry, ttlDays, tags
-
update_html destructive
Update an existing BrewPage HTML/Markdown page. Requires owner token. Returns the updated page metadata. The link and delivery mode never change on update; an… more Update an existing BrewPage HTML/Markdown page. Requires owner token. Returns the updated page metadata. The link and delivery mode never change on update; an advisory deliveryModeReason and delivery notice are included when the new content uses browser features that may not work fully on a BrewPage link. Old publications (made before 5 October 2026) are read-only: 409 OLD_PUBLICATION_READ_ONLY with createUrl to publish anew. less
Parameters: namespace (required), id (required), content (required), ownerToken, format
-
publish_json
Publish a JSON document to BrewPage (repository default limit 1 MiB). Accepts a JSON object, array, or a JSON-encoded string containing any valid JSON… more Publish a JSON document to BrewPage (repository default limit 1 MiB). Accepts a JSON object, array, or a JSON-encoded string containing any valid JSON, including scalars/null. Returns its primary share link and owner token. Returns manageUrl, a private management link (grants control; not for public sharing). Secrets allowed; likely ones are flagged in notices. Private namespace + password suit secrets. less
Parameters: deliveryMode, json (required), namespace, password, ttlDays, tags, ownerToken
-
get_json read-only
Fetch a published BrewPage JSON document by namespace and ID.
Parameters: namespace (required), id (required), password
-
update_json destructive
Update an existing BrewPage JSON document. Requires owner token. Accepts a JSON object, array, or a JSON-encoded string. Old publications (made before 5… more Update an existing BrewPage JSON document. Requires owner token. Accepts a JSON object, array, or a JSON-encoded string. Old publications (made before 5 October 2026) are read-only: 409 OLD_PUBLICATION_READ_ONLY with createUrl to publish anew. less
Parameters: namespace (required), id (required), json (required), ownerToken
-
publish_kv
Publish a key/value entry to BrewPage. Creates a KV store; the entry is addressed by (namespace, id, key). Repository defaults: 1 MiB per value, 1,000 keys per… more Publish a key/value entry to BrewPage. Creates a KV store; the entry is addressed by (namespace, id, key). Repository defaults: 1 MiB per value, 1,000 keys per store; the key name `hosting` is reserved. Returns its primary share link and owner token. Returns manageUrl, a private management link (grants control; not for public sharing). Secrets allowed; likely ones are flagged in notices. Private namespace + password suit secrets. less
Parameters: deliveryMode, key (required), value (required), namespace, password, ttlDays, tags, ownerToken
-
set_kv destructive
Set or update a key in an existing BrewPage KV store. Requires owner token. The key name `hosting` is reserved. Old publications (made before 5 October 2026)… more Set or update a key in an existing BrewPage KV store. Requires owner token. The key name `hosting` is reserved. Old publications (made before 5 October 2026) are read-only: 409 OLD_PUBLICATION_READ_ONLY with createUrl to publish anew. less
Parameters: namespace (required), id (required), key (required), value (required), ownerToken
-
get_kv read-only
Fetch a value from a BrewPage KV store by namespace, ID, and key.
Parameters: namespace (required), id (required), key (required), password
-
get_limits read-only
Get the current BrewPage upload limits (GET /api/limits): request size, site file count, per-file and total size, ZIP expansion, path and name lengths, TTL… more Get the current BrewPage upload limits (GET /api/limits): request size, site file count, per-file and total size, ZIP expansion, path and name lengths, TTL default/maximum, allowed file extensions and skipped system files. Sizes are bytes. With BREWPAGE_OWNER_TOKEN set: also reach (token|profile) and ownerMaxTtlDays. less
-
search_gallery read-only
Search the BrewPage public gallery. Optional filters: text query, pagination, sort, and 'mine' (owner-scoped, requires owner token).
Parameters: q, page, size, sort, mine, ownerToken
-
set_visibility
Hide or show a public publication in the gallery and sitemap. Link unchanged.
Parameters: type (required), namespace (required), id (required), listed (required), ownerToken
-
bind_token
Add an owner token to your BrewPage profile (as publish). Needs an admin token of that profile.
Parameters: token (required), ownerToken
-
mint_token
Mint a new profile token with an admin token; the new token is shown once. Scope publish (default) or admin; expiry 30d, 90d, 1y or never.
Parameters: label, scope, expiresIn, ownerToken
What we found on npm
We did not run this server. Its start command names a package, so on 28 October 2026 we asked npm what it holds under that name. This describes the published package, not what the server does once it is running.
- Package
- brewpage-mcp
- Latest version
- 1.15.1
- That version published
- 2026-10-27
- First published
- 2026-04-01
- Licence field says
- MIT
- Repository it points at
- https://github.com/kochetkov-ma/brewpage-openapi
- Downloads
- 2,602 in the week ending 27 Oct 2026
- Asked
- 2026-10-28 20:29 UTC
The 20 tools its README documents
These names come from the package's own README on npm, so they are what its maker documented rather than something we measured. We did not run this server, so we have not seen it offer them.
- publish_html
- update_html
- get_page
- publish_file
- publish_site
- republish_site
- publish_json
- get_json
- update_json
- publish_kv
- set_kv
- get_kv
- update_hosting
- delete_resource
- set_visibility
- bind_token
- mint_token
- search_gallery
- get_stats
- get_limits
Anything above describes one moment on the date shown. We do not re-test on a schedule, so nothing here says what this server is doing now. We have not audited its code, its data handling or its permissions, and this is not a safety rating.
Comments
What readers said about this product. Comments are people's own opinions and are not part of anything we checked.
Sign in to comment. Same account that votes.
Comments are written by readers, not by us, and we do not endorse them. Nothing here is held back or approved first: a comment goes up when it is posted, and you can edit or delete your own at any time. Report anything illegal or abusive with the link on each comment, or by email from our contact page if you do not have an account.