About PASTEAI
PASTEAI is a client and web interface for AI-generated Markdown reports, aimed at people who want to review and share documents. It supports embedded, local-server, and remote deployment modes.
Key features
- 01Publish and manage Markdown documents
- 02Browse reports in a themed web UI
- 03Embedded, local, and remote modes
- 04CLI setup and diagnostics
Use cases
- 01Review a report created by an AI
- 02Share a document with a link
- 03Read documents across devices
MCP support
PASTEAI runs an MCP server that AI clients use to publish, list, retrieve, update, and delete documents. A deployed instance can also offer a streamable-HTTP MCP endpoint.
Details
From the project READMEPasteAI
Human review of beautiful reports, generated by AI
AI publishes markdown documents via MCP. You read them in a clean, themed web UI.

Quickstart
Run /setup in Claude Code — it installs the binary and configures MCP. Then restart your editor to activate.
Or install manually:
# macOS
brew install pasteai/pasteai/pasteai
# Windows
scoop bucket add pasteai https://github.com/pasteai/scoop-pasteai
scoop install pasteai
# Linux (Debian/Ubuntu)
# Download the .deb from https://github.com/pasteai/pasteai/releases/latest
# Any platform — prebuilt binary
curl -sSL https://raw.githubusercontent.com/pasteai/pasteai/main/install.sh | sh
# With Go
go install github.com/pasteai/pasteai/cmd/pasteai@latest
Then run pasteai setup to register with your AI editor(s). It configures Claude Code, Kiro, and opencode simultaneously.
To configure manually, add the entry to the appropriate config file:
Claude Code (~/.claude.json) and Kiro (~/.kiro/settings/mcp.json):
{
"mcpServers": {
"pasteai": {
"command": "/full/path/to/pasteai",
"args": ["mcp"]
}
}
}
opencode (~/.config/opencode/opencode.json):
{
"mcp": {
"pasteai": {
"type": "local",
"command": ["/full/path/to/pasteai", "mcp"]
}
}
}
Use the absolute path from which pasteai or $(go env GOPATH)/bin/pasteai — AI editors do not inherit your shell PATH.
Restart your editor, then ask: "Summarise what we discussed and publish it."
CLI Reference
| Command | Description |
|---|---|
pasteai setup | Configure MCP in Claude Code, Kiro, and opencode (interactive or via flags) |
pasteai setup -mode embedded | Configure without prompts (non-interactive) |
pasteai doctor | Diagnose common setup problems |
pasteai serve [flags] | Start the HTTP server |
pasteai mcp | Start the MCP server (used by Claude Code) |
pasteai version | Print version |
Which mode?
| Situation | Mode |
|---|---|
| Claude Code on your laptop | Embedded — default, nothing to configure |
| Claude running in a container or remote VM | Local server — run pasteai serve on the host, set PASTEAI_URL |
| Sharing with a team or reading across devices | Remote — deploy with -base-url, use Tailscale for private access |
Three Modes
1. Embedded (zero config)
Add the MCP config above and restart Claude Code. When Claude first calls a tool, PasteAI starts a local server automatically. Documents stored at ~/.pasteai/documents.db and as plain markdown files at ~/.pasteai/documents/{id}.md — readable without the server running.
2. Local server
Run the server persistently with Docker Compose and point the MCP client at it:
# docker-compose.yml
services:
pasteai:
image: ghcr.io/pasteai/pasteai:latest
ports:
- "8080:8080"
volumes:
- ${HOME}/.pasteai:/data
restart: unless-stopped
mkdir -p ~/.pasteai
docker compose up -d
In ~/.claude.json:
{
"mcpServers": {
"pasteai": {
"command": "/full/path/to/pasteai",
"args": ["mcp"],
"env": { "PASTEAI_URL": "http://localhost:8080" }
}
}
}
Good when you want the server always running, independent of Claude Code. For systemd, launchd, or nohup alternatives, see docs/server-setup.md.
3. Remote
Point PASTEAI_URL at any PasteAI instance. Both PASTEAI_API_KEY and -base-url are required on the server for remote access to work correctly.
Start the server with:
pasteai serve -api-key <your-key> -base-url https://your-server.example.com
In ~/.claude.json:
{
"mcpServers": {
"pasteai": {
"command": "/full/path/to/pasteai",
"args": ["mcp"],
"env": {
"PASTEAI_URL": "https://your-server.example.com",
"PASTEAI_API_KEY": "your-key"
}
}
}
}
Tailscale
To read documents from your phone or another machine, use Tailscale. Start pasteai serve, then browse to http://<tailscale-ip>:8080 from any device on your tailnet. Set -base-url http://<tailscale-ip>:8080 so document links resolve correctly.
MCP Tools
publish_document — publish a markdown document, returns a shareable URL.
| Parameter | Required | Description |
|---|---|---|
title | yes | Document title |
content | yes | Markdown content |
author | no | Author name |
visibility | no | public (default) or unlisted (link-only) |
list_documents — returns recent public documents.
get_document — retrieve a document by ID, including its full markdown content.
| Parameter | Required | Description |
|---|---|---|
id | yes | Document ID |
update_document — update the title or content of an existing document.
| Parameter | Required | Description |
|---|---|---|
id | yes | Document ID |
title | no | New title (omit to keep existing) |
content | no | New markdown content (omit to keep existing) |
delete_document — permanently delete a document by ID.
| Parameter | Required | Description |
|---|---|---|
id | yes | Document ID |
claude.ai Custom Connectors (streamable-HTTP MCP)
To connect a deployed PasteAI server to claude.ai as a Custom Connector, start the server with -enable-mcp-http. This mounts a stateless streamable-HTTP MCP endpoint at /mcp alongside the web UI:
pasteai serve \
-api-key <your-key> \
-base-url https://your-server.example.com \
-enable-mcp-http
Then in claude.ai → Settings → Connectors, add:
https://your-server.example.com/mcp
The /mcp endpoint requires the same Bearer token as the API when -api-key is set. The stdio transport (pasteai mcp) is unaffected — both can run simultaneously.
REST API
| Method | Path | Description |
|---|---|---|
POST | /api/documents | Create a document |
GET | /api/documents | List recent public documents |
GET | /api/documents/{id} | Get a document (with content) |
PUT | /api/documents/{id} | Update title or content |
DELETE | /api/documents/{id} | Delete a document |
GET | /d/{id}/raw | Raw markdown source |
curl -X POST http://localhost:8080/api/documents \
-H 'Content-Type: application/json' \
-d '{"title": "My Report", "content": "# Hello\n\nThis is my report.", "author": "Claude"}'
Response includes a url field: http://localhost:8080/d/{id}
Themes
Switch themes using the selector in the top nav. Choice is saved in localStorage.
Light · Dark · Emerald · Arctic · Catppuccin Mocha · Catppuccin Latte · Catppuccin Frappé
Contributing & License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.