Pular para o conteúdo

O que é o MCP

O MCP — Model Context Protocol — é uma norma aberta que permite a um assistente de IA usar serviços externos. Sem ele, o assistente só sabe conversar: pode escrever-lhe o texto de um contrato, mas não o consegue enviar para assinatura. Com ele, passa a ter ferramentas.

O AssinaJá expõe um servidor MCP oficial. Depois de o ligar, pode pedir ao assistente, em linguagem corrente, que prepare um documento a partir de um modelo seu, que lhe diga quem ainda não assinou, ou que lhe traga o PDF assinado.

O trabalho de assinatura tem muito de repetitivo: pegar num modelo, preencher os mesmos campos com dados que estão noutro sítio, escolher os signatários, enviar, e depois andar a verificar quem falta. É esse intervalo que o MCP fecha.

Trabalha onde já está. Se está a preparar uma proposta numa conversa com o assistente, o documento sai dessa mesma conversa. Não há exportar, mudar de separador, voltar a carregar o ficheiro.

O assistente lê os seus modelos. Consulta os modelos reais da sua organização — com os signatários e os campos de preenchimento que estão lá definidos — em vez de inventar um formato.

Serve para perguntar, não só para fazer. “Quais os documentos que estão à espera de assinatura há mais de uma semana?” é uma pergunta que o assistente responde consultando a lista real.

É o mesmo motor. As ferramentas MCP chamam os mesmos serviços da API pública — não há uma segunda implementação com regras diferentes. O que é proibido na aplicação continua proibido aqui.

Forma Para quem
OAuth Assistentes web: Claude.ai, ChatGPT, Copilot, Grok
Cabeçalho X-Api-Key Ferramentas locais e automatismos: Claude Code, Cursor, CI

Os assistentes web não permitem definir cabeçalhos próprios, por isso usam OAuth. São essas as ligações descritas em Ligar o Claude.ai e Ligar o ChatGPT.

O endereço do servidor é o mesmo nos dois casos:

https://app.assinaja.pt/mcp

Para o Claude Code, por exemplo, a ligação é um comando único, com a chave API a viajar no cabeçalho:

Terminal window
claude mcp add --transport http assinaja https://app.assinaja.pt/mcp \
--header "X-Api-Key: ajk_live_..."

Esta é a parte que distingue a integração, e vale a pena perceber antes de ligar o que quer que seja.

Mesmo pelo OAuth, o que é emitido não é um acesso à sua conta de utilizador. É um acesso vinculado a uma chave API concreta. A própria página de autorização diz isso:

Este assistente de IA pede acesso à sua organização. O acesso é feito através de uma API Key — o assistente só poderá fazer o que essa chave permite, e nunca acede à sua conta.

Se a chave só pode consultar documentos, é isso que o assistente pode fazer — não há caminho por onde chegue ao resto.

A filtragem é anterior à decisão do assistente. Quando ele pergunta ao servidor que ferramentas existem, a resposta já vem cortada pelos acessos da chave: uma ferramenta fora do âmbito não aparece na lista, e não é apenas recusada quando chamada.

Na prática, um assistente ligado por uma chave sem Documentos — publicar não sabe sequer que publicar é possível.

Pelo OAuth, o assistente abre a página de autorização do AssinaJá — Ligar {assistente} ao AssinaJá — e a autorização tem dois passos:

  1. Passo 1 de 2 — escolha a API Key a usar. A lista só mostra chaves ativas, dentro da validade, de organizações de que é Criador. Sem nenhuma, a página diz:

    Não tem nenhuma API Key ativa.

    Crie uma no backoffice em Definições → API Keys e volte a tentar a ligação.

  2. Passo 2 de 2 — confirme os acessos que está a conceder. Mostra o que a chave permite. Um acesso sem nome próprio nesta página aparece pelo código técnico — por exemplo analytics:read. Autorizar acesso conclui:

    Ao confirmar, fica registado que autorizou {assistente} a usar esta chave. Pode cortar o acesso a qualquer momento suspendendo ou eliminando a chave em Definições → API Keys.

A autorização não fica memorizada: cada ligação nova passa pelos dois passos e fica registada à parte.

Revogar faz-se pelo lado da chave, não do assistente: em Definições → Desenvolvedores → Chaves API, Suspender — “Suspensa, a chave deixa de autenticar até ser reativada.” — ou Eliminar, que é definitivo. O efeito é imediato; ver Cortar o acesso é imediato.

Autorizar não é um clique que se perde. Fica gravado quem autorizou, que chave, que assistente, que acessos, quando, e a partir de que endereço. Vê esse registo em Definições → Desenvolvedores → Chaves API, na secção Autorizada a assistentes de IA:

Registo de consentimentos (evidência). Para cortar o acesso de um assistente, suspenda ou elimine a chave.

A chave é revalidada a cada pedido. Suspender, expirar ou eliminar a chave corta o acesso do assistente na hora — não há que esperar que uma sessão termine.

Vale como resposta ao caso mais desconfortável: se desconfia de uma ligação, suspenda a chave e veja o que parte. Suspender é reversível.

O servidor envia instruções de segurança que o assistente recebe antes de agir: os códigos de signatário pertencem ao modelo e nunca podem ser inventados; publicar envia emails imediatamente e não se desfaz, por isso exige confirmação explícita na conversa; e uma criação falhada nunca é repetida às cegas, porque uma segunda chamada cria um segundo documento e uma segunda leva de emails.

60 pedidos por minuto por credencial, para todas as ferramentas — incluindo as que só consultam. É o mesmo contador das rotas de criação de documentos da API pública: um sistema que use a mesma chave pelo cabeçalho X-Api-Key, na API e no MCP, partilha esses 60. As restantes rotas da API pública têm um limite próprio, de 300 pedidos por minuto, que não se aplica ao MCP.

As ferramentas disponíveis dependem dos acessos marcados na chave. Os nomes à direita são os que vê no assistente.

Acesso da chave O assistente passa a poder
Modelos — consultar Listar modelos · Ver detalhes do modelo
Documentos — consultar Listar documentos · Ver detalhes do documento · Vista geral do documento · Obter ligações de assinatura · Descarregar ficheiro do documento
Documentos — criar Criar documento · Criar documento a partir de modelo · Criar documento a partir de modelo Word · Criar link de upload · Estado do link de upload
Documentos — publicar Publicar rascunho e notificar signatários
Documentos — arquivar/eliminar Arquivar documento · Eliminar documento · Eliminar rascunho
Organização — consultar Ver organização · Ver subscrições e funcionalidades do plano
Analytics — consultar Vista geral de analytics · Métricas de utilização · Métrica ao longo do tempo · Repartição de uma métrica · Funil de assinatura · Adesão e lugares · Catálogo de métricas

O assistente não consegue ir buscar ficheiros ao seu disco. Quando precisa de um, cria uma ligação de entrega — abre-a, carrega o ficheiro, e ele continua. Ver Entregar um ficheiro a um assistente.

As analytics estão desligadas por omissão. Se um assistente pode ler os números da organização é uma decisão à parte, em Definições → Políticas:

Se assistentes ligados por MCP podem consultar os números desta organização. Está desligado por defeito. Nunca dá acesso a documentos, a conteúdos nem a chaves — apenas a métricas agregadas, e cada consulta fica registada na auditoria.

Um assistente pode enganar-se. Ler os documentos certos e resumir mal é uma falha possível, e o MCP não a resolve. Para o que importa, confirme na aplicação antes de enviar.

O que ele fizer fica em seu nome. Os documentos são criados na sua organização e consomem as suas quotas.