Conectar o servidor MCP a qualquer cliente: stdio e transporte HTTP

A maior parte do material sobre o servidor MCP da SignDocs mostra a configuração de um cliente específico, o que dá a impressão de que cada cliente exige um tratamento próprio. Não exige. O servidor é um pacote npm executado sobre stdio — o transporte padrão do protocolo —, e isso significa que qualquer cliente MCP compatível conecta com os mesmos três ingredientes: um comando, seus argumentos e algumas variáveis de ambiente. Este guia mostra a receita genérica, como traduzi-la para o formato de configuração que o seu cliente usar, e o segundo modo de conexão — um transporte HTTP que permite uma implantação atender vários agentes ao mesmo tempo.

A receita, inteira: um comando (npx), argumentos (-y @signdocs-brasil/mcp-server) e três variáveis de ambiente. Todo formato de configuração de cliente MCP é uma maneira diferente de escrever esses três itens.

Por que a receita é a mesma em todo lugar

O servidor MCP da SignDocs é um servidor stdio distribuído como pacote npm — o arranjo mais comum do ecossistema. O cliente inicia um processo local e conversa com ele pela entrada e saída padrão; o protocolo cuida do resto.

A consequência prática é boa: não existe integração específica por cliente a manter. Qualquer cliente MCP que saiba iniciar um processo e falar stdio conecta com os mesmos ingredientes. O que muda de um para outro é apenas onde essa configuração é escrita — um arquivo JSON, uma linha de comando, um formulário na interface.

Os três ingredientes

Ingrediente Valor
Comando npx
Argumentos -y @signdocs-brasil/mcp-server
Variáveis de ambiente SIGNDOCS_CLIENT_ID, SIGNDOCS_CLIENT_SECRET, SIGNDOCS_ENVIRONMENT

As credenciais saem do painel de API da sua conta. As variáveis opcionais são poucas: além do ambiente, dá para sobrescrever a URL base e o conjunto de escopos, mas nenhuma das duas é necessária num uso normal.

Comece em homologação. É o padrão quando a variável de ambiente não é informada, e é onde o agente deve nascer: os dados expiram em cerca de 7 dias e nenhuma assinatura ali tem efeito jurídico. Trocar para produção é uma decisão explícita — não o resultado de ter copiado um exemplo.

A forma mais comum: um bloco JSON

A maioria dos clientes de desktop usa um arquivo de configuração com esta estrutura:

{ "mcpServers": { "signdocs": { "command": "npx", "args": ["-y", "@signdocs-brasil/mcp-server"], "env": { "SIGNDOCS_CLIENT_ID": "seu_client_id", "SIGNDOCS_CLIENT_SECRET": "seu_client_secret", "SIGNDOCS_ENVIRONMENT": "hml" } } } }

É este o formato do Claude Desktop, e é o mesmo esqueleto que a maior parte dos clientes compatíveis adota. Se o seu cliente usa outro nome para a chave raiz ou pede a configuração numa tela, os campos a preencher continuam sendo os mesmos três.

A forma de linha de comando

Clientes de terminal costumam registrar o servidor por comando, com as variáveis passadas por parâmetro:

claude mcp add signdocs \ -e SIGNDOCS_CLIENT_ID=seu_client_id \ -e SIGNDOCS_CLIENT_SECRET=seu_client_secret \ -e SIGNDOCS_ENVIRONMENT=hml \ -- npx -y @signdocs-brasil/mcp-server

Repare que é a mesma receita: tudo depois de -- é o comando e os argumentos, e cada -e é uma variável de ambiente. Traduzir entre os dois formatos é mecânico.

Traduzindo para um cliente qualquer

Se o seu cliente MCP não aparece em nenhum exemplo, procure onde ele pede estas três coisas — os nomes variam, o conteúdo não:

  • "command" / "executable" / "binary"npx
  • "args" / "arguments" / "parameters"-y @signdocs-brasil/mcp-server
  • "env" / "environment" / "variables" → as três variáveis

Dois detalhes que resolvem a maior parte dos problemas de primeira conexão:

O npx precisa estar no caminho do processo que o cliente inicia. Aplicações de desktop nem sempre herdam o mesmo PATH do seu terminal — se o cliente reclama que não encontrou o comando, apontar o caminho absoluto do executável resolve.

Instalar globalmente é uma alternativa válida. Com npm install -g @signdocs-brasil/mcp-server, o pacote deixa de ser resolvido a cada início; o comportamento é idêntico, muda apenas quem resolve o pacote e quando.

O segundo modo: transporte HTTP

O stdio pressupõe um processo local por usuário, com as credenciais no arquivo de configuração da máquina. Isso é adequado para uma pessoa trabalhando no próprio computador e inadequado quando o agente roda num servidor, ou quando muitos agentes precisam do mesmo servidor.

Para esse caso as mesmas ferramentas são servidas sobre HTTP, de modo que uma implantação atenda vários agentes — cada um autenticando por sessão com a própria credencial, sem segredo compartilhado embutido no servidor.

