Reference

MCP Server

Connect Claude, Cursor, VS Code, and other AI clients to your widgets.pro account over the Model Context Protocol.

The widgets.pro MCP server lets AI clients read and edit your dashboards, widgets, files, and marketplace items on your behalf — over the Model Context Protocol. Once connected, an assistant can answer questions like "add a revenue chart to my Sales dashboard" or "duplicate the Ops dashboard for the staging team" and execute the change directly.

Endpoint

https://mcp.widgets.pro

Both https://mcp.widgets.pro and https://mcp.widgets.pro/mcp work — clients that strip the path are handled automatically.

Authentication

The server speaks OAuth 2.1 with Dynamic Client Registration. Most modern MCP clients (Claude Code, Claude.ai, Cursor, VS Code) handle the flow themselves — you click Authorize in a browser tab and you're done. No API keys, no client secrets to manage.

For older clients without native OAuth support, use the mcp-remote bridge — see Other clients.

Scopes

Tokens are issued with one or more of the following scopes:

ScopeGrants
dashboard:readList, view, screenshot dashboards
dashboard:writeCreate, update, delete, duplicate, share dashboards
widget:readList and view widgets and widget schemas
widget:writeAdd, update, move, delete widgets
file:readList and download files
file:writeUpload files

Defaults to all non-admin scopes. You can narrow scopes per API key in Settings → Developer → API keys.

Client setup

Claude Code

claude mcp add --transport http widgets-pro https://mcp.widgets.pro

Restart Claude Code; on the next prompt that uses a widgets.pro tool, a browser tab opens for OAuth.

Claude.ai (web)

  1. Settings → Profile → Integrations → Add custom integration
  2. Name: widgets.pro
  3. URL: https://mcp.widgets.pro
  4. Click Add — authorize in the popup.

Cursor

Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json):

{
  "mcpServers": {
    "widgets-pro": {
      "type": "http",
      "url": "https://mcp.widgets.pro/mcp"
    }
  }
}

Cursor handles OAuth on first use.

VS Code (GitHub Copilot)

Open the Command Palette → MCP: Add Server → choose HTTP → paste https://mcp.widgets.pro. The OAuth tab opens automatically.

Or edit .vscode/mcp.json:

{
  "servers": {
    "widgets-pro": {
      "type": "http",
      "url": "https://mcp.widgets.pro/mcp"
    }
  }
}

Codex

codex mcp add widgets-pro --url https://mcp.widgets.pro

Windsurf

Open Cascade → Configure MCPAdd server → paste the URL. Windsurf supports streamable HTTP + OAuth natively.

Claude for Desktop

Claude Desktop doesn't yet support remote OAuth servers natively, so use the mcp-remote bridge. Edit claude_desktop_config.json:

{
  "mcpServers": {
    "widgets-pro": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.widgets.pro/mcp"]
    }
  }
}

Restart Claude Desktop. On first request a browser tab opens for OAuth; the token is cached at ~/.mcp-auth/.

Other clients

Any client that supports streamable HTTP + OAuth 2.1 can connect directly. For stdio-only clients, wrap the URL with mcp-remote:

{
  "command": "npx",
  "args": ["-y", "mcp-remote", "https://mcp.widgets.pro/mcp"]
}

Available tools

The assistant discovers these tools automatically — you don't need to memorize them. The list below is for reference.

Dashboards

ToolPurpose
list_dashboardsList dashboards accessible to the user
get_dashboardGet a single dashboard with widget count
create_dashboardCreate a new dashboard
update_dashboardRename, resettle sharing, regroup widgets
delete_dashboardPermanently delete a dashboard
duplicate_dashboardCopy a dashboard with all widgets
share_dashboardGenerate a public share link
unshare_dashboardRevoke the public share link
get_screenshotCapture a PNG of a dashboard or widget
get_active_dashboardRead the dashboard the user is currently viewing

Widgets

ToolPurpose
list_widgetsList widgets on a dashboard
get_widgetGet a widget's full config
add_widgetAdd a widget to a dashboard
update_widgetUpdate widget config or type
move_widgetChange a widget's position or size
delete_widgetRemove a widget
get_widget_schemaGet the JSON Schema for a widget type
get_available_widget_typesBrowse all widget types

Files

ToolPurpose
list_filesList uploaded files
get_fileGet a file's metadata + signed URL
upload_fileUpload a file (image, CSV, JSON)

Marketplace

ToolPurpose
marketplace_browseBrowse published widget templates
marketplace_publishPublish a widget to the marketplace
marketplace_installInstall a marketplace widget into a dashboard
marketplace_versionManage versions of a published widget

Designer (advanced)

ToolPurpose
designer_get_templateGet a widget definition template
designer_create_definitionAuthor a new widget definition
designer_duplicate_definitionFork an existing definition
designer_snapshotSnapshot the current designer canvas
designer_batchRun a batch of design ops atomically
designer_get_guidelinesRead the active design guidelines

Batch

ToolPurpose
batch_operationsRun several read/write ops in one round-trip

Rate limits

Default: 1000 requests per hour per OAuth client per user. Hitting the limit returns JSON-RPC 429. If you need more for a high-volume agent, contact support.

Troubleshooting

The browser tab doesn't open / OAuth fails. Check that your client supports OAuth 2.1 with PKCE. If not, use mcp-remote (see Other clients).

401 Unauthorized after a while. Tokens expire. Most clients refresh transparently; if not, re-run the Add server step or delete the stale entry under ~/.mcp-auth/.

A tool returns "scope required: dashboard:write". The token wasn't issued the scope. In the originating client, remove the integration and re-add it — the consent screen will request the right scopes. For API keys, edit scopes in Settings → Developer → API keys.

Need to revoke access entirely. Open Settings → Developer → Connected apps, find the client by name, and click Revoke. The token stops working immediately.