# markets.sh > European company and market data with agent-native tables (hypertables), > background data agents, and connected data sources — usable from the web > app, a CLI, or any MCP client. ## For AI agents - CLI documentation: https://markets.sh/docs/cli Install: `curl -fsSL https://markets.sh/install | sh` The `markets` CLI has stable output contracts: JSON results on stdout, progress/errors on stderr, meaningful exit codes. `markets list --json` returns every available tool with its JSON Schema input contract. `markets task create '' --await` runs a server-side data agent and blocks until it finishes (exit 0 done / 2 failed / 3 wait limit). Agents: run awaiting commands as background shells and wait for exit — never poll task status in a loop or ask the user to check back later; `markets task await ` re-attaches to an already-running task. `markets help ` prints self-sufficient documentation. - Canonical AI-client MCP connector (OAuth-capable streamable HTTP): POST https://markets.sh/mcp Authentication: OAuth or `Authorization: Bearer `. OAuth discovery: https://markets.sh/.well-known/oauth-protected-resource Claude, ChatGPT, and Codex setup guide: https://markets.sh/help/mcp OAuth and unscoped personal credentials have full external-safe account access; scoped keys retain their tool-family and connector-product limits. - Compatibility endpoint used by existing CLI releases (streamable HTTP): POST https://markets.sh/api/mcp Authentication: `Authorization: Bearer ` (created in the web app under account -> API keys) or an existing Supabase user token. Stdio-only MCP clients: `markets mcp serve` proxies stdio to this endpoint with stored credentials. Claude Code global setup: `claude mcp add --scope user markets-cli -- markets mcp serve` Codex / ChatGPT desktop / IDE setup: `codex mcp add markets -- markets mcp serve` Both reuse `markets login` and its pre-registered OAuth client; DCR is not required. `/mcp`, `/api/mcp`, and the stdio proxy all use the same Hyperlist registry and execution path. The distinct Claude name only avoids a local configuration collision; it does not select a different tool catalog. - REST API documentation: https://markets.sh/docs/api ## Notes - Tool availability is per-account (tool sources are user-configurable); discover the live surface via `tools/list` on the MCP endpoint or `markets list --json` rather than assuming a fixed catalog. - Connected external data sources (calendars, CRMs, LinkedIn, YouTube, …) use four broker tools: connections_list, connection_describe, connection_fetch for reads, and connection_execute for explicitly authorized create/update operations.