Back to Browse

Signathing MCP Server

by Jacejb
Developer ToolsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

Send PDFs for e-signature from AI agents, with a public hash-chained evidence log anyone can verify

About

Send PDFs for e-signature from AI agents, with a public hash-chained evidence log anyone can verify

Remote endpoints: streamable-http: https://signathing.com/api/mcp

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Found in Source Code

Found by scanning the linked source code. This listing connects to a hosted endpoint, so none of this runs on your machine: it describes what the server software does where it is hosted.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Applies to the server that hosts this plugin, not to your machine.

file_system

Applies to the server that hosts this plugin, not to your machine.

Shell Command Execution

Runs commands on the server that hosts it, not on your machine.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "com-signathing-mcp": {
      "url": "https://signathing.com/api/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Signathing MCP server

Send PDFs for e-signature from any AI agent, with ESIGN and UETA consent captured on every signature, and get back a certified copy whose history anyone can verify without trusting the sender or Signathing.

  • Remote server: https://signathing.com/api/mcp (Streamable HTTP). Sign in with OAuth, or send an API key as a bearer header.
  • Free tier: 100 documents a month, no card. Then $0.06 a document (101 to 500), $0.03 (501 to 3,000), $0.025 (3,001+), prepaid.
  • Evidence: every signing event is appended to a public hash chain, sealed daily and archived with the Internet Archive. signathing.com/transparency
  • Docs: signathing.com/developers · OpenAPI: /api/v1/openapi.json · /llms.txt

Operated by AllContraX LLC, Kentucky, USA. The Signathing app and website stay free for people; the API and MCP server are for software.

Tools

ToolWhat it does
send_documentUpload a PDF (https URL or base64), name up to 25 signers and 25 view-only recipients, optionally place signature, initials, date, name, email, text, number, checkbox, radio or dropdown fields. Signers get a private link by email (and text). Per signer, payment_amount_cents collects a card payment after they sign (into the sender's own Stripe account, no platform fee; the document completes when paid) and id_verification: true requires a government ID plus selfie check before signing ($2 an attempt from the prepaid balance). One billable unit.
get_documentStatus, signers with viewed/signed times, download links, event history.
list_documentsYour recent documents, filterable by status.
remind_documentRe-send links to everyone who has not signed (once an hour).
void_documentWithdraw an open document. Within 10 minutes of sending, the unit is refunded.
extend_documentGive an expired document 14 more days and fresh links for everyone still waited on.
get_accountPrepaid balance, documents used this month, free documents left, projected run-out.
get_evidenceEvidence package: PDF hashes, every signer and event with its position in the public evidence log, and the recipe to verify it.
verify_signature_codeLook up the code stamped beside any Signathing signature. Works for any document.

Connect

Claude.ai, ChatGPT, Grok apps (OAuth)

Add a custom connector / remote MCP server with the URL https://signathing.com/api/mcp. You will be sent to signathing.com to sign in and approve. Disconnect any time under API in your Signathing dashboard.

Claude Code

claude mcp add --transport http signathing https://signathing.com/api/mcp \
  --header "Authorization: Bearer sk_live_..."

Or without a key, using OAuth: claude mcp add --transport http signathing https://signathing.com/api/mcp and run /mcp to sign in.

Cursor, VS Code, Windsurf (mcp.json)

{ "mcpServers": { "signathing": {
    "url": "https://signathing.com/api/mcp",
    "headers": { "Authorization": "Bearer sk_live_..." } } } }

Grok (xAI Responses API)

{ "type": "mcp", "server_label": "signathing",
  "server_url": "https://signathing.com/api/mcp",
  "headers": { "Authorization": "Bearer sk_live_..." } }

Claude API (Messages API, mcp_servers)

{ "type": "url", "name": "signathing", "url": "https://signathing.com/api/mcp",
  "authorization_token": "sk_live_..." }

stdio-only clients

This repository ships a dependency-free bridge for clients that cannot speak HTTP MCP:

{ "mcpServers": { "signathing": {
    "command": "npx", "args": ["-y", "github:jacejb/signathing-mcp"],
    "env": { "SIGNATHING_API_KEY": "sk_live_..." } } } }

Create a key at signathing.com/dashboard/api.

Why a third party instead of letting the agent sign things itself

A signature only matters on the day it is disputed. On that day the party that controlled the signing system is the party with something to gain, and its own logs are "trust me." Signathing is nobody's party to the contract, and it does not ask you to trust it either: every signing event goes into one public hash chain, each entry commits to the private details through a hash without publishing them, each day is sealed and archived by the Internet Archive, and the verifier in verifier/ recomputes all of it from a document's evidence package.

node verifier/verify-signathing.mjs evidence.json original.pdf signed.pdf

Example: the whole loop, verified

examples/agent-loop.mjs (Node 18+, no dependencies, public domain) sends a PDF, waits for the signature, pulls the evidence package and the certified PDF, recomputes every hash and chain entry, confirms each entry against the public log, and resolves the verification code publicly. It is the loop an agent should run before it treats an agreement as done.

SIGNATHING_API_KEY=sk_live_... node examples/agent-loop.mjs --name "Pat Lee" --email pat@example.com
[2] Send for signature
  ok   document 71 (sent); billing {"charged_tenths":0,"unit_this_month":1}
  ok   server's original_sha256 matches the bytes we sent
[3] Waiting for Pat Lee to sign (up to 30 min)
  ok   completed at 2026-10-26T02:02:00Z; signed PDF SHA-256 afe6...; sealed=true
[4] Evidence package and certified PDF
  ok   signed PDF hashes to document.signed_sha256
[5] Independent verification
  ok   event 609 completed -> chain seq 589
  ok   seq 589 is identical in the public log
  ok   public log slice 583 to 590 recomputes end to end
[6] Public checks anyone can repeat
  ok   verification code resolves publicly to this document and its signed hash
VERIFIED: document 71, 6 events, all hashes and public-log entries recomputed.

With MCP it is four tool calls: send_document, get_document (or the document.completed webhook), get_evidence, then the verifier on what came back. The day's seal, Internet Archive snapshot and OpenTimestamps proof arrive after midnight UTC; a second verifier run the next day checks those too.

Example: an agent sends a lease

User: Send the lease at https://files.example.com/lease.pdf to Pat Lee (pat@example.com) for signature.
Agent -> send_document { file_url, title: "Lease", signers: [{ name: "Pat Lee", email: "pat@example.com" }] }
Signathing -> { id: 58, status: "sent", signers: [{ signing_url: "https://signathing.com/sign/..." }], billing: { charged_tenths: 0 } }

Pat gets an email, signs in the browser, and the agent can call get_document or receive a webhook. The certified PDF is digitally sealed and carries a certificate page and a verification code per signature.

License

MIT for this repository. The Signathing service has its own terms and privacy policy.

Reviews

No reviews yet

Be the first to review this server!