paper-remote-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@paper-remote-mcpwrite the HTML for a pricing card and screenshot it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
paper-remote-mcp
Run Paper's MCP server without the desktop app.
paper-remote-mcp loads the Paper editor in a headless browser, signed in as you, and exposes the same tools Paper Desktop does (write_html, get_screenshot, get_jsx, create_file, …) over stdio. It works with Claude Code, Cursor, Codex, or any MCP client.
npx paper-remote-mcp login # one-time OAuth sign-in
npx paper-remote-mcp doctor # check browser, sign-in, tools
claude mcp add paper -- npx -y paper-remote-mcp mcpCommunity project. Not affiliated with or endorsed by Paper.
Requirements
Node 20+
Google Chrome, or Playwright's Chromium (
npx playwright install chromium)
Related MCP server: agentify-desktop
Setup
1. Sign in. npx paper-remote-mcp login opens a browser window at app.paper.design. Sign in as usual; the session is saved to ~/.paper-mcp/profiles/production/ and reused headlessly.
2. Verify.
$ npx paper-remote-mcp doctor
browser ✓ launched
sign-in ✓ authenticated (Paper API /auth/me → 200)
handlers ✓ 36 tools available3. Add it to your agent.
claude mcp add paper -- npx -y paper-remote-mcp mcp{ "mcpServers": { "paper": { "command": "npx", "args": ["-y", "paper-remote-mcp", "mcp"] } } }[mcp_servers.paper]
command = "npx"
args = ["-y", "paper-remote-mcp", "mcp"]{ "servers": { "paper": { "type": "stdio", "command": "npx", "args": ["-y", "paper-remote-mcp", "mcp"] } } }To open a specific file on start, append --file <fileId-or-url> to the args.
Commands
Command | What it does |
| Start the stdio MCP server backed by a headless editor. |
| Sign in, or delete the saved session. |
| Check Node, browser, sign-in, and tool availability. |
| Forward stdio to a running Paper Desktop (no CLI binary needed). |
Flag | Meaning |
| File to open and use as the default target. |
|
|
| Override the session directory. |
| Show the browser window. |
Env vars: PAPER_MCP_ENV, PAPER_MCP_PROFILE, PAPER_MCP_LOG (silent|error|warn|info|debug).
How it works
Paper Desktop's MCP server is a thin proxy: every tool call runs against window.mcpHandlers inside the editor page. Paper only builds those handlers in the desktop shell or in a browser that supports WebMCP.
paper-remote-mcp injects a no-op navigator.modelContext before the page loads. Paper then builds its real handlers and keeps using normal cookie auth. The stdio server maps tools/list to getMCPServerConfig() and tools/call to handleToolCall(), and navigates to another file when a tool call names a different fileId. The tool list and instructions come from Paper itself, so they stay in sync with Paper's updates.
Limitations
One file is open at a time; switching files costs a page reload.
The headless browser takes a few seconds to start and uses a few hundred MB of RAM.
It depends on Paper's web internals. If Paper changes them,
doctorwill report it.It uses its own Chrome profile, not your everyday one: Chrome locks a profile to one process and blocks automation of the default profile.
Troubleshooting
"Profile is in use by another browser": your agent is already running the server. Quit it, or pass a different
--profile.Not signed in after
login: runloginagain and wait for✓ Signed in. If Google sign-in is refused, use Continue with email.Switch accounts:
logout, thenlogin.
Programmatic API
import { createEditorHost } from 'paper-remote-mcp';
const host = await createEditorHost({ fileId: '…' });
await host.start();
const result = await host.handleToolCall('agent-1', 'get_basic_info', {}, { name: 'my-app' });
await host.close();Development
git clone https://github.com/vcashwin/paper-remote-mcp && cd paper-remote-mcp
npm install
node src/cli.js login # one-time sign-in (skip if already signed in)
node src/cli.js doctor # browser ✓, sign-in ✓, 36 tools ✓
npm run typecheckPoint your agent at the local checkout so code changes apply on the next server start:
# Claude Code (user scope = every project)
claude mcp add -s user paper-remote -- node "$PWD/src/cli.js" mcp
claude mcp get paper-remote # should show ✔ Connected
# Codex
codex mcp add paper-remote -- node "$PWD/src/cli.js" mcpOr for Codex, add this to ~/.codex/config.toml:
[mcp_servers.paper-remote]
command = "node"
args = ["/absolute/path/to/paper-remote-mcp/src/cli.js", "mcp"]Only one server can use a profile at a time. To run Claude and Codex together, give one its own with --profile ~/.paper-mcp/codex (and run login with that profile once).
MIT © vcashwin
This server cannot be deployed
Maintenance
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenancesingle-binary MCP server that gives AI agents a browser. 66 tools for navigation, form filling, data extraction, screenshots, and DOM diffing — built on pure Chrome DevTools Protocol.13MIT

agentify-desktopofficial
AlicenseNot gradedqualityCmaintenanceMCP server that enables AI tools to control local browser sessions for ChatGPT, Claude, and other AI services, supporting querying, navigation, file uploads, and artifact management.34 npm566Mozilla Public 2.0- AlicenseNot gradedqualityCmaintenanceEnables AI agents to drive a real Chrome instance over the Chrome DevTools Protocol — opening and navigating tabs, reading compact YAML page outlines with refs, clicking, typing, scrolling, screenshotting, and evaluating scripts — with no browser extension or installed dependencies. It also audits pages for horizontal overflow and WCAG AA contrast, available both as an MCP tool and as a CI-friendly CLI.10 npmMIT
- AlicenseBqualityAmaintenanceA desktop browser shared by a human and an AI — same tabs, same live session. It bundles a stdio MCP server with 24 tools (page snapshot, click, type, screenshot, tabs, annotations, evaluate) so any MCP client can drive the browser the human is watching.2458,461 npm3MIT