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_fileWriteMint a short-lived signed URL the agent uses to upload a local PDF, DOCX, or PNG file.
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_envelopetrue--
list_envelopestrue--
search_documentationtrue--
create_envelopefalsefalsefalse
upload_filefalsefalsefalse
cancel_envelope-truefalse
delete_envelope-truetrue

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

upload_file does not transfer bytes. It returns a single-use signed URL the agent uses to PUT the file directly to the SignatureAPI upload subdomain.

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 upload_file

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 upload_file 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 (Claude.ai, ChatGPT in connector mode) cannot run the PUT. In that case the agent should not call upload_file. Instead, 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.