PasteAI
OfficialPasteAI is an MCP server that lets you publish, manage, and retrieve markdown documents via AI editor integration, a REST API, and a clean web UI.
Publish documents – Create a new markdown document with a title, content, optional author, and visibility (
publicorunlisted). Get back a shareable URL.List documents – Retrieve a list of recently published public documents.
Get a document – Fetch a specific document by its ID, including full markdown content or raw markdown source via
/d/{id}/raw.Update a document – Modify the title or content of an existing document.
Delete a document – Permanently remove a document by its ID.
Search documents – Search by keyword within document titles.
Set visibility – Change a document's visibility to
public,unlisted(link-only), orprivate.Web UI – Browse and read documents in a themed interface (Light, Dark, Arctic, Catppuccin, etc.).
MCP integration – Works with Claude Code, Kiro, opencode, and claude.ai as a Custom Connector via streamable HTTP, with support for embedded, local, and remote modes and API key auth.
Flexible deployment – Run persistently with Docker Compose, or access privately via Tailscale.
PasteAI
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@latestThen 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."
Related MCP server: paper-fetch-mcp
CLI Reference
Command | Description |
| Configure MCP in Claude Code, Kiro, and opencode (interactive or via flags) |
| Configure without prompts (non-interactive) |
| Diagnose common setup problems |
| Start the HTTP server |
| Start the MCP server (used by Claude Code) |
| 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 |
Sharing with a team or reading across devices | Remote — deploy with |
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-stoppedmkdir -p ~/.pasteai
docker compose up -dIn ~/.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.comIn ~/.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 |
| yes | Document title |
| yes | Markdown content |
| no | Author name |
| no |
|
list_documents — returns recent public documents.
get_document — retrieve a document by ID, including its full markdown content.
Parameter | Required | Description |
| yes | Document ID |
update_document — update the title or content of an existing document.
Parameter | Required | Description |
| yes | Document ID |
| no | New title (omit to keep existing) |
| no | New markdown content (omit to keep existing) |
delete_document — permanently delete a document by ID.
Parameter | Required | Description |
| 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-httpThen in claude.ai → Settings → Connectors, add:
https://your-server.example.com/mcpThe /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 |
|
| Create a document |
|
| List recent public documents |
|
| Get a document (with content) |
|
| Update title or content |
|
| Delete a document |
|
| 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
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/pasteai/pasteai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server