brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
carto-basicsStart here for first-time CARTO use. Orients on the two parallel access paths into the CARTO platform — the MCP server (the primary path for inline, in-conversation work in chat hosts, including creating and editing maps and Workflows) and the CLI (for scripting, CI/CD, headless and bulk/cross-org work, and deeper administration and auditing such as usage-l…
Independent GitHub snapshot · Automated classification · Original documentation governs
CARTO is reachable through two parallel access paths, and most agent setups use one or both:
@carto/carto-cli) — the path for scripting, CI/CD, headless contexts, bulk and cross-org operations, deeper administration and auditing (e.g. SQL over usage logs), and the fullest command surface. Used by many platform skills in this catalog, and the fallback whenever the MCP server isn't attached.Use this skill before any other CARTO skill — it covers how to detect and route between the two access paths, plus CLI installation, authentication, profiles, and the global flags the CLI-driven skills assume.
auth status failures, expired tokens).--profile, --json, --token, or --base-url and you don't yet know how those work.Skills that drive the CLI assume a working, authenticated carto CLI. If the attached MCP server already covers the request (exploring data, creating maps, running Workflows in a chat host), you don't need the CLI at all — route through MCP. Run the checks below before your first CLI call, and re-run them at the start of each task — ephemeral sandboxes (e.g. Claude Code Cowork tasks) wipe the CLI between tasks. An attached MCP server, by contrast, persists at the account level (see below).
carto --version. If command not found, install it yourself — tell the user you're installing, then do it; never deflect with "run this on your own machine." The npm command plus the EACCES / writable-prefix fallback that sandboxes need are in references/installation.md.carto auth status. If not, use the headless flow carto auth login --no-launch-browser — an agent can't complete a browser OAuth. Never open or wait on a browser, and never ask the user for an M2M / API token instead (references/authentication.md).If install or auth can't complete, say so and stop — never silently fall back to Python / SQL / deck.gl or other non-CARTO tooling.
| Topic | Reference |
|---|---|
| Installing the CLI (npm, version verification) | references/installation.md |
Authentication: browser, headless --no-launch-browser, API tokens, SSO | references/authentication.md |
| Profiles: managing multiple orgs / environments | references/profiles.md |
Global flags: --json, --debug, --yes, --token, --base-url, --profile, env vars | references/global-options.md |
| Access paths: CLI vs MCP routing, detection, host support | references/access-paths.md |
The MCP server and CLI serve different intents — some flows chain across both. When the MCP server is attached, prefer it for interactive requests (exploring data, creating and editing maps, building and running Workflows); reach for the CLI for scripting, CI/CD, headless runs, bulk or cross-org work, and deeper administration and auditing (e.g. usage-log queries), or when the server isn't attached. When an intent maps to MCP but the server isn't attached (or the host doesn't render MCP Apps), fall back to the CLI where it applies, or surface the gap — don't silently fall back to a hand-rolled map. The CLI is wiped per task in ephemeral sandboxes; an attached MCP server persists at the account level. Full routing table, detection signals, and auth-dependent tool availability: references/access-paths.md.
carto auth login --no-launch-browser.--json when you need machine-readable output. CLI text output is for humans and may change.auth status, not a generic workspace URL. Private maps live at https://{tenant_domain}/builder/{map_id}; public/shared maps at https://{tenant_domain}/map/{map_id}. Never construct workspace-{region}.app.carto.com URLs.maps delete prompt for the literal word "delete". Pass --yes (or --json) for non-interactive use.import and sql job poll until completion by default. Pass --async (where supported) to return immediately and poll separately.