UX Pilot MCP
Work directly inside UX Pilot from Claude, ChatGPT, Cursor, Codex, and other MCP clients.
Bring AI-generated work into UX Pilot, organize it, review and version it, build prototypes, then switch back to UX Pilot AI for deeper product-aware generation.
The UX Pilot MCP server connects any MCP-compatible AI client to your UX Pilot workspace. Your assistant can create workstreams and pages, import HTML or live URLs as designs, run UX and accessibility reviews, manage versions and comments, and generate React prototypes, all inside UX Pilot.
The server is hosted by UX Pilot. This repository documents how to connect to it and what it exposes. There is no server code here to build or run.
- Server URL:
https://mcp.uxpilot.net/mcp - Transport: Streamable HTTP (POST)
- Protocol: MCP 2025-11-25 (JSON-RPC 2.0)
- Auth: Native OAuth sign-in (recommended), or
Authorization: BearerAPI key fallback - Tools: 87
Authentication
Native sign-in (recommended)
If your AI tool shows a UX Pilot sign-in or authorization screen, choose that flow. You log in with your UX Pilot account, review the requested access, and approve the connection. No API key to copy or paste, and access stays tied to your account and plan.
API key fallback
For clients that only support static headers, generate a key from the API Keys tab in your UX Pilot workspace and send it as a bearer token:
Authorization: Bearer ep_your_api_key
Enterprise workspaces: your admin manages MCP/API keys. Keep the key private and rotate it if access changes.
Setup
Prefer native sign-in wherever the client supports it. Use the API key config as a fallback. Replace ep_your_api_key with your real key.
Claude
Native connector (recommended):
- Open Claude settings and add a custom connector / remote MCP server.
- Paste the server URL:
https://mcp.uxpilot.net/mcp - Choose the UX Pilot sign-in flow when Claude offers it and approve access.
- In a conversation, ask Claude to list UX Pilot tools.
API key fallback (Claude Desktop, via mcp-remote): edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows: %APPDATA%\Claude\claude_desktop_config.json)
{
"mcpServers": {
"uxpilot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.uxpilot.net/mcp",
"--transport",
"http-only",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer ep_your_api_key"
}
}
}
}
Requires Node.js. mcp-remote bridges stdio to Streamable HTTP.
ChatGPT
Use ChatGPT's custom connector / MCP support (Developer mode, availability depends on your plan):
- Open ChatGPT settings and add a custom connector / MCP server.
- Paste the server URL:
https://mcp.uxpilot.net/mcp - Complete the UX Pilot sign-in when prompted.
- Enable the connector in a chat and ask ChatGPT to list UX Pilot tools.
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project). Adding the URL alone triggers native sign-in if supported; the header is the API key fallback.
{
"mcpServers": {
"uxpilot": {
"url": "https://mcp.uxpilot.net/mcp",
"headers": {
"Authorization": "Bearer ep_your_api_key"
}
}
}
}
VS Code + Copilot
Add to .vscode/mcp.json:
{
"servers": {
"uxpilot": {
"type": "http",
"url": "https://mcp.uxpilot.net/mcp",
"headers": {
"Authorization": "Bearer ep_your_api_key"
}
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"uxpilot": {
"serverUrl": "https://mcp.uxpilot.net/mcp",
"headers": {
"Authorization": "Bearer ep_your_api_key"
}
}
}
}
Codex
Add to ~/.codex/config.toml:
[mcp_servers.uxpilot]
url = "https://mcp.uxpilot.net/mcp"
bearer_token_env_var = "UXPILOT_API_KEY"
Then export the raw key (no Bearer prefix; Codex adds it):
export UXPILOT_API_KEY="ep_your_api_key"
Any MCP client
Clients that do not speak Streamable HTTP can bridge through mcp-remote:
{
"mcpServers": {
"uxpilot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.uxpilot.net/mcp",
"--transport",
"http-only",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer ep_your_api_key"
}
}
}
}
Tools
87 tools, grouped by what they do. Tools marked · credits consume account credits; credit-consuming and destructive actions require explicit confirmation.
Discover and inspect (13)
| Tool | Description |
|---|---|
search_designs |
Find existing HTML designs and React projects by keyword, title, prompt, page name, or pageId |
list_workstreams |
List your workstreams/folders with page summaries |
list_pages |
List your pages with URLs, counts, and thumbnails |
get_page_context |
Get a page's groups, designs, canvas, and comments |
get_design |
Get one design's details, preview URL, optional HTML |
get_design_preview |
Get a design's preview/page URL and status (no HTML) |
get_design_versions |
Get a design's version/parent family |
list_design_collections |
List your custom design-system collections |
get_design_collection |
Get a collection's assets, styles, and docs |
list_themes |
List available brand/style themes |
get_theme |
Get a theme's full JSON for on-brand output |
list_symbols |
List reusable editor components/symbols |
get_symbol |
Get a symbol's HTML/CSS content |
Organize your workspace (19)
| Tool | Description |
|---|---|
create_workstream |
Create a workstream/folder |
update_workstream |
Rename or re-describe a workstream |
delete_workstream |
Delete a workstream and detach its pages |
create_page |
Create a blank page |
create_page_from_template |
Create a page/group from a template |
update_page |
Update page name, prompt, or AI context |
delete_page |
Delete a page |
move_page_to_workstream |
Move a page into or out of a folder |
toggle_page_bookmark |
Bookmark or unbookmark a page |
create_group |
Create a design group on a page |
update_group |
Update a group's name, font, or designs |
delete_group |
Delete a group and its designs |
move_group_to_page |
Move a group and its designs to another page |
set_group_saved |
Save or unsave a group to your library |
duplicate_design |
Duplicate a design onto a page/group |
move_design_to_page |
Move a design to another page/group |
archive_design |
Archive and detach a design |
update_design_metadata |
Update a design's title, prompt, position, size |
set_design_saved |
Save or unsave a design to your library |
Generate with UX Pilot AI (5)
| Tool | Description |
|---|---|
start_design_agent |
Create or change screens, whole flows, or a new React app from a brief; runs in the background · credits |
get_agent_job |
Poll an agent run and show its progress until it completes |
stop_agent_job |
Stop an agent run that is still in progress (finished screens are kept) |
get_generation_status |
Poll generation, import, and React build status |
retrieve_designs |
Poll status/URLs/HTML for designs (legacy, for older clients) |
Edit designs and React code yourself (7)
These edits run without UX Pilot AI and consume no credits.
| Tool | Description |
|---|---|
patch_design_html |
Apply small, exact edits (text, classes, styles, attributes) to a design's HTML |
edit_design_html |
Save full replacement HTML for an existing design |
list_react_projects |
List your React apps/prototypes, with keyword filtering |
list_react_project_files |
List a React app's source files |
read_react_project_file |
Read one source file (with a hash for safe edits) |
search_react_project_files |
Search a React app's code for components, routes, classes, or copy |
edit_react_project_files |
Save code edits as a new version and queue a build/publish |
Bring in external AI output (15)
| Tool | Description |
|---|---|
import_html_design |
Import external HTML as a previewable design · credits |
import_live_url |
Capture a public URL as a design · credits |
add_canvas_assets |
Add URL-backed image/reference assets to a page |
upload_canvas_asset |
Upload base64/data-URL images to a page |
update_canvas_assets |
Update existing canvas assets and linked items |
delete_canvas_assets |
Delete canvas assets |
add_canvas_items |
Add sticky notes, annotations, and flow nodes |
update_canvas_items |
Move, relabel, or restyle canvas items |
delete_canvas_items |
Delete canvas items |
generate_flowchart |
Generate a flowchart graph from a prompt |
edit_flowchart |
Edit an existing flowchart from an instruction |
list_diagrams |
List saved diagrams on a page |
create_diagram |
Create a saved sitemap/journey/process diagram |
update_diagram |
Update a diagram's metadata, nodes, or edges |
delete_diagram |
Delete a diagram |
Review, audit, and accessibility (10)
| Tool | Description |
|---|---|
run_ux_review |
Run a UX review, persist findings as comments · credits |
get_review_status |
Poll an async UX review job |
apply_ux_review_fixes |
Apply review findings as a child version · credits |
run_persona_audit |
Run a persona-based audit, persist findings |
apply_persona_audit_fixes |
Apply persona findings as a child version · credits |
save_accessibility_report |
Save an external axe-style a11y report |
apply_accessibility_fixes |
Apply a11y violations as a child version · credits |
compare_review_scores |
Compare before/after review scores (read-only) |
generate_heatmap |
Predict where attention lands on a design (heatmap overlay) · credits |
generate_gaze_flow |
Predict the order people scan a design (gaze-flow overlay) · credits |
Versions and comments (12)
| Tool | Description |
|---|---|
create_design_version |
Create a version preserving parent history |
compare_design_versions |
Compare two designs/versions (metadata + HTML diff) |
create_version_from_comments |
Create a child version from fixed HTML and comments |
create_comment |
Comment on a page or anchored to a design/shape |
update_comment |
Edit your comment's text, mentions, or position |
delete_comment |
Delete a comment and its replies |
reply_to_comment |
Reply to a comment thread |
update_comment_reply |
Edit your reply |
delete_comment_reply |
Delete a reply |
resolve_comment |
Resolve or reopen a comment |
resolve_comments_with_version_summary |
Reply to and resolve comments with a version summary |
summarize_comments |
List and summarize page comments |
Prototype and publish (5)
| Tool | Description |
|---|---|
generate_react_prototype |
Generate a React app from designs · credits |
edit_react_prototype |
Change an existing React app with UX Pilot AI · credits |
build_react_prototype |
Queue a build/publish refresh for a prototype |
publish_prototype |
Publish a prototype as a hosted URL |
publish_design_preview |
Publish a design's HTML as a hosted preview · credits |
Plus
request_action_confirmation, a safety utility that mints a confirmation token for risky actions.
Quick start
- Pick the AI client you want to use with UX Pilot.
- Use the native sign-in steps above with the server URL.
- If your client needs static headers, generate an API key and replace
ep_your_api_keyin the fallback config. - Ask your assistant: "Create a UX Pilot page, import this HTML as a design, then run a UX review."
Support
- Product and account help: uxpilot.ai
- Issues with this integration: open an issue
- MCP specification: modelcontextprotocol.io