MCP server
Connect Claude, ChatGPT, or Cursor to NexDoc Design via the Model Context Protocol.
Package: @nexdoc/mcp-server. Agent instructions: nexdoc-mcp skill.
Two transports, one tool set:
| Transport | Auth | Best for |
|---|---|---|
| Streamable HTTP (remote) | OAuth | Hosted connector at https://mcp.nexdoc.design/mcp |
| stdio (local) | NXD_API_KEY | Cursor, Claude Desktop, Claude Code |
Tools
| Tool | Purpose |
|---|---|
create_design | Create/reuse a job and start a run |
update_design | New run with edit instructions |
check_run | One-shot status (fresh viewer_url) |
refresh_preview | New preview link if the old one expired |
wait_for_run | Poll until terminal (or timeout) |
notify_run_email | Email the account owner when an in-progress run finishes (when the server exposes this tool) |
list_runs | Runs for a job |
export_design | pdf or html → download_url (standard download) |
publish_design / unpublish_design | Public URL — only when the user asks |
list_formats | Format catalog |
get_balance | Wallet summary |
Remote HTTP + OAuth (recommended)
Add a remote MCP server named nexdoc at:
https://mcp.nexdoc.design/mcpThe client opens a browser for OAuth. No API key is stored in the client.
Local stdio (API key)
Create a key at app.nexdoc.design/keys. Never print the secret.
{
"mcpServers": {
"nexdoc": {
"command": "npx",
"args": ["-y", "@nexdoc/mcp-server"],
"env": {
"NXD_API_KEY": "nxd_live_..."
}
}
}
}Example prompt
Create a business card for Jane Doe, Founder at Acme. Dark minimal layout. Wait until it finishes and give me the viewer URL and a PDF download link.
The agent should call create_design → wait_for_run → return viewer_url → export_design (PDF for a card). Do not call publish_design unless the user asks to publish.