--- name: catcher-data description: Use quando um app ou agente de IA precisa consumir a plataforma de dados Catcher Data — banco SQL gerenciado (MySQL/Postgres), busca vetorial (RAG), cache Redis, storage de objetos, wiki com RAG, ou MCP. Cobre autenticação por API key, projetos, os seis produtos e como isolar clientes finais (multi-tenancy). homepage: https://data.catcher.one api_base: https://data-api.catcher.one mcp_endpoint: https://data-api.catcher.one/v1/mcp --- # Catcher Data — skill de integração (super) A **plataforma de dados para apps e agentes de IA**: seis produtos numa única API REST, com multi-tenancy nativa. Este é o guia único para um agente começar. A referência completa por produto está em https://data.catcher.one/docs (e em https://data.catcher.one/llms-full.txt como um único arquivo). ## Onboarding de agente (pegar uma API key) Você (agente) precisa de uma **API key** `ctc_…` da conta do usuário. Duas vias: 1. **O humano cria no Console** (recomendado): https://data.catcher.one → API Keys → "Nova key" (papel owner ou admin). O valor aparece uma vez. 2. **Programaticamente**, com um JWT de owner já em mãos: ```bash curl -sX POST https://data-api.catcher.one/v1/tokens \ -H "Authorization: Bearer " -H 'Content-Type: application/json' \ -d '{ "label": "meu-agente", "role": "owner" }' # → { "token": "ctc_…", ... } (aparece UMA vez) ``` Depois, todo request server-to-server leva `-H "X-API-Key: ctc_…"`. ## Conectar via MCP (1 comando) Se você é um agente MCP (Claude Code, Cursor…), a via mais rápida é o endpoint nativo — os seis produtos viram ~54 tools tipadas: ```bash claude mcp add --transport http catcher-data \ https://data-api.catcher.one/v1/mcp \ --header "Authorization: Bearer ctc_mcp_SEU_TOKEN" ``` O token MCP (`ctc_mcp_…`, diferente da API key) é criado em https://data.catcher.one → MCP, ou via `POST https://data-api.catcher.one/v1/mcp/tokens` com escopos (`wiki:read`, `vec:read`, `db:read`…). Tools: `wiki_ask`, `wiki_search`, `vec_search`, `db_run_sql` (SQL guard: read-only por padrão), `storage`, `cache`. RBAC por usuário; deny sempre vence. ## Conceitos que valem antes de chamar - **Conta → Projeto → Tenant.** A API key carrega a conta. Database, Storage, Wiki e as coleções do Vector vivem dentro de um **projeto** (`POST https://data-api.catcher.one/v1/clouddb/projects`). O **tenant** é o cliente final do SEU app — o mesmo `tenant_id` isola um cliente nos produtos. - **Envelope de erro:** `{ error_code, message, trace_id }` — faça match no `error_code` (estável), não na mensagem. - **Assíncrono:** provisionar banco/cache e ingerir arquivo é assíncrono — a resposta é imediata (`provisioning`/`processing`) e você faz poll. - **Feature flags:** rota de módulo desligado responde `404` (não `403`). ## Os seis produtos (rota + skill dedicada) - **Database** (`/v1/clouddb/*`) — MySQL 8 e PostgreSQL 16 gerenciados — provisionamento keyless, SQL guardado, schema versionado, backups/PITR, self-tuning, DBA autônomo. Skill: https://data.catcher.one/skills/database/SKILL.md · Docs: https://data.catcher.one/docs/database - **Vector** (`/v1/cloudvec/*`) — Busca vetorial sobre pgvector — ingestão de arquivos, busca híbrida (RRF), re-rank LLM, isolamento por tenant. Skill: https://data.catcher.one/skills/vector/SKILL.md · Docs: https://data.catcher.one/docs/vector - **Cache** (`/v1/cloudcache/*`) — Redis dedicado em VM própria — DSN rediss:// com TLS, dois modos, resize, métricas, prefixo por tenant. Skill: https://data.catcher.one/skills/cache/SKILL.md · Docs: https://data.catcher.one/docs/cache - **Storage** (`/v1/cloudstore/*`) — Buckets S3-compatíveis — upload, pastas, URLs assinadas, preview, chaves HMAC, bucket por tenant. Skill: https://data.catcher.one/skills/storage/SKILL.md · Docs: https://data.catcher.one/docs/storage - **Wiki** (`/v1/cloudwiki/*`) — Base de conhecimento RAG — páginas Markdown, busca híbrida, ask com fontes, Knowledge Refinery. Skill: https://data.catcher.one/skills/wiki/SKILL.md · Docs: https://data.catcher.one/docs/wiki - **MCP** (`/v1/mcp`) — Endpoint Model Context Protocol — 54 tools tipadas sobre os produtos, tokens com escopo, RBAC, SQL guard. Skill: https://data.catcher.one/skills/mcp/SKILL.md · Docs: https://data.catcher.one/docs/mcp ## Fluxo mínimo end-to-end (Database) ```bash KEY="X-API-Key: ctc_…"; B=https://data-api.catcher.one; JS='Content-Type: application/json' # 1. projeto (uma vez) PID=$(curl -sX POST $B/v1/clouddb/projects -H "$KEY" -H "$JS" \ -d '{"name":"Prod","hosting_mode":"catcher","strategy":"row_level"}' | jq -r .id) # 2. instância (assíncrono → poll até status=ready) IID=$(curl -sX POST $B/v1/clouddb/instances -H "$KEY" -H "$JS" \ -d "{\"project_id\":\"$PID\",\"name\":\"app-pg\",\"engine\":\"postgres\",\"tier\":\"db-f1-micro\"}" | jq -r .id) # 3. query governada (read-only por padrão) curl -sX POST $B/v1/clouddb/instances/$IID/query -H "$KEY" -H "$JS" \ -d '{"sql":"SELECT now()"}' ``` ## Próximo Escolha o produto e carregue a skill dedicada acima, ou faça um fetch de https://data.catcher.one/llms-full.txt para todo o contexto de uma vez.