API Governance vs ZapSign

A side-by-side look at the API Governance and ZapSign MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

API Governance logoAPI GovernanceAgreements & Coordination · Local subprocess (stdio)Contract-change authorization for AI agents. Signed receipts verify offline.55GoodAuth: not declaredZapSign logoZapSignAgreements & Coordination · Remote HTTP/SSEZapSign electronic document signing via the official API: create documents for signature (from PDF,56GoodAuth: not declared

Verdict: choose API Governance for agreements & coordination work as a local process; choose ZapSign for agreements & coordination over a hosted endpoint. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

API Governance logoChoose API Governance when

  • You need dedicated capabilities in the Agreements & Coordination domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: CODERIFTS_API_KEY.
  • You want tools like preflight_change_set, verify_receipt, get_decision_details.
Explore API Governance

ZapSign logoChoose ZapSign when

  • You need dedicated capabilities in the Agreements & Coordination domain.
  • You prefer a remote HTTP/SSE transport.
  • You want tools like zapsign_list_accounts, zapsign_documents_list, zapsign_documents_get.
Explore ZapSign

Feature & specification comparison

Rows where the two servers differ are marked.

SpecAPI Governance logoAPI GovernanceZapSign logoZapSign
CategoryAgreements & CoordinationAgreements & Coordination
Quality signal55/100 · Good56/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Remote HTTP/SSE
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsCODERIFTS_API_KEYNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars00
Directory activity 1 views 0 installs 0 upvotes 0 views 0 installs 0 upvotes
Tools335

Tools & capabilities

API Governance tools 3

  • preflight_change_setPreflight a complete base→head change set of contract artifacts. Returns risk score and breaking-change analysis. With `preflight_mode: "authorize"` (and `context.operation`), returns a governance decision (ALLOW / WARN / REQUIRE_APPROVAL / BLOCK) and may mint a signed chain-receipt. With `prefligh…
  • verify_receiptVerify a signed chain-receipt you already hold: signature authenticity, body binding, and (when lifecycle indices are available) whether it is currently authorized for a stated operation/target. Requires `token`. Does not re-diff specs.
  • get_decision_detailsRetrieve a past decision by `decision_id` (preferred) or `fingerprint`: stored report, breaking changes, scores, and linked receipt metadata if present. Not for a new analysis of the current change set.

ZapSign tools 35

  • zapsign_list_accountsLista contas ZapSign vinculadas a este install — id e apelido.
  • zapsign_documents_listDocumentos de assinatura no ZapSign (leitura). Ações: list (filtros: page, status pending|signed|refused, folder_path, deleted, signer_email, created_from/created_to YYYY-MM-DD, sort_order asc|desc, include_signers); get (doc_token — detalhe + signatários + extra_docs + URLs de arquivo, que expiram em 60min); signer_log (doc_token — trilha de auditoria; download_pdf=true retorna o PDF do log). [Flattened action: list]
  • zapsign_documents_getDocumentos de assinatura no ZapSign (leitura). Ações: list (filtros: page, status pending|signed|refused, folder_path, deleted, signer_email, created_from/created_to YYYY-MM-DD, sort_order asc|desc, include_signers); get (doc_token — detalhe + signatários + extra_docs + URLs de arquivo, que expiram em 60min); signer_log (doc_token — trilha de auditoria; download_pdf=true retorna o PDF do log). [Flattened action: get]
  • zapsign_documents_signer_logDocumentos de assinatura no ZapSign (leitura). Ações: list (filtros: page, status pending|signed|refused, folder_path, deleted, signer_email, created_from/created_to YYYY-MM-DD, sort_order asc|desc, include_signers); get (doc_token — detalhe + signatários + extra_docs + URLs de arquivo, que expiram em 60min); signer_log (doc_token — trilha de auditoria; download_pdf=true retorna o PDF do log). [Flattened action: signer_log]
  • zapsign_documents_write_createCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: create]
  • zapsign_documents_write_create_from_templateCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: create_from_template]
  • zapsign_documents_write_updateCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: update]
  • zapsign_documents_write_deleteCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: delete]
  • zapsign_documents_write_refuseCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: refuse]
  • zapsign_documents_write_place_signaturesCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: place_signatures]
  • zapsign_documents_write_add_extra_docCriar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: add_extra_doc]
  • zapsign_signers_getSignatários no ZapSign (leitura). Ação: get (signer_token — status, sign_url, visualizações, geo, auth_mode etc.). [Flattened action: get]
  • +23 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

API Governance

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "api-governance-2": {
      "command": "npx",
      "args": [
        "-y",
        "coderifts"
      ],
      "env": {
        "CODERIFTS_API_KEY": "YOUR_CODERIFTS_API_KEY_HERE"
      }
    }
  }
}

ZapSign

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "zapsign": {
      "url": "https://api.mcp.ai/p_zapsign"
    }
  }
}

Frequently asked questions

API Governance is categorized under Agreements & Coordination and uses a local stdio subprocess. ZapSign belongs to Agreements & Coordination and uses a remote HTTP/SSE transport. Pick API Governance for agreements & coordination work and ZapSign for agreements & coordination.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

API Governance has no declared pricing — check the project's own site. ZapSign has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add api-governance-2 and zapsign as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, API Governance has a quality signal of 55/100 (Good) with 1 views, 0 installs and 0 GitHub stars. ZapSign has 56/100 (Good) with 0 views, 0 installs and 0 GitHub stars.