CloudCrane
Permita que seu agente leia e ajude a construir dados de catálogo curados, com um recibo para cada valor e uma pessoa decidindo o que um agente não pode.
Servidor MCP hospedado
npx add-mcp 'https://cloudcrane.ai/api/build/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
O MCP do workspace
POST /api/build/mcp abre um workspace inteiro, e não apenas uma ferramenta, e há duas formas de entrar. Entrar com conta: adicione a URL ao seu agente sem chave, e um proprietário a aprova em uma página do CloudCrane. Ou cole uma build key, que inicia o cc_build_ e é algo diferente de uma serving key. De qualquer forma, apenas um proprietário pode deixar um agente entrar, todos os planos incluem isso, e qualquer requisição que carregue um cabeçalho Origin é recusada de imediato, porque uma credencial que abre um workspace inteiro não tem lugar em uma página web.
- 1
Claude
Encontre CloudCrane no diretório de conectores do Claude (claude.ai/directory/cloudcrane) e conecte. Ou adicione você mesmo: Settings → Connectors → Add custom connector, com a URL
https://cloudcrane.ai/api/build/mcp, mantendo *Sign in now* e *Register automatically*. - 2 ChatGPT Adicione um servidor MCP personalizado com a mesma URL e escolha *OAuth* para autenticação. Ele é só seu; ninguém mais no ChatGPT o vê.
- 3
Cursor
Adicione-o ao
~/.cursor/mcp.jsoncom a chaveurl(abaixo) e, em seguida, escolha *Needs login* ao lado dele nas configurações de MCP do Cursor. - 4 Cline Customize → MCP → Add MCP Server: remote, Streamable HTTP, a mesma URL. O Cline abre o login no seu navegador.
Cursor (~/.cursor/mcp.json) e Cline (cline_mcp_settings.json)
// Cursor
{ "mcpServers": { "cloudcrane": { "url": "https://cloudcrane.ai/api/build/mcp" } } }
// Cline
{ "mcpServers": { "cloudcrane": { "transport": { "type": "streamableHttp", "url": "https://cloudcrane.ai/api/build/mcp" } } } }
O que entrar com conta faz. O cliente encontra nosso login na primeira resposta do servidor e abre uma página do CloudCrane onde um proprietário escolhe o workspace e o que o aplicativo pode fazer: ler, ou ler e construir, se o aplicativo pediu. Ele começa em leitura. A página começa mostrando para onde ela vai redirecionar você, porque o nome de um aplicativo é apenas como ele se autodenomina. O aplicativo recebe um token que dura uma hora e se renova. Cada aplicativo que você aprovar se torna uma build key em Developers, marcada como conectada com OAuth, com os mesmos limites e as mesmas regras de qualquer chave. Revogue-a lá e ela para na hora. As ferramentas de build são marcadas como alteração de dados, então um cliente que respeita isso, como o Claude, pergunta a você antes de cada uma.
Cada chave recebe dezessete ferramentas de leitura: list_datasets, get_dataset, list_contracts, get_readiness, list_review_items, get_receipts, list_value_sets e get_run para se orientar; list_tools, list_scenarios, get_tool_insights, list_drift_alerts, get_usage e get_next_actions para acompanhar o que está implantado e o que precisa ser feito (a mesma lista que uma pessoa vê na Home); list_events, para um agente para o qual ninguém pode enviar um webhook, ler cada evento que um webhook carregaria de um cursor, mantido por 30 dias; e list_approvals e get_approval para acompanhar o que ele pediu a uma pessoa. Somente leitura, e não por convenção. Elas rodam dentro de uma transação de banco de dados somente leitura, então uma escrita não pode acontecer mesmo que algo tente. list_contracts inclui a definição e exemplos de cada valor, para que serve o campo, de onde vêm suas definições e os PDFs que ele lê.
Uma chave feita para construir ganha mais treze. Escolha *Read and build* ao criar a chave: create_dataset (uma tabela como CSV, TSV ou JSON), create_field, update_field, create_value_set, import_value_set_version, start_run, publish_release e request_approval para construir; e deploy_tool, update_tool, create_tool_key, create_scenario e run_scenarios para colocá-la em serviço. Uma ferramenta que ela implanta permite que quem chama exclua qualquer valor de segurança e não abre mais nada até que ela diga; o segredo de uma tool key é retornado uma única vez, e apenas para uma build key autorizada a ler registros, já que uma tool key os lê; um cenário apenas adiciona uma verificação, e nenhum agente pode removê-la. Cada uma passa pelas mesmas verificações que o painel, então um agente não pode criar um campo que o editor recusaria, e uma chamada recusada não deixa nada pela metade. Cada alteração é registrada como feita por aquela chave, nunca como uma pessoa, e definições que um agente escreve são marcadas como rascunho no histórico do campo. Em um campo de segurança, um agente pode adicionar valores, mas nunca remover um ou transformá-lo em um campo normal. Uma chave somente leitura nunca recebe essas ferramentas e é recusada se chamar uma delas.
Um agente publica apenas quando o portão de precisão passa sozinho: o conjunto de dados tem uma chave de resposta publicada, os campos de hoje foram medidos nele, e nenhum valor de segurança é encontrado com menos frequência do que na última versão. Ele não pode dar o motivo que uma pessoa dá para publicar além do portão, e sem uma chave de resposta não há portão a passar, então uma pessoa publica. A versão nomeia a chave que a publicou, e uma ferramenta com cenários ainda a segura se eles falharem. Quando precisa de mais, ele pede: request_approval arquiva a versão para uma pessoa, que a aprova com o motivo que a versão mantém.
Um segredo é mostrado uma única vez. Ele é armazenado apenas como um hash, então não pode ser mostrado novamente. Perdeu um? Dê à chave um novo segredo no painel: a chave mantém seu nome, acesso e limites, e o segredo antigo para de funcionar na hora.
O conteúdo dos registros é desativado por padrão. list_review_items não retornará o registro em si, a menos que a chave tenha recebido explicitamente essa permissão. Um agente pode triar uma fila por campo e motivo sem nunca ler seus dados.
Uma recusa diz o que fazer em seguida. Além da frase e de um code estável, uma chamada recusada carrega next quando há algo a fazer: { "action": "request_approval", "tool": "request_approval", "kind": "publish_past_gate" } quando apenas uma pessoa pode publicar, { "action": "upgrade", "url": … } além do limite de um plano, ask_owner quando a própria chave não pode, retry_later quando a medição não terminou. Os erros da API REST carregam o mesmo next.