E-signature envelopes on Docuflex: create, send, track, verify; US e-sign law lookup.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a Docuflex envelope. documents: inline base64 PDFs or staged uploadIds. recipients: name, email, routingOrder (1 = first), optional type (signer default, cc, certified_delivery, in_person_signer...). tabs: type (signature, initial, date_signed, text, checkbox...), page (1-based), x/y/width/height as fractions of the page from the top-left, documentIndex and recipientIndex into this request's arrays. status 'sent' sends now; omit for a draft.
Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header.
Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http esign https://docuflex.net/mcp
Create a Docuflex envelope. documents: inline base64 PDFs or staged uploadIds. recipients: name, email, routingOrder (1 = first), optional type (signer default, cc, certified_delivery, in_person_signer...). tabs: type (signature, initial, date_signed, text, checkbox...), page (1-based), x/y/width/height as fractions of the page from the top-left, documentIndex and recipientIndex into this request's arrays. status 'sent' sends now; omit for a draft.
| Argument | Type | Description |
|---|---|---|
| tabs | array | |
| status | string | |
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| message | string | |
| subject* | string | |
| metadata | object | |
| documents* | array | |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
| recipients* | array | |
| routingType | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"subject",
"documents",
"recipients"
],
"properties": {
"tabs": {
"type": "array",
"items": {
"type": "object",
"required": [
"documentIndex",
"recipientIndex",
"type",
"page",
"x",
"y",
"width",
"height"
],
"properties": {
"x": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"y": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"page": {
"type": "integer",
"minimum": 1
},
"type": {
"type": "string",
"maxLength": 30
},
"label": {
"type": "string",
"maxLength": 120
},
"width": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"height": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"required": {
"type": "boolean"
},
"documentIndex": {
"type": "integer",
"minimum": 0
},
"recipientIndex": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 500
},
"status": {
"enum": [
"draft",
"sent"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"message": {
"type": "string",
"maxLength": 4000
},
"subject": {
"type": "string",
"maxLength": 200
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"documents": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"base64": {
"type": "string",
"description": "PDF bytes, base64"
},
"uploadId": {
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 1
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"type": {
"type": "string",
"maxLength": 30
},
"email": {
"type": "string",
"format": "email"
},
"clientUserId": {
"type": "string",
"maxLength": 120
},
"routingOrder": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1
},
"routingType": {
"enum": [
"sequential",
"parallel"
],
"type": "string"
}
},
"additionalProperties": false
}List the operations (method, path, summary) for one resource group from the OpenAPI spec: envelopes, signing, verify, templates, bulk-send, connect, uploads, api-keys, oauth, accounts, library, admin.
| Argument | Type | Description |
|---|---|---|
| resource* | string | Tag name, e.g. 'envelopes' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "string",
"maxLength": 40,
"description": "Tag name, e.g. 'envelopes'"
}
},
"additionalProperties": false
}Product summary, how to get an API key, base URLs, auth, limits and links.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}High-level ESIGN / UETA / ESRA summary for a US state, the document types the federal act excludes, and what Docuflex records. Not legal advice.
| Argument | Type | Description |
|---|---|---|
| state* | string | Two-letter code or state name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"state"
],
"properties": {
"state": {
"type": "string",
"maxLength": 30,
"description": "Two-letter code or state name"
}
},
"additionalProperties": false
}Hash-chained audit events for an envelope, oldest first.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
| envelope_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope_id"
],
"properties": {
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
},
"envelope_id": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Envelope status, recipients, documents.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
| envelope_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope_id"
],
"properties": {
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
},
"envelope_id": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Short-lived signing URL for a current-tier recipient (embedded signing). Provide the recipient's email or clientUserId as used on the envelope and a returnUrl.
| Argument | Type | Description |
|---|---|---|
| string | ||
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| userName | string | |
| returnUrl | string | |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
| envelope_id* | string | |
| clientUserId | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope_id"
],
"properties": {
"email": {
"type": "string",
"format": "email"
},
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"userName": {
"type": "string",
"maxLength": 120
},
"returnUrl": {
"type": "string",
"format": "uri"
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
},
"envelope_id": {
"type": "string",
"maxLength": 64
},
"clientUserId": {
"type": "string",
"maxLength": 120
}
},
"additionalProperties": false
}Most recent envelopes for the account.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| status | string | |
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"status": {
"type": "string",
"maxLength": 20
},
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
}
},
"additionalProperties": false
}Send a message to the Docuflex team (commercial terms, higher limits, questions). Only when the user explicitly asks and provides their own email. Limited to 5 per hour per IP.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| email* | string | |
| company | string | |
| message* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"email",
"message"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"email": {
"type": "string",
"format": "email"
},
"company": {
"type": "string",
"maxLength": 120
},
"message": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
}Transition a draft to sent.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
| envelope_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope_id"
],
"properties": {
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
},
"envelope_id": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}No key needed. Returns status, sealed-document hashes, certificate hash and audit-chain verification for an envelope id. Never returns document content.
| Argument | Type | Description |
|---|---|---|
| envelope_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope_id"
],
"properties": {
"envelope_id": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Void a sent envelope with a reason.
| Argument | Type | Description |
|---|---|---|
| reason* | string | |
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
| envelope_id* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope_id",
"reason"
],
"properties": {
"reason": {
"type": "string",
"maxLength": 500
},
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
},
"envelope_id": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Works with an OAuth2 bearer token (user principal). Plain API keys are account-scoped and get 403 here; then use the account id from Account settings in the Docuflex app and pass it as account_id or x-docuflex-account.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header. |
| account_id | string | Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Docuflex API key (dfx_live_...). Optional if sent as the x-docuflex-api-key header."
},
"account_id": {
"type": "string",
"maxLength": 64,
"description": "Docuflex account id. Optional if sent as x-docuflex-account or if the key belongs to exactly one account."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.