# subir o servidor HTTP (porta 3000 por padrão) npm run start:http # ou em contêiner docker build -t signdocs-mcp . && docker run -p 3000:3000 signdocs-mcp

O endpoint é POST /mcp, e a autenticação acontece na requisição de inicialização, por cabeçalho. São aceitos três formatos, para acomodar clientes com capacidades diferentes:

Formato Quando usar
Token de acesso, em Authorization: Bearer Você já obtém tokens pelo fluxo OAuth2 e quer repassá-los
Credenciais em Authorization: Basic Deixa o servidor fazer a troca por token
Identificador e segredo em dois cabeçalhos Clientes que não conseguem transformar valores (sem base64)

O ambiente também é escolhido por cabeçalho, sessão a sessão — o que permite que o mesmo servidor atenda um agente em homologação e outro em produção ao mesmo tempo.

Duas propriedades úteis para quem opera: o servidor se comporta como um resource server OAuth 2.0, respondendo a uma inicialização não autenticada com 401 e o cabeçalho de desafio apropriado, e a validação do token continua sendo feita pela API — o servidor MCP não é uma autoridade de autenticação paralela. Há ainda uma rota de saúde sem autenticação, útil para verificação de disponibilidade.

Escolhendo entre os dois modos

stdio HTTP
Onde roda Máquina do usuário Servidor
Credenciais No arquivo de configuração local Por sessão, no cabeçalho
Quantos usuários Um por processo Vários por implantação
Indicado para Uso individual, desenvolvimento Agentes hospedados, times, multi-tenant

No modo stdio, vale lembrar que o arquivo de configuração passa a conter um segredo — e merece o mesmo cuidado que qualquer outro arquivo nessa condição: fora do repositório, fora de captura de tela, e rotacionado quando alguém com acesso à máquina sai. O procedimento está em rotação de credenciais.

Depois de conectar

Confirme a conexão pedindo algo somente leitura — a situação da conta, ou a lista de documentos recentes. Se responder, a credencial e o ambiente estão corretos, e você evita descobrir um erro de configuração no meio de um envio.

Antes de deixar o agente enviar de verdade, vale conhecer como a ordem dos signatários é decidida quando o pedido vem em linguagem natural, em ordem de assinatura em linguagem natural — e revisar a configuração de aprovação automática do seu cliente, mantendo as ferramentas que criam ou cancelam fora de qualquer lista de execução sem confirmação.

Para instalar a partir do registro oficial em vez de escrever a configuração à mão, veja instalar pelo registro oficial de MCP. E para o que existe atrás dessas ferramentas, a visão geral da API de assinatura digital.

Perguntas Frequentes

O servidor funciona em qualquer cliente MCP?

Ele é um servidor MCP padrão sobre stdio, distribuído como pacote npm — o arranjo mais comum do ecossistema. Qualquer cliente que saiba iniciar um processo local e falar MCP por stdio consegue conectar com a mesma receita: comando, argumentos e variáveis de ambiente. O que muda entre clientes é apenas onde essa configuração é escrita.

Quais são os três ingredientes?

O comando (npx), os argumentos (-y @signdocs-brasil/mcp-server) e as variáveis de ambiente com as credenciais: SIGNDOCS_CLIENT_ID, SIGNDOCS_CLIENT_SECRET e SIGNDOCS_ENVIRONMENT. Todo formato de configuração de cliente MCP é uma forma diferente de escrever esses três.

Preciso instalar alguma coisa antes?

Não obrigatoriamente: com npx o pacote é baixado sob demanda. Se preferir evitar a busca a cada início, dá para instalar globalmente e apontar o comando para o binário instalado — o comportamento é o mesmo, muda só quem resolve o pacote.

Devo começar em qual ambiente?

Homologação, que é o padrão quando a variável de ambiente não é informada. Os dados expiram em cerca de 7 dias e nenhuma assinatura ali tem efeito jurídico. Mudar para produção deve ser uma decisão explícita, tomada quando o comportamento do agente já é conhecido.

Para que serve o transporte HTTP?

Para uma implantação servir vários agentes ou clientes, cada um autenticando por sessão com a própria credencial — em vez de um processo local por usuário com o segredo no arquivo de configuração. É o modo indicado quando o agente roda num servidor e não na máquina de alguém.

Como funciona a autenticação no modo HTTP?

Na requisição de inicialização, por cabeçalho, em três formatos aceitos: um token de acesso já obtido, as credenciais em Basic, ou o par de identificador e segredo em dois cabeçalhos separados para clientes que não conseguem transformar valores. O ambiente também é escolhido por cabeçalho, sessão a sessão.

O servidor guarda as minhas credenciais?

No modo HTTP, não há segredo compartilhado embutido no servidor: cada sessão traz a própria credencial. No modo stdio, as credenciais ficam no arquivo de configuração do seu cliente, na sua máquina — o que faz desse arquivo um item a proteger como qualquer outro que contenha segredo.

Conecte o cliente que a sua equipe já usa

Comece apontando para homologação: os dados expiram em cerca de 7 dias e nenhuma assinatura tem efeito real enquanto você conhece o comportamento.

Criar credenciais de homologação Fale com o time comercial