Submit
22 days ago
Overview

PasteAI

Human review of beautiful reports, generated by AI

AI publishes markdown documents via MCP. You read them in a clean, themed web UI.

CI Go License: MIT

PasteAI demo


Quickstart

Run /setup — Claude will install the binary and configure MCP. Then restart Claude Code 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

Add pasteai to ~/.claude.json (global — available in all Claude Code projects):

{
  "mcpServers": {
    "pasteai": {
      "command": "/full/path/to/pasteai",
      "args": ["mcp"]
    }
  }
}

Use the absolute path from which pasteai or $(go env GOPATH)/bin/pasteai — Claude Code does not inherit your shell PATH. The /setup slash command and make setup resolve the path and merge this safely (preserving any existing servers).

Restart Claude Code, then ask: "Summarise what we discussed and publish it."


CLI Reference

CommandDescription
pasteai setupConfigure MCP in ~/.claude.json (interactive or via flags)
pasteai setup -mode embeddedConfigure without prompts (non-interactive)
pasteai doctorDiagnose common setup problems
pasteai serve [flags]Start the HTTP server
pasteai mcpStart the MCP server (used by Claude Code)
pasteai versionPrint version

Which mode?

SituationMode
Claude Code on your laptopEmbedded — default, nothing to configure
Claude running in a container or remote VMLocal server — run pasteai serve on the host, set PASTEAI_URL
Sharing with a team or reading across devicesRemote — 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.

ParameterRequiredDescription
titleyesDocument title
contentyesMarkdown content
authornoAuthor name
visibilitynopublic (default) or unlisted (link-only)

list_documents — returns recent public documents.


REST API

MethodPathDescription
POST/api/documentsCreate a document
GET/api/documentsList recent public documents
GET/api/documents/{id}Get a document
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

CONTRIBUTING.md · MIT License

© 2025 MCP.so. All rights reserved.

Build with ShipAny.