Resources e prompts
Além das tools, o servidor oferece três coisas que o cliente usa por conta própria: resources (documentos que o usuário anexa à conversa), prompts (roteiros prontos que o usuário escolhe) e completions (autocomplete dos argumentos dos dois). Na era 2026-07-28, ele também pede confirmação antes de rodar uma tool destrutiva.
Nada disso abre um caminho novo até os seus dados: tudo passa pelas mesmas tools, sob as mesmas permissões e o mesmo escopo do token. Com um token só de leitura, resources e completions continuam disponíveis, mas um prompt que escreve — como review_portal_access, que reenvia convites — não aparece.
Resources
Um resource é um documento identificado por uma URI. O usuário escolhe, por exemplo, um usuário do portal, e o cliente MCP lê o documento e o põe no contexto, sem que o modelo precise chamar uma tool.
| URI | O que volta |
|---|---|
kobana://dashboards/organization | A organização do token (JSON) |
kobana://dashboards/schemas | O catálogo de recursos da API (JSON) |
kobana://dashboards/schemas/{resource} | Os campos de um recurso: tipo, enum, significado, quais ordenam (JSON) |
kobana://dashboards/portal_users/{id} | Um usuário do portal, com o status e o tenant ID cujos registros ele vê (JSON) |
resources/list traz as URIs fixas e resources/templates/list os templates com {id}.
- Permissões. Cada resource é lido pela tool correspondente (
kobana://dashboards/portal_users/{id}édashboards_portal_users_get). Ele só aparece, e só é lido, se você pode rodar essa tool. - Não encontrado. URI desconhecida, ou registro que não existe nesta organização, é
-32002na era 2025 e-32602na2026-07-28— veja Erros. - Sem assinatura de mudanças. O servidor é stateless: não há
resources/subscribenem aviso de lista alterada.
Prompts
Um prompt é uma instrução pronta que você escolhe no cliente e que vira a primeira mensagem da conversa. Ele só aparece se você pode rodar todas as tools em que se apoia.
| Prompt | Argumentos | O que faz |
|---|---|---|
tenant_overview | tenant_id | Quem entra no portal por um tenant ID: os usuários do portal que o compartilham e o status de cada um. |
review_portal_access | tenant_id (opcional) | Encontra usuários do portal que ainda aguardam o convite e oferece reenviá-lo, uma confirmação por vez. |
team_access_review | — | Quem está na equipe do dashboard, com qual função e quais permissões. |
Argumento obrigatório ausente é -32602.
Completions
completion/complete sugere valores enquanto você digita um argumento:
- Ids (o
{id}de usuários do portal): busca na listagem correspondente, sob a mesma permissão dela. Se você não pode listar, não há sugestão. {resource}dekobana://dashboards/schemas/{resource}: os nomes do catálogo, pelo prefixo.
Sem fonte de sugestão, a resposta é uma lista vazia, e você continua digitando.
Confirmação de tools destrutivas
Tools destrutivas — as que apagam, encerram, suspendem ou desativam um registro, ou enviam um e-mail ou convite — são marcadas com destructiveHint. O servidor não confia só no cliente: na era 2026-07-28 ele mesmo pede a confirmação:
- O primeiro
tools/callnão roda nada. Ele voltaresultType: "input_required"com um formulário de uma pergunta: rodar esta ação, com estes argumentos? - O cliente mostra a pergunta e reenvia a mesma chamada com a sua resposta.
- Só um sim explícito executa. Recusar ou cancelar volta um resultado
isErrorcomUSER_DECLINED, e nada muda.
A confirmação vale só para aquela chamada: a mesma tool, os mesmos argumentos, a mesma pessoa e organização, por 5 minutos. Uma resposta não pode ser reaproveitada para outro registro ou outra ação; se algo não bater, o servidor simplesmente pergunta de novo. E ela é de uso único: reenviar uma chamada já confirmada volta isError com confirmation_replayed, sem executar nada — para repetir a ação, chame a tool de novo e confirme outra vez.
Um cliente que não consegue confirmar — na era 2025, ou na 2026-07-28 sem declarar suporte a formulários de elicitation — não roda tools destrutivas: a chamada volta isError com confirmation_required e nada é executado. As demais tools seguem funcionando. Se o servidor não consegue registrar a confirmação naquele momento, a tool também é recusada, com confirmation_unavailable; tente de novo depois.