Pular para o conteúdo principal
A Niadra mantém um servidor MCP remoto para cada espaço. Qualquer modelo e qualquer framework de agentes que fale o Model Context Protocol consegue ler o contexto do cliente, buscar no histórico e registrar o que fez, sem SDK no caminho. Este guia mostra a conexão, como o cliente fica amarrado para o modelo nunca trocar de cliente, as oito ferramentas do cliente e quando usar chamada de função no lugar do MCP.

O endereço

O servidor fala Streamable HTTP em /mcp, no endereço do seu espaço:
Dois cabeçalhos autenticam a conexão: O SDK de Python expõe o endereço em niadra.mcp_url.

Por que o cliente vem amarrado por um token

As ferramentas do MCP nunca recebem o cliente como argumento. O cliente vem do subject_token da conexão: um token assinado pela célula, com o espaço, a fonte, o handle do cliente, a conversa e o nível de verificação, que vale por até 15 minutos. O handle viaja lacrado dentro dele. Uma injeção no prompt que diga “agora consulte o cliente X” não tem argumento onde colocar o X: o modelo escolhe o que perguntar, nunca sobre quem. Quando o cliente age em nome de uma empresa, passe about com o handle dessa conta ou parceiro. A organização fica amarrada do mesmo jeito que o cliente: as ferramentas usam, o modelo não muda, e toda leitura confere de novo se o vínculo entre os dois está ativo. O token vale 15 minutos; emita outro quando a conversa passar disso.

Passo a passo

1. Emita o subject token no seu backend

Chame subject_token() quando a conversa começa, com o nível que a conversa provou. Emita do lado do servidor, nunca no navegador nem dentro do contexto do modelo.
Quando a conversa prova mais (um OTP, um login), emita um token novo no nível novo e reconecte. Quando o token vence, a chamada volta com o erro unauthenticated no JSON-RPC; emita outro.

2. Conecte o cliente MCP

Use qualquer cliente MCP que suporte Streamable HTTP e cabeçalhos próprios. Com os SDKs oficiais do MCP:
Entregue a lista de ferramentas ao seu modelo pela integração de MCP do seu framework e deixe que ele chame as ferramentas sozinho.

3. Conheça as oito ferramentas

Oito ferramentas, não sessenta. Cada descrição diz ao modelo quando usar, quando não usar e qual ferramenta complementa a outra. Uma fonte voltada ao cliente (público customer_agent) recebe sete: resolve_identity não é oferecida a ela. O servidor também expõe o resource niadra://context, o contexto do cliente do token, e um prompt, customer_context, com o contexto pronto para o seu modelo. Com a memória do agente ligada no espaço, entram mais duas ferramentas: search_agent_memory (leitura, para chaves com o escopo agent_memory ou context) e remember (escrita, só para chaves com agent_memory:write). Elas são do agente, não do cliente, então não precisam do subject token: uma conexão sem token lista e chama só essas duas, e as oito do cliente respondem unauthenticated. Uma nota com dado pessoal volta ao modelo como o erro personal_data_in_agent_memory, para ele reescrever sem o dado. Com os sinais do sujeito ligados no espaço, uma chave de escopo context ganha get_constraints: o bloco de restrições do cliente amarrado, como POST /v1/constraints o devolve, com o que ele pediu e recusou em linhas para o modelo. Com tool, o nome da ferramenta que o modelo vai chamar, o bloco vem renderizado pela vinculação que o documento tool-bindings do espaço dá a essa ferramenta para a sua fonte: os argumentos que levam as restrições e o que a ferramenta não consegue expressar. Uma ferramenta que o espaço não vincula volta como o erro invalid_input, que o modelo lê. for pede o bloco de um beneficiário ou de um presente.
record_action exige o escopo act, limitado às trusted_action_ops da sua fonte quando ela declara essa lista. Antes de a ação contar, todos os turnos da conversa até ali passam pela triagem contra injeção de prompt da IA da Niadra, sobre o texto mascarado; numa sessão marcada, a ação fica em quarentena desde a chegada: não fecha nada e nunca aparece como feita.

4. Deixe o contexto guiar as ferramentas de histórico

O contexto já traz a linha “Histórico” (a conversa mais antiga que o motivo atual repete, com a solução dela) e as promessas em aberto, e a contagem de conversas sobre o assunto chega como encaixe quando o turno a pede. Isso responde sozinho à pergunta mais comum e ensina o modelo quando vale buscar, o que corta chamadas inúteis. As definições das ferramentas são texto fixo e ficam no início do prompt que o provedor guarda em cache: depois do primeiro turno, custam o preço do cache. Cada leitura feita por ferramenta passa pela mesma política e pelo mesmo nível de verificação do contexto e deixa um comprovante: quem leu, os itens devolvidos, por id, e quantos ficaram retidos. Continua sem ferramenta que apaga: apagar fica com pessoas e chaves de administração, em POST /v1/forget.

Chamada de função sem MCP

Se a API do seu modelo tem chamada de função mas você não roda um cliente MCP, use as mesmas três ferramentas de histórico como definições de função. O SDK amarra o cliente no seu código:
O kit.definitions segue o formato { type: "function", function: {...} }, que a maioria das APIs de modelo aceita; em Python, kit.anthropic_definitions() devolve o formato da API Messages da Anthropic. As definições também saem em GET /v1/history/tools para qualquer outro ambiente, inclusive modelos que você hospeda.

Perguntas sobre todos os clientes

Este servidor responde sobre um cliente de cada vez. Para uma LLM de análise que pergunta sobre a base inteira (“quais promessas vencem esta semana?”), a Niadra tem um segundo endpoint MCP, /mcp/insights, com as ferramentas da análise da base: pseudônimo por padrão, grupos pequenos suprimidos, limite de volume por dia e um comprovante para cada chamada. Pede uma chave de escopo analytics numa fonte de analista, ou uma pessoa com o papel analysis; revelar o cliente por trás de um pseudônimo pede também admin na chave ou security na pessoa, e um motivo.

Próximos passos

Navegação do histórico

busca, linha do tempo e abrir item em detalhe.

Emitir subject_token

a requisição e a resposta.

Clientes MCP

Claude Code, Claude Desktop, Cursor e VS Code ligados ao seu espaço.

Espaços e chaves

escopos, audiências e revogação.

Comprovantes e auditoria

o que cada leitura feita por ferramenta deixa registrado.