br.com.signdocs/mcp-server

Registre officiel Autres

Assinatura eletrônica no Brasil (ICP-Brasil): envie, assine e verifique com sua conta SignDocs.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http br-com-signdocs-mcp-server 'https://mcp.signdocs.com.br/mcp' --header 'X-SignDocs-Client-Id: <Optional. API client ID, for business (pessoa juridica) customers. Leave unset to sign in with your SignDocs account over OAuth.>' --header 'X-SignDocs-Client-Secret: <Optional. API client secret, paired with X-SignDocs-Client-Id. Not needed when signing in with your SignDocs account.>'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "br-com-signdocs-mcp-server": {
            "type": "http",
            "url": "https://mcp.signdocs.com.br/mcp",
            "headers": {
                "X-SignDocs-Client-Id": "<Optional. API client ID, for business (pessoa juridica) customers. Leave unset to sign in with your SignDocs account over OAuth.>",
                "X-SignDocs-Client-Secret": "<Optional. API client secret, paired with X-SignDocs-Client-Id. Not needed when signing in with your SignDocs account.>"
            }
        }
    }
}
NPM package @signdocs-brasil/mcp-server
Claude Code
claude mcp add br-com-signdocs-mcp-server -e 'SIGNDOCS_CLIENT_ID=<SIGNDOCS_CLIENT_ID>' -e 'SIGNDOCS_CLIENT_SECRET=<your signdocs_client_secret>' -e 'SIGNDOCS_ENVIRONMENT=<SIGNDOCS_ENVIRONMENT>' -- npx -y @signdocs-brasil/mcp-server@0.11.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "br-com-signdocs-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@signdocs-brasil/mcp-server@0.11.0"
            ],
            "env": {
                "SIGNDOCS_CLIENT_ID": "<SIGNDOCS_CLIENT_ID>",
                "SIGNDOCS_CLIENT_SECRET": "<your signdocs_client_secret>",
                "SIGNDOCS_ENVIRONMENT": "<SIGNDOCS_ENVIRONMENT>"
            }
        }
    }
}

Variables d'environnement

  • SIGNDOCS_CLIENT_ID obligatoire OAuth2 client ID from app.signdocs.com.br → API
  • SIGNDOCS_CLIENT_SECRET obligatoire secret OAuth2 client secret from app.signdocs.com.br → API
  • SIGNDOCS_ENVIRONMENT Target environment: hml (sandbox) or production

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. SignDocs Brasil — MCP Server
  2. Install
  3. Credentials
  4. Connect an AI client
  5. Tools
  6. Resources
  7. Remote HTTP transport (multi-tenant)
  8. Development
  9. Roadmap

SignDocs Brasil — MCP Server

A Model Context Protocol server for the SignDocs Brasil e-signature API. It lets MCP-capable AI clients (Claude Desktop, Claude Code, Cursor, …) create signing sessions, manage multi-signer envelopes, upload/download documents, verify signatures, and manage webhooks — the same action catalog as the official n8n, Zapier, and Make.com integrations.

It is a thin adapter over the official @signdocs-brasil/api SDK, which owns OAuth2 token exchange, caching, retries, and error handling.

Install

npm install -g @signdocs-brasil/mcp-server   # or run on demand with npx

Credentials

Create an API credential in the SignDocs dashboard (app.signdocs.com.br → API) and expose it as environment variables:

VariableRequiredDefaultNotes
SIGNDOCS_CLIENT_IDyes—OAuth2 client id
SIGNDOCS_CLIENT_SECRETyes—OAuth2 client secret
SIGNDOCS_ENVIRONMENTnohmlhml (staging) or production
SIGNDOCS_BASE_URLnoderivedoverride the resolved base URL
SIGNDOCS_SCOPESnofull setspace-separated scope override

Start in hml. HML data expires after ~7 days and is safe for testing. Switch to production only when you intend to create real, legally-binding signatures.

Connect an AI client

Claude Desktop (claude_desktop_config.json):

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

Claude Code:

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

Tools

ToolActionSafety
create_signing_sessionCreate single-signer session, returns signingUrl⚠️ binding + quota
get_signing_session_statusPoll session statusread
get_signing_sessionFull session bootstrapread
list_signing_sessionsList by statusread
cancel_signing_sessionCancel a session⚠️ irreversible
resend_signing_session_otpResend OTPwrite
create_envelopeMulti-signer envelope⚠️ binding + quota
get_envelopeEnvelope detailsread
add_session_to_envelopeAdd a signer, returns signingUrl⚠️ binding + quota
get_envelope_combined_stampCombined stamped PDF URLread
upload_documentAttach a PDF to a transactionwrite
download_documentPresigned download URLsread
list_transactionsSearch/list transactionsread
get_transactionTransaction detailsread
cancel_transactionCancel a transaction⚠️ irreversible
get_evidenceCryptographic evidenceread
verify_evidencePublic evidence verificationread
verify_envelopePublic envelope verificationread
verify_documentDetect signatures in a PDF⚠️ PROD-only + quota
register_webhook / list_webhooks / delete_webhook / test_webhookWebhook managementmixed

