GSD MCP server — let an AI assistant send documents for signature

Endpoint: https://gsdhere.com/mcp · OAuth 2.1 + PKCE No API key Works on the free plan

GSD speaks the Model Context Protocol, so an AI assistant can list your templates, send one for signature, check who has signed, and fetch the completed PDF — without you leaving the conversation. There are two ways to connect, and for almost everyone the first one is right.

The hosted connector (recommended)

Add https://gsdhere.com/mcp as a custom connector in any MCP client. Nothing to install and no API key to create or store: you log in to GSD, approve a consent screen listing exactly what the assistant may do, and you can revoke it at any time from your GSD account.

This works on every plan, including Free. A free account sends five documents a month, then pay-as-you-go credits at $0.05 per page for the first ten pages of a document and $0.01 per page after that. Credits never expire, and signing is always free and unlimited for the people receiving your documents.

One first-time step: your GSD email address must be verified before documents can be sent. Clicking the link in the verification email signs you in and completes it.

The npm package (self-hosted)

If you would rather run the server yourself, @gsdhere/mcp runs locally and authenticates with a GSD_API_KEY from Settings → API & Webhooks.

API keys require the Business plan. On Free or Pro the key is rejected with plan_required. If you are on one of those plans, use the hosted connector above — it needs no key and costs nothing extra.

What the assistant can do

ToolWhat it doesScope
gsd_list_templatesLists your reusable templates and their signer rolestemplates:read
gsd_prepare_documentBuilds a draft envelope you can review before anything is sentenvelopes:write
gsd_send_envelopeSends for signature — previews first, sends only on your explicit confirmationenvelopes:write
gsd_envelope_statusReports overall state and each signer's progressenvelopes:read
gsd_list_envelopesLists recent envelopes, newest firstenvelopes:read
gsd_download_signedReturns the completed PDF and its Certificate of Completionenvelopes:read
gsd_whoamiConfirms which workspace the connection is bound to—

Nothing is sent without you saying so

gsd_send_envelope is deliberately two-step. Called without confirm, it creates nothing and returns a preview of exactly what would go out — the document, the signers, the fields. Only a second call carrying the confirmation_token from that preview actually sends. An assistant cannot skip the preview, so a misheard instruction costs you a preview and not a document in a stranger's inbox.

Payments

GSD never takes payment through the connector. A template may optionally request payment from the signer, settled directly to your own Stripe Connect account. Where that is configured, the amount always comes from the price list you set on the template — it can never be supplied by the caller or invented by an assistant. Payment collection requires a paid plan and is off by default.

Authorization

OAuth 2.1 with PKCE (S256) and dynamic client registration, so a client can register itself without anyone issuing credentials by hand.

DocumentURL
Server metadata/.well-known/oauth-authorization-server
Protected-resource metadata/.well-known/oauth-protected-resource
MCP discovery/.well-known/mcp

Three scopes, and a client should ask only for what it needs: templates:read, envelopes:read, envelopes:write. An unauthenticated call to /mcp answers 401 with a WWW-Authenticate header pointing at the protected-resource document.

What you get back

Every completed document carries a tamper-evident audit trail — a SHA-256 hash of the signed file, signer IP addresses and timestamps — plus a Certificate of Completion. Documents are eSIGN and UETA compliant. How long completed files are retained depends on your plan: 30 days on Free, a year on Pro, seven years on Business.

If something breaks

Errors come back with a machine-readable code and a sentence saying what to do about it. plan_required means an API key was used on a plan without API access — switch to the hosted connector. Anything else, support is a real person.

REST API documentation →