# Md Page

> Instantly turn Markdown into a shareable web page. Self-hostable open-source engine of md.page.

- **Type:** MCP server
- **Install:** `agentstack add mcp-maypaz-md-page`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [maypaz](https://agentstack.voostack.com/s/maypaz)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [maypaz](https://github.com/maypaz)
- **Source:** https://github.com/maypaz/md.page
- **Website:** https://md.page

## Install

```sh
agentstack add mcp-maypaz-md-page
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

Instantly turn Markdown into a shareable web page.

  Free anonymous pages expire in 24h. Sign in for permanent pages with your own subdomain.

  Website ·
  AI Agents ·
  API ·
  Accounts ·
  Self-Host

  
  

  

---

## Add to your AI Agent

The easiest way to use md.page is through your AI coding agent. Just ask it to "share this" or "publish this markdown" and it creates a link for you.

### Claude Code

Install the [md.page skill](https://skills.sh/maypaz/publish-to-mdpage):

```bash
npx skills add maypaz/md.page
```

### OpenClaw

```bash
npx clawhub@latest install publish-to-mdpage
```

### MCP Server

For agents that support [MCP](https://modelcontextprotocol.io/) (Cursor, Claude Desktop, VS Code, and others), add md.page as a tool server:

```json
{
  "mcpServers": {
    "mdpage": {
      "command": "npx",
      "args": ["-y", "mdpage-mcp"]
    }
  }
}
```

See [`mcp/README.md`](mcp/README.md) for full setup instructions.

### Any Agent (Prompt-Based)

Copy this prompt into any AI agent that can make HTTP requests:

> From now on, whenever I ask you to share or publish a markdown file, use the md.page API to create a shareable HTML page. Send a POST request to https://md.page/api/publish with the body {"markdown": ""} and return the shareable URL to me.

---

## Use Directly

### CLI

```bash
npx mdpage-cli README.md
```

```
  Published → https://md.page/a8Xk2m
  Expires in 24h
```

One command, zero setup.

```bash
# Publish and copy URL to clipboard
npx mdpage-cli README.md --copy

# Publish and open in browser
npx mdpage-cli notes.md --open

# Pipe from stdin
cat CHANGELOG.md | npx mdpage-cli

# Install globally for faster access
npm i -g mdpage-cli
mdpage-cli README.md
```

### API

#### `POST /api/publish`

Create a shareable page from markdown.

```bash
curl -X POST https://md.page/api/publish \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Hello World\nYour markdown here..."}'
```

```json
{
  "url": "https://md.page/a8Xk2m",
  "expires_at": "2026-03-28T12:00:00.000Z"
}
```

| Status | Description |
|--------|-------------|
| `201` | Created successfully |
| `400` | Missing or invalid `markdown` field |
| `413` | Content too large (max 500KB) |

#### `GET /:id`

View a published page. Returns rendered HTML.

---

## Features

- **One command** — `npx mdpage-cli README.md` and you're done
- **Beautiful** — clean typography, code blocks, tables, responsive design
- **Short URLs** — `md.page/a8Xk2m` (6-character IDs)
- **Private** — links are unguessable, only people with the URL can view
- **Auto-expiry** — anonymous pages self-delete after 24 hours
- **Permanent pages** — sign in for pages that never expire
- **Your subdomain** — `username.md.page/slug`
- **API keys** — programmatic publishing from any agent or script
- **Visibility control** — public or private per page
- **AI agent friendly** — designed to work with any AI agent or LLM

---

## Accounts & Subdomains

> Accounts, permanent pages, and API keys are features of the hosted service at [md.page](https://md.page). This repository contains the open-source engine — anonymous publishing, rendering, OG images, and the agent-facing API — which you can [self-host](#self-hosting).

Sign in at [md.page/login](https://md.page/login) with Google to get:

- **Your own subdomain** — `username.md.page`
- **Permanent pages** — up to 10 docs that never expire
- **API keys** — publish from scripts, CI, or AI agents
- **Dashboard** — manage all your pages from one place
- **Visibility control** — make pages public or private

### Authenticated API

All authenticated endpoints require either a session cookie or an API key (`Authorization: Bearer mdp_xxx`).

Create API keys from your [settings page](https://md.page/docs/settings).

#### `POST /api/pages` — create a permanent page

```bash
curl -X POST https://md.page/api/pages \
  -H "Authorization: Bearer mdp_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Hello", "title": "hello", "slug": "hello", "visibility": "public"}'
```

```json
{
  "id": "a8Xk2m",
  "url": "https://username.md.page/hello",
  "slug": "hello",
  "visibility": "public"
}
```

#### `PUT /api/pages/:id` — update a page

```bash
curl -X PUT https://md.page/api/pages/a8Xk2m \
  -H "Authorization: Bearer mdp_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Updated content"}'
```

#### `DELETE /api/pages/:id` — delete a page

```bash
curl -X DELETE https://md.page/api/pages/a8Xk2m \
  -H "Authorization: Bearer mdp_YOUR_KEY"
```

#### `GET /api/pages` — list your pages

```bash
curl https://md.page/api/pages \
  -H "Authorization: Bearer mdp_YOUR_KEY"
```

#### `GET /api/me` — current user info

```bash
curl https://md.page/api/me \
  -H "Authorization: Bearer mdp_YOUR_KEY"
```

#### API Key Management

| Method | Endpoint | Description |
|--------|----------|-------------|
| `POST` | `/api/keys` | Create a new API key (max 5) |
| `GET` | `/api/keys` | List your API keys |
| `PATCH` | `/api/keys/:id` | Rename a key |
| `DELETE` | `/api/keys/:id` | Revoke a key |

## Self-Hosting

md.page runs on Cloudflare Workers with KV storage. A self-hosted instance gives you anonymous publishing (24h expiry), the full agent-facing surface (OpenAPI, llms.txt, MCP discovery), and auto-generated OG images. The only required binding is a single KV namespace.

### Prerequisites

- [Cloudflare account](https://dash.cloudflare.com/sign-up) (free tier works)
- [Node.js](https://nodejs.org/) 18+

### Setup

```bash
# Clone the repo
git clone https://github.com/maypaz/md.page.git
cd md.page

# Install dependencies
npm install

# Create your config
cp wrangler.toml.example wrangler.toml

# Create a KV namespace and put its id in wrangler.toml
npx wrangler kv namespace create PAGES

# Deploy
npx wrangler deploy
```

Analytics, the landing-page video bucket, and publish rate limiting are optional — see the comments in `wrangler.toml.example`.

### Local Development

```bash
npm run dev
# → http://localhost:8787
```

## Tech Stack

- **Runtime:** [Cloudflare Workers](https://workers.cloudflare.com/) ([Hono](https://hono.dev/) framework)
- **Storage:** [Cloudflare KV](https://developers.cloudflare.com/kv/) (page content), [R2](https://developers.cloudflare.com/r2/) (assets, optional)
- **Markdown:** [markdown-it](https://github.com/markdown-it/markdown-it)

## Contributing

Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## License

[MIT](LICENSE)

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [maypaz](https://github.com/maypaz)
- **Source:** [maypaz/md.page](https://github.com/maypaz/md.page)
- **License:** MIT
- **Homepage:** https://md.page

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-maypaz-md-page
- Seller: https://agentstack.voostack.com/s/maypaz
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
