brewpage-mcp
BrewPage API -- Open Source Public Layer
This repository is the open-source public layer of BrewPage -- a proprietary HTML/KV/JSON/file hosting platform. The backend, frontend, and infrastructure remain closed-source.
Docs: https://kochetkov-ma.github.io/brewpage-openapi/ | API Reference: https://kochetkov-ma.github.io/brewpage-openapi/api-reference/
What is BrewPage
BrewPage is a free instant hosting service for HTML pages, Markdown documents,
multi-file sites, AI artifacts, JSON documents, key-value stores, and binary files.
No signup or API key required. Every published resource gets a short HTTPS URL
(brewpage.app/{namespace}/{id}) within seconds.
Key characteristics:
HTML and Markdown pages -- publish raw HTML or Markdown rendered to styled HTML, up to 5 MB, with instant short URLs.
Multi-file sites -- upload a ZIP archive or individual files (up to 20 MB / 100 files) and get a fully served static site.
Key-value store -- namespace-scoped KV pairs, up to 1,000 keys per namespace, mutable in place via the owner token.
JSON documents -- store and retrieve arbitrary JSON, up to 1 MB per document, 10,000 documents per collection.
File hosting -- upload any safe file type (images, PDFs, video, audio, archives, code), up to 5 MB (video 20 MB), with inline preview.
Public namespace -- omitting
?ns=publishes to the sharedpublicnamespace, which is listed on the homepage gallery and indexed by search engines. Pass a custom namespace orX-Passwordheader to keep content private.Owner tokens -- every publish response includes an
ownerToken. Use it to update content in place (stable URL), delete it, or list your own resources. No accounts, no sessions.TTL -- content expires automatically. Default 15 days, maximum 30 days, configurable per request via
ttl_days.No auth required for reads. Writes are open (rate-limited to 60 uploads/hr per IP). All requests require a
User-Agentheader.
Both brewpage.app and brewdata.app serve the same API.
Why this matters for LLMs and agents
AI agents frequently need to share structured outputs -- reports, artifacts, generated HTML, intermediate JSON state -- with users or downstream systems via a stable URL. BrewPage provides that as a zero-setup REST API: one POST call, one URL back. No OAuth, no S3 bucket configuration, no infrastructure. The MCP server (brewpage-mcp) wraps the API into six typed tools that any MCP-compatible agent (Claude, Codex, Gemini, Cursor) can call directly.
Quick Start
Publish an HTML page and get a shareable link:
curl -X POST https://brewpage.app/api/html \
-H "Content-Type: application/json" \
-H "User-Agent: MyAgent/1.0" \
-d '{"content": "<h1>Hello, world!</h1>", "ttlDays": 15}'Response:
{
"id": "aBcDeFgHiJ",
"namespace": "public",
"link": "https://brewpage.app/public/aBcDeFgHiJ",
"ownerLink": "https://brewpage.app/api/html/public/aBcDeFgHiJ",
"ownerToken": "your-secret-token",
"expiresAt": "2026-06-04T02:00:00Z",
"sizeBytes": 22
}Open link in any browser -- no further steps required.
Use Cases for LLMs and Agents
Scenario | API call |
An AI agent generates a shareable HTML report and needs a stable URL to return to the user |
|
A GPT pipeline needs to persist JSON state between conversation turns without external storage |
|
A code-generation tool produces a downloadable file (PDF, archive, script) and needs to host it |
|
An agent publishes an artifact and later refines it without invalidating the shared URL |
|
A multi-step pipeline deploys a complete static site (HTML + CSS + JS) from a ZIP |
|
API Features
Resource | Description | Limits |
HTML pages | Raw HTML or Markdown with instant short URLs | 5 MB, TTL 1--30d |
Key-value store | Named key-value pairs grouped in namespaces | 1,000 keys/namespace |
JSON documents | Store and retrieve arbitrary JSON with collection management | 1 MB, 10,000 docs/collection |
Files | Upload files with automatic MIME detection and inline preview | 5 MB (video 20 MB), 1,000 files/namespace |
Sites | Multi-file HTML sites via ZIP or individual files | 20 MB total, 100 files, 5 MB/file, TTL 1--30d |
Every resource gets a short URL (brewpage.app/{ns}/{id}), optional password protection, configurable TTL, and tagging. Public content appears in a browsable gallery with full-text search.
API Examples
Publish Markdown:
curl -X POST "https://brewpage.app/api/html?format=markdown" \
-H "Content-Type: application/json" \
-H "User-Agent: MyAgent/1.0" \
-d '{"content": "# My Document\n\nHello **world**"}'Store a JSON document:
curl -X POST https://brewpage.app/api/json \
-H "Content-Type: application/json" \
-H "User-Agent: MyAgent/1.0" \
-d '{"name": "config", "version": 1}'Upload a site (ZIP archive):
curl -X POST "https://brewpage.app/api/sites" \
-H "User-Agent: MyAgent/1.0" \
-F "archive=@site.zip;type=application/zip"Update content in place (stable URL):
curl -X PUT "https://brewpage.app/api/html/public/aBcDeFgHiJ" \
-H "Content-Type: application/json" \
-H "User-Agent: MyAgent/1.0" \
-H "X-Owner-Token: your-secret-token" \
-d '{"content": "<h1>Updated content</h1>"}'Get platform stats:
curl https://brewpage.app/api/statsAPI Reference
Interactive docs -- kochetkov-ma.github.io/brewpage-openapi
API Reference (Scalar) -- kochetkov-ma.github.io/brewpage-openapi/api-reference
OpenAPI spec (YAML) --
openapi/openapi.yamlOpenAPI spec (JSON) --
openapi/openapi.json
Endpoints
Tag | Description |
HTML | Publish, retrieve, update, delete HTML/Markdown pages |
KV | Key-value store CRUD (get, set, list, delete keys) |
JSON | JSON document CRUD with collection listing |
Files | File upload, download, list, delete |
Sites | Multi-file site upload (ZIP or files), info, serve, delete |
Gallery | Browse public content with search and pagination |
Stats | Platform-wide usage statistics |
Short Links | URL shortener for published content |
SEO | Sitemap and robots.txt endpoints |
Reports | Abuse reports for published content |
Namespace | Collision-free namespace suggestions |
MCP Server
The brewpage-mcp package provides a Model Context Protocol server with 6 tools for AI-assisted content publishing. See mcp-server/README.md for full documentation.
Tool | Description |
| Publish HTML or Markdown content with optional password, TTL, filename, and top toolbar |
| Upload a file from a URL |
| Publish a single-page or multi-file HTML site |
| Delete any resource (HTML, KV, JSON, file) by owner token |
| Fetch a published HTML page and its content |
| Get platform-wide usage statistics |
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"brewpage": {
"command": "npx",
"args": ["-y", "brewpage-mcp"]
}
}
}Claude Code
Add to ~/.claude/settings.json:
{
"mcpServers": {
"brewpage": {
"command": "npx",
"args": ["-y", "brewpage-mcp"]
}
}
}Resources
Resource | URL |
Live platform | |
LLM context file | |
Full LLM reference | |
OpenAPI spec (YAML) | |
MCP server | |
npm package | |
Interactive API docs | |
Claude skill | https://github.com/kochetkov-ma/claude-brewcode/tree/main/skills/brewpage-publish |
BrewCode plugin suite | |
Wiki | |
Releases |
BrewPage is described using schema.org/SoftwareApplication structured data on the platform homepage.
What's Open Here
Component | Description |
OpenAPI 3.1 spec | Complete API contract for all public endpoints (YAML + JSON) |
Interactive docs | Astro + Scalar documentation site (GitHub Pages) |
MCP server |
|
Wiki | Code snippets, cheatsheet, tips & tricks |
Release notes | Changelog for API and public tooling |
What's Proprietary
Component | Description |
Backend | Spring Boot + Kotlin REST API |
Frontend | HTML/CSS/JS + Caddy reverse proxy |
Infrastructure | VPS deployment, CI/CD pipelines |
E2E test suite | Playwright + Testcontainers |
Project Structure
brewpage-openapi/
openapi/
openapi.json # OpenAPI 3.1 spec (JSON)
openapi.yaml # OpenAPI 3.1 spec (YAML)
docs-site/ # Astro documentation site
src/
pages/ # Documentation pages
components/ # Scalar API reference
mcp-server/ # MCP server (brewpage-mcp)
src/
index.ts # Server entry point
.github/
workflows/ # CI/CD (docs deploy, releases)
README.md
RELEASE-NOTES.md
LICENSELicense
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kochetkov-ma/brewpage-openapi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server