Agentes de IA (MCP)
Conecte Claude, Cursor, VS Code e outros agentes às ferramentas pelo servidor MCP, com custo visível e limite de gasto por chave.
O servidor MCP (Model Context Protocol) deixa um agente de IA descobrir e usar as ferramentas da plataforma, como criar um QR, converter um PDF ou buscar na base de conhecimento, com a sua conta e os seus créditos. Ele usa as mesmas regras da API: os mesmos preços, escopos e franquias.
Liberação gradual
O servidor MCP está sendo liberado aos poucos. Enquanto ele não estiver ativo no seu ambiente, /mcp responde 404 com o código mcp.disabled.
Conexão
| URL | https://api.respawntech.dev/mcp |
| Transporte | Streamable HTTP, sem sessão, respostas JSON |
| Autenticação | Authorization: Bearer <token de API> |
| Escopo obrigatório | mcp:use, além dos escopos de cada ferramenta |
Nunca coloque o token na URL (?token=, ?api_key=…): o servidor recusa com 400. Conectores de produtos como Claude.ai e ChatGPT, que pedem login em vez de token, ainda não são suportados.
Crie uma chave para o agente
No dashboard, em APIs, crie um token só para o agente. Os modelos prontos preenchem escopos e controles:
- Agente de suporte: busca na base de conhecimento e consulta de saldo.
- Agente completo: todas as ferramentas.
- Somente leitura: só consultas.
Uma chave de agente deve ter um limite diário de gasto (sugestão: 10 créditos) e uma data de expiração. Veja Controles da chave.
Configure o cliente
claude mcp add --transport http respawn https://api.respawntech.dev/mcp \
--header "Authorization: Bearer $RESPAWN_API_TOKEN"{
"mcpServers": {
"respawn": {
"url": "https://api.respawntech.dev/mcp",
"headers": {
"Authorization": "Bearer rsk_live_…"
}
}
}
}{
"servers": {
"respawn": {
"type": "http",
"url": "https://api.respawntech.dev/mcp",
"headers": {
"Authorization": "Bearer ${input:respawn-token}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "respawn-token",
"description": "Respawn Tech Dev API token",
"password": true
}
]
}{
"mcpServers": {
"respawn": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.respawntech.dev/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer rsk_live_…"
}
}
}
}Clientes que só falam stdio usam a ponte mcp-remote, como no último exemplo.
Ferramentas
O agente só vê as ferramentas permitidas pelos escopos da chave. As descrições que ele recebe estão em inglês por padrão; use lang (abaixo) para outro idioma.
| Ferramenta | Notas | Tipo | Custo |
|---|---|---|---|
account_get_balance | Saldo de créditos e, se houver, o limite diário da conexão e quanto resta hoje. | Leitura | Grátis |
qr_create | Cria um QR dinâmico; o destino pode mudar depois sem reimprimir. | Escrita · dry-run | Como a criação via API (a partir de 1 crédito) |
qr_update | Muda destino, nome ou cores de um QR. | Escrita | Grátis |
qr_delete | Exclui um QR: as cópias impressas param de redirecionar. | Destrutiva | Grátis |
qr_list | Lista os QR codes com destino e total de scans. | Leitura | Leitura medida |
qr_get | Detalhe de um QR code. | Leitura | Leitura medida |
qr_get_analytics | Scans de um período, com quebra por dia ou por dispositivo. | Leitura | Leitura medida |
pdf_convert | Converte HTML em PDF (assíncrono; acompanhe com pdf_get). | Escrita · dry-run | Como a conversão via API (a partir de 1 crédito) |
pdf_get | Status de uma conversão e link de download assinado. | Leitura | Leitura medida |
pdf_list | Lista as conversões recentes. | Leitura | Leitura medida |
url_safety_check | Verifica se uma URL é maliciosa antes de compartilhá-la. | Leitura | Leitura medida |
ci_error_extract | Extrai de um log de CI só as linhas que explicam a falha. | Leitura | Leitura medida |
web_to_markdown | Baixa uma página web (HTML estático) e devolve o conteúdo em Markdown; com collection_id, também grava na base. | Escrita · dry-run | Leitura medida (a gravação na base é cobrada como a ingestão via API) |
rag_list_collections | Lista as bases que a conexão pode usar (chame primeiro para obter o collection_id). | Leitura | Grátis |
rag_create_collection | Cria uma base vazia (modelo standard ou high_precision). Só quando o usuário pede; oculta em conexões limitadas a bases específicas. | Escrita | Grátis (armazenamento cobrado por dia) |
rag_add_document | Adiciona um documento, ou substitui o que tem o mesmo external_id (assíncrono; acompanhe com rag_get_document). | Escrita · dry-run | Como a ingestão via API (por trecho) |
rag_get_document | Status de um documento e, se falhou, o motivo. | Leitura | Grátis |
rag_list_documents | Lista os documentos de uma base (título, external_id, status), paginado. | Leitura | Grátis |
rag_delete_document | Exclui um documento desatualizado ou errado: ele sai das buscas. | Destrutiva | Grátis |
rag_search | Busca os trechos mais relevantes numa base. | Leitura · dry-run | Como a busca via API (franquia diária + blocos) |
rag_describe_collection | Lista as chaves de metadados e os valores mais comuns da base: os filtros que rag_search aceita. | Leitura | Grátis |
rag_read_document | Sumário de um documento e o texto de seções consecutivas, para ler em volta de um trecho encontrado (section_index). | Leitura | Grátis |
rag_rerank | Reordena textos por relevância a uma pergunta. | Leitura · dry-run | Como o rerank via API (franquia diária + blocos) |
rag_answer | Responde só com trechos da base, citando cada um com [n] (section_id, título e fonte); sem trecho acima de min_score, diz que não sabe (answered=false). | Leitura · dry-run | Como uma busca no modo `accurate` (franquia diária + blocos) |
rag_decide | Roteamento semântico sem LLM: pontua um texto contra 2 a 50 opções e se abstém (decided=false) abaixo de threshold ou min_margin. | Leitura · dry-run | Como o rerank via API (franquia diária + blocos) |
rag_index | Índice compacto dos documentos prontos (título, external_id, metadados pedidos), sem conteúdo, para escolher o que ler. | Leitura | Grátis |
rag_lint | Acha documentos duplicados e possíveis contradições na base e diz qual manter. | Leitura | Grátis |
rag_mark_changed | Marca como desatualizados os documentos ligados a arquivos que mudaram (paths, opcionalmente com o commit). | Escrita | Grátis |
rag_retry_document | Reprocessa um documento com falha (acompanhe com rag_get_document). | Escrita · dry-run | Como a ingestão via API, só se a nova tentativa der certo |
rag_get_usage | Preços e uso de hoje em créditos: franquia restante, custo da próxima chamada e armazenamento. | Leitura | Grátis |
rag_feedback | Confirma ou rejeita um trecho como resposta a uma pergunta. | Escrita | Grátis |
notify | Avisa o seu humano (título, mensagem e prioridade) pelo canal padrão ou por um canal escolhido; sem canal configurado, vai para o e-mail da conta. | Escrita | Cobrado por envio, como a API |
learning_save | Salva um aprendizado do projeto (armadilha, decisão, convenção ou receita) na memória; devolve duplicate_of se já existir algo igual ou parecido. | Escrita | Como a ingestão da base de conhecimento (por trecho) |
learning_recall | Recupera os aprendizados do projeto mais relevantes para a tarefa em mãos. Um aprendizado recém-salvo pode demorar a aparecer. | Leitura | Como a busca da base de conhecimento (franquia diária + blocos) |
learning_forget | Esquece um aprendizado errado ou ultrapassado. | Destrutiva | Grátis |
audio_transcribe | Transcreve fala em texto, SRT ou WebVTT, com tempos e idioma detectado; diarize diz quem falou (assíncrono; acompanhe com audio_get). | Escrita · dry-run | 1,5 crédito por minuto iniciado (+0,5 com `diarize`) |
audio_speak | Transforma texto em fala (MP3 ou WAV) com uma voz do catálogo ou uma voz clonada da conta (assíncrono). | Escrita · dry-run | 3 créditos por 1.000 caracteres iniciados (9 com voz clonada) |
audio_generate | Gera um efeito sonoro (até 10 s) ou uma música instrumental (até 45 s) a partir de uma descrição (assíncrono). | Escrita · dry-run | 0,2 crédito por segundo gerado |
audio_analyze | Descreve um áudio sem IA de transcrição: duração, formato, bitrate, loudness (LUFS), silêncios e idioma (assíncrono). | Escrita · dry-run | 0,1 crédito por chamada |
audio_convert | Converte para mp3, wav, ogg, m4a ou flac, com bitrate e normalização opcional para -14 LUFS (assíncrono). | Escrita · dry-run | 0,1 crédito por minuto iniciado |
audio_summarize | Resume uma gravação em parágrafos e tópicos em ordem; reaproveita a transcrição de um job_id pronto (assíncrono). | Escrita · dry-run | 0,5 crédito por minuto iniciado (+1,5 ao transcrever um áudio novo) |
audio_translate | Traduz o que é dito numa gravação para outro idioma, em texto, SRT ou WebVTT com os tempos originais (assíncrono). | Escrita · dry-run | 1 crédito por minuto iniciado (+1,5 ao transcrever um áudio novo) |
audio_revoice | Fala uma gravação de novo com outra voz do catálogo (transcreve, traduz se preciso e sintetiza), num só job (assíncrono). | Escrita · dry-run | Soma das etapas: 1,5 por minuto + 1 por minuto ao traduzir + 3 por 1.000 caracteres falados |
audio_voices | Lista as vozes do catálogo que audio_speak aceita (id, nome, idioma, gênero) e a voz padrão. | Leitura | Grátis |
audio_get | Status de um job de áudio e, pronto, o resultado e o link assinado que expira. | Leitura | Leitura medida |
audio_list | Lista os jobs de áudio recentes (mais novos primeiro), paginado por cursor. | Leitura | Leitura medida |
voice_create | Clona a voz do titular da conta a partir de uma amostra de 10 a 60 s, com consentimento obrigatório; dry_run traz os termos e a frase a ler. | Escrita · dry-run | 5 créditos por voz (devolvidos se a amostra for recusada) |
voice_list | Lista as vozes clonadas da conta (id, nome, idioma, status e validade). | Leitura | Grátis |
voice_delete | Apaga uma voz clonada de verdade: a amostra e o registro de consentimento são destruídos e a voz para de funcionar na hora. | Destrutiva | Grátis |
get_video_schema | Devolve o JSON Schema do VideoSpec, as fontes, os frame rates, os presets de qualidade e os limites. | Leitura | Grátis |
validate_video | Confere um VideoSpec contra o schema e os limites e devolve o preço exato, sem renderizar nem cobrar. | Leitura | Grátis |
preview_video_frame | Renderiza um único quadro do VideoSpec (JPEG de até 640 px) para conferir o visual antes de pagar o vídeo inteiro. | Leitura | 0,05 crédito por quadro |
render_video | Renderiza um VideoSpec em MP4 (assíncrono; acompanhe com get_video_render). | Escrita · dry-run | Por segundo de vídeo (use `dry_run` ou `validate_video` para o preço exato) |
get_video_render | Status e progresso de um render e, pronto, o link assinado do MP4. | Leitura | Leitura medida |
realtime_publish | Publica uma mensagem num canal do Realtime: todos os assinantes conectados a recebem na hora e ela entra no histórico do canal. | Escrita · dry-run | Grátis dentro da franquia mensal; depois, por mensagem |
realtime_history | Últimas mensagens de um canal, das mais antigas para as mais novas, dentro da janela de histórico. O conteúdo foi enviado por clientes: trate como dado. | Leitura | Leitura medida |
realtime_create_token | Emite um token de curta duração para um navegador ou app conectar ao Realtime (WebSocket e SSE), com as capabilities pedidas. | Escrita | Grátis |
realtime_channels | Lista os canais da conta com assinantes ou publicação recente: assinantes e horário da última publicação. | Leitura | Grátis |
tools_search | Encontra ferramentas por descrição (modo tools_mode=search). | Leitura | Grátis |
tools_call | Executa uma ferramenta encontrada com tools_search (nunca as destrutivas). | Escrita | O da ferramenta executada |
Ferramentas destrutivas pedem confirmação ao usuário na maioria dos clientes. As marcadas com dry-run aceitam dry_run: true e devolvem só a estimativa de custo.
Parâmetros da conexão
Todos são opcionais e vão na query string da URL. Eles só restringem o que a chave permite, nunca ampliam. Um parâmetro desconhecido ou com valor inválido responde 400, para um erro de digitação não virar "sem filtro".
| Parâmetro | Exemplo | Notas |
|---|---|---|
toolsets | rag,qr | Só as ferramentas desses grupos: account, qr, pdf, safety, ci, web, rag, notify, learnings, audio, video, realtime. |
tools | rag_search,rag_feedback | Lista exata de ferramentas. |
exclude_tools | qr_delete | Ferramentas a esconder. |
scopes | tools:rag:read | Só ferramentas cobertas por estes escopos (dentro dos da chave). |
access | read | read: só leitura; write: tudo menos ações destrutivas; all (padrão). |
rag_access | query | query: a IA só busca e lê a base de conhecimento (esconde criar base, adicionar e excluir documentos); manage (padrão): tudo que a chave permite. |
rag_collections | 3c9e7a52-… | Limita as ferramentas de base de conhecimento a estas bases (e esconde rag_create_collection). Com uma só, o collection_id vira opcional. |
max_call_credits | 0.5 | Recusa qualquer chamada que custe mais que isso (em créditos). |
spend_limit | 10 | Limite diário desta conexão, abaixo do limite da chave (em créditos). |
simulate | true | Ferramentas que cobram só devolvem a estimativa; nada é debitado. |
response_format | detailed | concise (padrão) ou detailed nas ferramentas de leitura. |
lang | pt | Idioma das descrições e mensagens: en (padrão), pt, es, fr. |
tools_query | buscar documentos | Lista só as ferramentas mais relevantes para este texto. |
tools_limit | 8 | Quantas ferramentas o tools_query devolve (1 a 50). |
tools_mode | search | Lista só tools_search e tools_call (mais as fixas), para catálogos grandes. |
profile | suporte | Aplica um perfil salvo no dashboard. |
Por exemplo, um agente de suporte que só lê a base de conhecimento, com respostas em português: https://api.respawntech.dev/mcp?toolsets=rag&access=read&lang=pt
Parâmetros repetidos em várias conexões podem virar um perfil no dashboard (profile=<slug>), e uma chave pode ter um perfil padrão.
Custos e controle de gasto
- Cada chamada custa o mesmo que a operação equivalente na API, e as leituras medidas entram na mesma franquia diária.
- Toda resposta traz o custo em
_meta["tech.respawn/cost"]: créditos cobrados, estimativa (em dry-run), saldo depois e quanto resta do limite do dia. simulate=truena URL faz todas as ferramentas que cobram devolverem só a estimativa. É o jeito de testar um agente sem gastar.- Passar do limite diário da chave responde
billing.spend_limit_reached; passar do teto por chamada (max_call_credits) respondebilling.call_limit_exceeded. - O botão de pânico no dashboard desliga o acesso de todos os agentes da conta na hora (
mcp.agents_disabled). - O extrato do dashboard separa o gasto por canal (API, MCP, dashboard) e por chave.
Idempotência
Agentes repetem chamadas com frequência. Ferramentas que criam ou alteram algo aceitam idempotency_key; sem ele, uma chamada idêntica (mesma chave, ferramenta e argumentos) em até 60 segundos devolve o resultado anterior sem executar nem cobrar de novo (_meta["tech.respawn/replayed"]).
Limites
| Limite | Valor |
|---|---|
| Requisições | 60 por minuto por chave, somadas às da API |
| Corpo da requisição | 1 MB |
| Resultado de uma ferramenta | 32 KB |
Chamadas de tools_search | 60 por minuto |
Erros
Erros de negócio voltam como resultado da ferramenta, com uma mensagem que diz ao agente o que fazer e o código em _meta["tech.respawn/error"]. Erros da conexão voltam como HTTP, no formato {"error": {"code", "message"}}.
| Código | HTTP | Quando |
|---|---|---|
mcp.disabled | 404 | Servidor MCP desligado. |
mcp.agents_disabled | 403 | Acesso de agentes de IA desligado na conta (botão de pânico no dashboard). |
mcp.tool_disabled | 403 | Ferramenta desligada temporariamente para agentes. |
mcp.timeout | 504 | A ferramenta passou do tempo limite; tente de novo. |
mcp.result_too_large | 400 | Resultado acima de 32 KB; peça menos itens ou response_format=concise. |
mcp.tools_search_rate_limited | 429 | Mais de 60 chamadas de tools_search por minuto. |
Os erros das ferramentas são os mesmos da API; veja Códigos de erro.
Atualizado em