⚠️ tools carry destructiveHint annotations and a warning in their description so compliant clients prompt the human before invoking them. Annotations are only hints — review your client's auto-approval settings.

Not yet exposed

Trust sessions (/v1/trust-sessions) and resend-invite are not in @signdocs-brasil/api v1.6.1 yet; they'll be added when the SDK supports them. Digital ICP-Brasil A1 signing runs through the lower-level transaction/advance flow rather than a hosted-session profile.

Resources

The server exposes grounding resources the model can read on demand:

  • signdocs://quickstart — the minimal signing flow + safety notes
  • signdocs://policy-profiles — valid policyProfile values and CUSTOM steps
  • signdocs://webhook-events — all subscribable event types

Remote HTTP transport (multi-tenant)

The same tools are also served over Streamable HTTP so a single deployment can serve many AI agents/tenants — each authenticates per session with its own SignDocs credentials (no shared secret baked into the server).

npm run start:http        # or: signdocs-mcp-http   (listens on PORT, default 3000)
# or containerized:
docker build -t signdocs-mcp . && docker run -p 3000:3000 signdocs-mcp

Endpoint: POST /mcp (Streamable HTTP). Auth is required on the MCP initialize request, via the Authorization header:

  • Authorization: Bearer <token> — a SignDocs OAuth2 access token (from /oauth2/token), passed straight through to the API.
  • Authorization: Basic base64(clientId:clientSecret) — the server runs the client_credentials exchange for you.
  • X-SignDocs-Client-Id + X-SignDocs-Client-Secret — the same client credentials as two plain headers (no base64), for header-only clients that can't transform values.

Pick the environment per session with X-SignDocs-Environment: hml|production (defaults to the server's configured default).

The server behaves as an OAuth 2.0 Resource Server: it serves GET /.well-known/oauth-protected-resource (RFC 9728, pointing at the SignDocs authorization server) and answers an unauthenticated initialize with 401 + WWW-Authenticate. The SignDocs API remains the authoritative token validator. GET /healthz is an unauthenticated health probe.

Example client config (Bearer):

{
  "mcpServers": {
    "signdocs-remote": {
      "type": "http",
      "url": "https://your-host.example/mcp",
      "headers": {
        "Authorization": "Bearer <signdocs_access_token>",
        "X-SignDocs-Environment": "hml"
      }
    }
  }
}

Server env vars: PORT, HOST, SIGNDOCS_ENVIRONMENT (default env), MCP_PUBLIC_URL (for resource metadata behind a proxy), MCP_CORS_ORIGIN, MCP_DNS_REBINDING_PROTECTION=true + MCP_ALLOWED_HOSTS / MCP_ALLOWED_ORIGINS (recommended in production).

Sessions are held in process memory, so run a single instance or use sticky routing. For multi-instance/serverless, front it with sticky sessions or swap the session map for a shared store + EventStore (resumability). Deploying onto the existing external-api Lambda + API Gateway as a NestedStack is the intended production path.

AWS Lambda

For serverless hosting, @signdocs-brasil/mcp-server/lambda exports createLambdaHandler — an API Gateway HTTP API v2 handler that runs the MCP transport statelessly (one server per invocation, no session store), with the same Bearer/Basic auth. SignDocs hosts this on mcp-hml.signdocs.com.br / mcp.signdocs.com.br.

import { createLambdaHandler } from '@signdocs-brasil/mcp-server/lambda';
export const handler = createLambdaHandler({ defaultEnvironment: 'hml' });

Development

npm install
npm run build      # tsc → dist/
npm test           # vitest (pure unit tests, no network)
npm run inspect    # build + launch MCP Inspector against the stdio server

Roadmap

  • v0.1: local stdio server, full tool catalog, env credentials.
  • v0.2 (this release): remote Streamable-HTTP transport with per-session, per-tenant auth (Bearer passthrough or Basic client-credentials) and OAuth Resource Server discovery. Tool layer is shared between both transports.
  • Next: deploy the HTTP transport onto external-api (Lambda + API Gateway NestedStack); optional edge JWT validation + shared-store sessions for horizontal scale.

Questions fréquentes

Qu'est-ce que br.com.signdocs/mcp-server ?

Assinatura eletrônica no Brasil (ICP-Brasil): envie, assine e verifique com sua conta SignDocs.

Comment installer br.com.signdocs/mcp-server ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http br-com-signdocs-mcp-server 'https://mcp.signdocs.com.br/mcp' --header 'X-SignDocs-Client-Id: <Optional. API client ID, for business (pessoa juridica) customers. Leave unset to sign in with your SignDocs account over OAuth.>' --header 'X-SignDocs-Client-Secret: <Optional. API client secret, paired with X-SignDocs-Client-Id. Not needed when signing in with your SignDocs account.>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour br.com.signdocs/mcp-server ?

Oui. Il attend SIGNDOCS_CLIENT_ID, SIGNDOCS_CLIENT_SECRET, X-SignDocs-Client-Id, X-SignDocs-Client-Secret, à renseigner dans sa configuration.

br.com.signdocs/mcp-server est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient br.com.signdocs/mcp-server ?

Il est publié par signdocsbrasil. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.