MCP Server

Tools and Resources

The tools and resources the SignatureAPI MCP server exposes to agents.

The MCP server exposes a curated set of tools that map to the most common SignatureAPI operations. Each tool corresponds to a REST endpoint and is scoped to the account the user authorized.

Tools

ToolOperationDescription
create_envelopeWriteCreate a new envelope with documents and recipients. Maps to Create envelope.
get_envelopeReadFetch an envelope by id. Maps to Get envelope.
list_envelopesReadList envelopes for the account, most-recent first, with cursor pagination. Filters: status, topic.
cancel_envelopeWriteCancel an in-progress envelope. Recipients receive a cancellation email.
delete_envelopeWritePermanently delete an envelope in a final status (completed, canceled, or failed).
upload_fileWriteUpload a file into SignatureAPI using the host’s native file handling (for example, ChatGPT Apps).
mint_upload_urlWriteReturn a short-lived signed PUT URL and reference for agents that upload the bytes themselves.
search_documentationReadSearch the public SignatureAPI documentation and return ranked excerpts with source URLs.

Tool annotations

Each tool is annotated with MCP’s standard hints so resource-aware clients can render the right confirmation UI:

ToolreadOnlyHintdestructiveHintidempotentHint
get_envelopetruefalsetrue
list_envelopestruefalsetrue
search_documentationtruefalsetrue
create_envelopefalsefalsefalse
upload_filefalsefalsefalse
mint_upload_urlfalsefalsefalse
cancel_envelopefalsetruefalse
delete_envelopefalsetruetrue

Destructive tools (cancel_envelope, delete_envelope) should trigger user confirmation in any well-behaved client.

Resources

The server also exposes envelopes as an MCP resource so clients that support resources (such as Claude) can render them as chips, list them in side panels, and re-fetch them on their own.

URI templateDescription
signatureapi://envelope/{envelope_id}JSON representation of an envelope. Same payload as get_envelope.

Listing returns up to 10 envelopes by default, sized for client pickers (for example the @ picker in Claude Code).

Pagination

list_envelopes returns 10 envelopes per page by default, with a maximum page size of 20. The response includes links.next and links.previous cursor URLs; pass the cursor query value back as the cursor parameter to paginate. API-level pagination defaults on the REST surface are unchanged.

Uploading files

There are two ways to get a local file into an envelope, depending on what the client can do:

  • upload_file uses the host’s native file handling. In hosts like ChatGPT Apps, the client transfers the bytes for you; you do not run a PUT yourself.
  • mint_upload_url returns a single-use signed URL the agent uses to PUT the file directly to the SignatureAPI upload subdomain. Use this when the client can execute code and upload bytes itself.

The signed-URL flow below applies to mint_upload_url.

1

Compute size and SHA-256

Get the file's exact byte count and its SHA-256 hash. These values are bound into the signed URL, so they must match the bytes you actually send.

wc -c < contract.pdf
shasum -a 256 contract.pdf | awk '{print $1}'
2

Call mint_upload_url

Provide media_type, size, and sha256. You receive:

  • upload_url — single-use, expires in roughly five minutes.
  • reference — the canonical https://api.signatureapi.com/v1/uploads/upl_… URL to use later.
3

PUT the bytes

Send the raw file body to upload_url. All three headers below are required and must match the values declared in step 2.

curl -X PUT "<upload_url>" \
  -H "Content-Type: <media_type>" \
  -H "Content-Length: <size>" \
  -H "x-amz-content-sha256: <sha256>" \
  --data-binary @contract.pdf

A 2xx response means the bytes landed and reference is now resolvable. A 4xx means the upload failed; the URL is single-use, so re-mint by calling mint_upload_url again.

4

Pass the reference to create_envelope

Use the returned reference (not upload_url) as the document URL when calling create_envelope.

Supported media types

TypeMIMEUsed for
PDFapplication/pdfEnvelope documents
DOCXapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentEnvelope documents (with optional template merge)
PNGimage/pngSymbol assets such as logos

Phase one of the upload service caps individual files at roughly 5 MB. Larger files will be supported as the upload service scales.

Pure connector clients

Clients without local code execution cannot run the PUT, so they should not call mint_upload_url. Hosts with native file handling (such as ChatGPT Apps) can use upload_file instead. Otherwise, supply a URL on a host SignatureAPI already accepts (S3, Google Drive, Dropbox, and similar) and pass that URL directly to create_envelope.

search_documentation lets the agent look up SignatureAPI concepts, field names, enum values, and webhook events before guessing. Each result includes a title, url, and a short snippet. The tool is read-only and safe to call as often as needed; in practice, calling it once before a non-trivial create_envelope produces noticeably better results than relying on the model’s training data.