MCP server: One MCP server.

BrewPage MCP

@kochetkov-maMCP server · External

Publish HTML, Markdown, KV, JSON, and files to brewpage.app from AI assistants. No signup.

App deployment & hostingv1.3.2Apache-2.0TypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npmbrewpage-mcpv1.3.2

Run

npx -y brewpage-mcp

MCP client config

{
  "mcpServers": {
    "brewpage-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "brewpage-mcp"
      ]
    }
  }
}
README7 min read

BrewPage API -- Open Source Public Layer

npm GitHub Stars OpenAPI License MCP Server

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 for creation. Use the exact returned primary HTTPS link; publications may use a BrewPage path or their own content host.

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 -- KV pairs addressed by namespace/store ID, up to 1,000 keys per store, mutable in place via the owner token.
  • JSON documents -- store and retrieve arbitrary JSON, up to 1 MiB per document, 10,000 documents per namespace.
  • File hosting -- upload any safe file type (images, PDFs, video, audio, archives, code), up to 5 MB (video 20 MB), with inline preview.
  • Visibility -- REST omitted ?ns= selects public; MCP omitted namespace generates an unlisted namespace. Public unpassworded content may qualify for gallery discovery; search eligibility additionally depends on delivery. Custom namespaces are unlisted, readable by anyone with the link unless password-protected. Unlisted, protected or otherwise ineligible native responses carry noindex; eligible public HTML, sites and files may permit indexing.
  • 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 -- default 15 days, ordinary maximum 30 days, configured through the REST ttl query parameter. Owner-specific caps and eligible automatic extensions can affect expiry; use returned expiresAt.
  • Access -- unprotected reads and creation require no account. Protected reads use X-Password; owner updates, deletion and scoped lists use X-Owner-Token. Rate limits depend on operation/visibility; handle 429 and Retry-After.

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 sixteen 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:

bash
curl -X POST 'https://brewpage.app/api/html?ns=public&format=html&ttl=15' \
  -H "Content-Type: application/json" \
  -H "User-Agent: MyAgent/1.0" \
  -d '{"content": "<h1>Hello, world!</h1>"}'

Response:

json
{
  "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

ScenarioAPI call
An AI agent generates a shareable HTML report and needs a stable URL to return to the userPOST /api/html -- returns link immediately
A GPT pipeline needs to persist JSON state between conversation turns without external storagePOST /api/json?ns=myproject then GET /api/json/myproject/{id}
A code-generation tool produces a downloadable file (PDF, archive, script) and needs to host itPOST /api/files -- file served with correct MIME type and inline preview
An agent publishes an artifact and later refines it without invalidating the shared URLPUT /api/html/{ns}/{id} with X-Owner-Token -- content replaced, URL unchanged
A multi-step pipeline deploys a complete static site (HTML + CSS + JS) from a ZIPPOST /api/sites with archive=@site.zip -- all files served with relative links intact

API Features

ResourceDescriptionLimits
HTML pagesRaw HTML or Markdown with instant short URLs5 MB, TTL 1--30d
Key-value storeNamed key-value pairs addressed by namespace/store ID1,000 keys/store
JSON documentsStore and retrieve arbitrary JSON with owner-scoped listing1 MiB, 10,000 docs/namespace
FilesUpload files with automatic MIME detection and inline preview5 MB (video 20 MB), 1,000 files/namespace
SitesMulti-file HTML sites via ZIP or individual files20 MB total, 100 files, 5 MB/file, TTL 1--30d

Creation returns a primary link and owner token. Keep the token for management and share the link exactly. Password protection excludes discovery; public namespace alone does not guarantee indexing. TTL and supported inputs vary by operation.

API Examples

Publish Markdown:

bash
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:

bash
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):

bash
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):

bash
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:

bash
curl https://brewpage.app/api/stats

API Reference

The backend-generated public JSON contract owns schema authority. YAML is derived deterministically; Scalar serves an identical JSON copy. See openapi/openapi.provenance.json for export provenance. Correct backend generation before importing a new snapshot; do not author schemas in YAML.

Endpoints

TagDescription
HTMLPublish, retrieve, update, delete HTML/Markdown pages
KVKey-value store CRUD (get, set, list, delete keys)
JSONJSON document CRUD with owner-scoped listing
FilesFile upload, download, list, delete
SitesMulti-file site upload (ZIP or files), info, serve, delete
GalleryBrowse public content with search and pagination
StatsPlatform-wide usage statistics
Short LinksURL shortener for published content
SEOSitemap and robots.txt endpoints
ReportsAbuse reports for published content
NamespaceCollision-free namespace suggestions

MCP Server

The brewpage-mcp package provides a Model Context Protocol server with 16 tools for AI-assisted content publishing and management. Selected tools appear below; see mcp-server/README.md for the complete list and documentation.

Package releases use .github/workflows/release.yml with package-scoped npm Trusted Publisher/OIDC for kochetkov-ma/brewpage-openapi, workflow release.yml, without an environment. CI needs no NPM_TOKEN, manual npm login or static-token rotation. Local npm whoami does not validate GitHub Actions OIDC authentication.

To retry publication from a local terminal, dispatch the current main workflow:

bash
gh workflow run release.yml --repo kochetkov-ma/brewpage-openapi --ref main

Rerunning historical tag workflows that used token authentication is unsupported; use current main instead. The retry checks the matching version tag and unchanged MCP source, and skips publication when that version already exists.

ToolDescription
publish_htmlPublish HTML or Markdown content with optional password, TTL, filename, and top toolbar
publish_fileUpload a file from a URL
publish_sitePublish a single-page or multi-file HTML site
delete_resourceDelete any resource (HTML, KV, JSON, file) by owner token
get_pageFetch a published HTML page and its content
get_statsGet platform-wide usage statistics

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{
  "mcpServers": {
    "brewpage": {
      "command": "npx",
      "args": ["-y", "brewpage-mcp@1.9.3"]
    }
  }
}

Claude Code

Add to ~/.claude/settings.json:

json
{
  "mcpServers": {
    "brewpage": {
      "command": "npx",
      "args": ["-y", "brewpage-mcp@1.9.3"]
    }
  }
}

Resources

BrewPage is described using schema.org/SoftwareApplication structured data on the platform homepage.

What's Open Here

ComponentDescription
OpenAPI 3.1 specComplete API contract for all public endpoints (YAML + JSON)
Interactive docsAstro + Scalar documentation site (GitHub Pages)
MCP serverbrewpage-mcp -- Claude Desktop/Code integration (16 tools)
WikiCode snippets, cheatsheet, tips & tricks
Release notesChangelog for API and public tooling

What's Proprietary

ComponentDescription
BackendSpring Boot + Kotlin REST API
FrontendHTML/CSS/JS + Caddy reverse proxy
InfrastructureVPS deployment, CI/CD pipelines
E2E test suitePlaywright + Testcontainers

Project Structure

brewpage-openapi/
  openapi/
    openapi.json          # OpenAPI 3.1 spec (JSON)
    openapi.yaml          # OpenAPI 3.1 spec (YAML)
  docs/                   # 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
  LICENSE

License

Apache 2.0 covers this repository's contract/docs layer. The independently packaged MCP server uses MIT. The hosted backend, frontend and infrastructure remain proprietary. SDK/CLI module specifications are proposals; they do not establish released packages.

Similar modules

Browse App deployment & hosting