markdown.page

MCP

markdown.page exposes a minimal public MCP endpoint for agents that want to publish markdown and get a permanent URL.

No account, API key, or auth header is required.

Endpoint

POST https://markdown.page/mcp

Transport: HTTP JSON-RPC.

Streaming: not supported. This MCP server is request/response only; it does not open server-sent event streams. A GET /mcp request with Accept: text/event-stream returns 405 Method Not Allowed. Send JSON-RPC requests with POST /mcp.

The endpoint currently exposes one tool only:

publish_markdown({ markdown: string })

Tool contract

Input schema:

{
  "type": "object",
  "properties": {
    "markdown": { "type": "string" }
  },
  "required": ["markdown"],
  "additionalProperties": false
}

Output schema:

{
  "type": "object",
  "properties": {
    "slug": { "type": "string" },
    "url": { "type": "string", "format": "uri" },
    "raw_url": { "type": "string", "format": "uri" },
    "json_url": { "type": "string", "format": "uri" }
  },
  "required": ["slug", "url", "raw_url", "json_url"],
  "additionalProperties": false
}

Example

curl https://markdown.page/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"publish_markdown","arguments":{"markdown":"# Hello from MCP"}}}'

A successful call returns MCP text content plus structured URL metadata:

{
  "slug": "a3x9k2b7",
  "url": "https://markdown.page/a3x9k2b7",
  "raw_url": "https://markdown.page/a3x9k2b7.md",
  "json_url": "https://markdown.page/a3x9k2b7.json"
}

Limits and safety

The MCP publishing tool uses the same path as POST /api/publish:

  • 1 MB markdown per page
  • 2 MB request envelope
  • fair-use rate limiting per IP
  • markdown validation and sanitization

Published pages are public and permanent. Do not publish secrets, private data, credentials, or content you may need to edit later.

Discovery

Agent discovery guide:

GET https://markdown.page/llms.txt

MCP documentation:

GET https://markdown.page/mcp

SSE support signal:

GET https://markdown.page/mcp
Accept: text/event-stream

returns 405 with supports_sse: false.