digisign-mcp
The digisign-mcp server enables AI assistants like Claude Code to create, manage, and send digital signature envelopes via the DigiSign.cz API.
Read/Query capabilities:
List envelopes — browse with optional filters by status (draft, sent, completed, expired, declined, cancelled) and pagination
Get envelope details — retrieve full info on a specific envelope
List documents/recipients/tags — view attachments, recipient signing statuses, and placed signature tags
Get download URL — obtain a temporary (5-min) link for signed documents from completed envelopes
Get account info — check credits, plan, and usage
Write/Action capabilities:
Create envelope — start a new draft with custom name, email body, and sender details
Upload & attach document — upload a local PDF or DOCX file to an envelope
Add recipient — add signers, approvers, in-person signers, or CC recipients (with optional SMS auth)
Add signature tag — place signature, approval, text, date, or checkbox tags using placeholder-based or coordinate-based positioning
Send envelope — dispatch a draft to all recipients for signing
Cancel envelope — cancel a sent envelope (signers are notified)
Delete/Discard envelope — permanently delete or discard a draft envelope
Safety controls: Permissions can be configured to require manual approval for irreversible actions like sending or canceling envelopes.
DigiSign MCP Server
MCP server for the DigiSign.cz digital signature API. Built for Claude Code.
Create, send, and manage digital signature envelopes directly from your AI coding assistant.
Setup
1. Get DigiSign API keys
In your DigiSign dashboard: Settings > Pro vyvojare > API klice. Create an API key pair (access key + secret key).
2. Install dependencies
git clone https://github.com/davidsimoes/digisign-mcp.git
cd digisign-mcp
npm install3. Register with Claude Code
claude mcp add digisign \
-e DIGISIGN_ACCESS_KEY=your_access_key \
-e DIGISIGN_SECRET_KEY=your_secret_key \
-- node /path/to/digisign-mcp/src/index.jsRelated MCP server: mcp-dropbox-sign
Tools
Read tools (safe to auto-approve)
Tool | Description |
| List envelopes with optional status/page filters |
| Get detailed envelope info (status, recipients, documents) |
| List documents attached to an envelope |
| List recipients and their signing status |
| List signature/form tags placed on documents |
| Get temporary download URL for signed documents |
| Get account info (credits, plan, usage) |
Write tools (recommend manual approval)
Tool | Description |
| Create a new draft envelope |
| Upload a PDF/DOCX and attach to an envelope |
| Add a signer, approver, or CC recipient |
| Place signature/form tag (placeholder or coordinate positioning) |
| Send envelope for signing (emails all recipients) |
| Cancel a sent envelope (notifies signers) |
| Delete a draft envelope |
| Discard a draft envelope (use when API key lacks delete permission) |
Safety recommendations
Add irreversible write tools to your deny list in ~/.claude/settings.local.json:
{
"permissions": {
"deny": [
"mcp__digisign__send_envelope",
"mcp__digisign__cancel_envelope",
"mcp__digisign__delete_envelope",
"mcp__digisign__discard_envelope"
]
}
}This ensures Claude Code prompts for confirmation before sending, cancelling, or deleting envelopes.
Safe preparation tools (create_envelope, upload_and_attach_document, add_recipient, add_signature_tag) can be added to the allow list since they only modify draft envelopes.
Signature tag positioning
Two approaches for placing signature tags on documents:
Placeholder-based (recommended)
Add invisible text markers in your document (e.g., white-colored text like {sign_here}). DigiSign finds them in the PDF text layer and positions the signature tag relative to them.
add_signature_tag(
envelopeId: "...",
recipientId: "...",
documentId: "...",
placeholder: "{sign_here}",
positioning: "bottom_left",
scale: 70
)Important: DigiSign's placeholder regex only allows [\w\-\{\}\[\]\(\)=,] — no spaces or diacritics. Use simple ASCII placeholders like {sign_ceo}, {sign_client}.
Positioning: bottom_left places the signature box above the placeholder text (standard for contracts where the signature goes above the printed name). scale: 70 keeps the box compact.
Note: documentId is required even when using placeholder positioning.
Coordinate-based
Places tag at exact page coordinates (in points):
add_signature_tag(
envelopeId: "...",
recipientId: "...",
documentId: "...",
page: 5,
xPosition: 320,
yPosition: 680
)Placeholder-based is more robust — it survives document layout changes.
Typical workflow
create_envelope— create a draftupload_and_attach_document— attach the PDFadd_recipient— add signers (mobile number required for SMS auth)add_signature_tag— place signature tagssend_envelope— send for signing
Requirements
Node.js 18+
DigiSign.cz account with API access
Claude Code (or any MCP-compatible client)
License
MIT
Built by David Simoes / Sounds Good Agency
Available Tools
15 toolsadd_recipientC
Add a signer, approver, or CC recipient to an envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID | |
| role | Yes | Recipient role | |
| name | Yes | Recipient full name | |
| Yes | Recipient email | ||
| mobile | No | Mobile phone (e.g. +420111222333) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Add') but doesn't cover critical traits like whether this requires specific permissions, if it's idempotent, what happens on duplicate recipients, or any rate limits. This leaves significant gaps for a mutation tool, making it inadequate for safe agent use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and resource without any wasted words. It's appropriately sized for its purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral risks, return values, or error conditions, leaving the agent with insufficient context to use the tool safely and effectively in a complex environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or constraints), resulting in a baseline score of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and the target resource ('a signer, approver, or CC recipient to an envelope'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_recipients' or 'send_envelope', which could involve recipients in different contexts, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as whether it's for modifying an existing envelope or if there are prerequisites (e.g., envelope must be in a draft state). It lacks explicit when/when-not instructions or references to sibling tools, offering only basic implied usage from the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_signature_tagB
Place a signature or form tag on a document. Use placeholder for text-based positioning or coordinates for exact placement.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID | |
| recipientId | Yes | Recipient UUID | |
| documentId | No | Document UUID (required for coordinate positioning) | |
| type | No | Tag type (default: signature) | |
| placeholder | No | Placeholder text to find in document (e.g. "{podpis_klient}") | |
| positioning | No | How tag aligns to placeholder | |
| scale | No | Tag size as percentage (default 100). Use 50-80 for smaller tags. | |
| page | No | Page number (for coordinate positioning) | |
| xPosition | No | X position in points (for coordinate positioning) | |
| yPosition | No | Y position in points (for coordinate positioning) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action ('Place') which implies a write/mutation operation, but doesn't disclose critical traits such as required permissions, whether changes are reversible, rate limits, or what happens upon success/failure. The description adds minimal context beyond the basic action, leaving significant gaps in understanding the tool's behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that directly address the tool's purpose and key usage methods. Every word earns its place, with no redundant or vague language, making it front-loaded and efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 10-parameter mutation tool with no annotations and no output schema, the description is insufficiently complete. It lacks details on behavioral aspects (e.g., permissions, side effects), output expectations, error handling, and integration with sibling tools. While concise, it doesn't compensate for the missing structured data, leaving the agent with significant uncertainty about proper invocation and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description adds marginal value by hinting at the two positioning methods ('placeholder' vs. 'coordinates'), which aligns with parameters like 'placeholder', 'positioning', 'page', 'xPosition', and 'yPosition'. However, it doesn't provide additional syntax, format details, or examples beyond what the schema specifies, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Place') and resource ('signature or form tag on a document'), specifying it's for adding tags to documents. It distinguishes itself from siblings like 'list_tags' or 'send_envelope' by focusing on placement rather than listing or sending. However, it doesn't explicitly differentiate from potential overlapping tools like 'upload_and_attach_document' in terms of document modification scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning two positioning methods ('placeholder for text-based positioning or coordinates for exact placement'), which suggests when to use each approach. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'list_tags' for viewing or 'send_envelope' for finalizing, nor does it mention prerequisites or exclusions, leaving usage context partially inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_envelopeC
Cancel a sent envelope. Signers will be notified.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states that signers will be notified, which adds some context about side effects, but fails to address critical aspects like permissions required, whether cancellation is reversible, rate limits, or error conditions. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short sentences with zero wasted words. It is front-loaded with the core action and efficiently includes a key behavioral note about signer notification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on permissions, error handling, return values, and differentiation from sibling tools. The mention of signer notification is helpful but insufficient to cover the complexity of canceling an envelope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'envelopeId' fully documented as 'Envelope UUID'. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Cancel') and target resource ('a sent envelope'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'delete_envelope' or 'discard_envelope', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'delete_envelope' or 'discard_envelope'. It mentions that 'Signers will be notified', which hints at a post-send context but doesn't clarify prerequisites, exclusions, or comparative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_envelopeA
Create a new draft envelope for digital signature. Returns envelope ID for subsequent operations.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Envelope name (e.g. "SLA Smlouva - ClientName") | |
| emailBody | No | Email body sent to signers (HTML allowed) | |
| emailBodyCompleted | No | Email body sent when all parties signed | |
| senderName | No | Override sender name | |
| senderEmail | No | Override sender email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that it creates a draft (implying a write operation) and returns an envelope ID, but lacks details on permissions needed, rate limits, whether drafts are saved automatically, or error handling. For a creation tool with zero annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste: the first states the purpose and resource, the second clarifies the return value and its use. It's front-loaded with the core action and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete: it covers the purpose and return value, but lacks behavioral details like auth requirements or error cases. For a creation tool with 5 parameters, it should provide more context on usage scenarios or limitations to be fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters with descriptions. The description adds no additional parameter semantics beyond implying the 'name' is required (as stated in schema) and that the tool returns an envelope ID. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new draft envelope') and resource ('for digital signature'), distinguishing it from sibling tools like 'send_envelope' or 'cancel_envelope' which operate on existing envelopes. It specifies the creation of a draft (not sent) envelope, which is a precise scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating it creates a draft envelope and returns an ID for subsequent operations, suggesting it's an initial step before using tools like 'add_recipient' or 'send_envelope'. However, it doesn't explicitly state when to use this versus alternatives (e.g., direct sending) or any prerequisites, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_envelopeA
Delete a draft envelope. Cannot delete sent/completed envelopes.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the constraint on envelope states (draft only), which is useful behavioral context. However, it doesn't mention permissions, side effects (e.g., irreversible deletion), or response format, leaving gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with zero waste: the first states the purpose, and the second adds a critical constraint. It's front-loaded and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is mostly complete for a simple deletion tool with one parameter. It covers the key behavioral constraint, but lacks details on permissions or response, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'envelopeId' parameter as a UUID. The description doesn't add any parameter-specific details beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a draft envelope'), distinguishing it from siblings like 'cancel_envelope' or 'discard_envelope' by specifying the envelope state (draft vs. sent/completed). It provides specific verb+resource+scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use ('Delete a draft envelope') and when not to use ('Cannot delete sent/completed envelopes'), providing clear context and exclusions without naming alternatives, which is sufficient for explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discard_envelopeA
Discard a draft envelope. Moves it to discarded state. Use this instead of delete when the API key lacks ROLE_ENVELOPE_DELETE.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and effectively discloses key behavioral traits: it's a mutation operation (discarding), specifies the state change (moves to discarded), and mentions permission constraints (API key lacking ROLE_ENVELOPE_DELETE). It doesn't cover rate limits or error handling, but provides solid context for a single-param tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, uses two efficient sentences with zero waste, and every part (purpose, state change, usage guideline) earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is quite complete: it explains what the tool does, when to use it, and permission constraints. It could mention what 'discarded state' entails or error cases, but covers the essentials well given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'envelopeId' parameter as an 'Envelope UUID'. The description doesn't add any additional meaning or context about the parameter beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Discard a draft envelope') and the resource ('envelope'), distinguishing it from sibling tools like 'delete_envelope' by specifying it moves the envelope to a discarded state rather than deleting it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides when to use this tool ('Use this instead of delete when the API key lacks ROLE_ENVELOPE_DELETE'), offering clear guidance on alternatives and prerequisites based on permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountB
Get DigiSign account info — credits, plan, usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves account info but doesn't describe any behavioral traits such as whether it's read-only (implied by 'Get'), authentication requirements, rate limits, error handling, or response format. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get DigiSign account info') and adds specific details ('credits, plan, usage') without any wasted words. It's appropriately sized for a simple, parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete. It states what the tool does but lacks details on usage context, behavioral traits, and output format. For a read operation in a server with many envelope-related tools, more guidance would improve completeness, but it meets the baseline for a basic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by specifying what account info is retrieved ('credits, plan, usage'), which provides semantic context beyond the empty schema. This compensates adequately, though it doesn't detail output structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('DigiSign account info'), and specifies what information is retrieved ('credits, plan, usage'). However, it doesn't explicitly differentiate from sibling tools like 'get_envelope', which might also retrieve account-related data in some contexts, though the focus on account-level info is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs), timing (e.g., before creating envelopes), or exclusions (e.g., not for envelope-specific data). With sibling tools like 'get_envelope' that retrieve specific resources, the lack of differentiation leaves usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_urlA
Get a temporary download URL (valid 5 min) for signed documents from a completed envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID | |
| output | No | Output format (default: combined) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it generates a temporary URL with a 5-minute validity period, and specifies it's for 'signed documents from a completed envelope', implying prerequisites. It lacks details on authentication needs, rate limits, or error cases, but covers essential operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence with zero waste: it front-loads the core purpose, includes validity duration, and specifies the resource context. Every word earns its place, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides good context for a simple retrieval tool: it clarifies the tool's purpose, behavioral constraints (temporary URL, envelope completion), and usage context. It could improve by mentioning authentication or response format, but it's largely complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no additional parameter semantics beyond implying 'envelopeId' is for a completed envelope, which is minimal value. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get a temporary download URL') and target resource ('signed documents from a completed envelope'), with the temporal constraint 'valid 5 min' adding precision. It distinguishes from siblings like 'get_envelope' (metadata) or 'list_documents' (listing) by focusing on download access for completed envelopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage context by specifying 'for signed documents from a completed envelope', suggesting it should be used after envelope completion. However, it does not explicitly state when not to use it (e.g., for pending envelopes) or name alternatives like 'list_documents' for document details without downloads, leaving some guidance gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_envelopeB
Get detailed information about a specific envelope including status, recipients, documents.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention permission requirements, rate limits, error conditions, or what happens if the envelope doesn't exist. For a tool that retrieves potentially sensitive envelope data, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving detailed envelope data), lack of annotations, and no output schema, the description is minimally adequate but incomplete. It specifies what information is returned but not the format, depth, or potential limitations. For a tool with no structured behavioral hints, more context about the retrieval operation would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'envelopeId' documented as 'Envelope UUID.' The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed information about a specific envelope including status, recipients, documents.' It specifies the verb ('Get'), resource ('envelope'), and scope of information returned. However, it doesn't explicitly differentiate from sibling tools like 'list_envelopes' or 'get_account' beyond the singular vs. plural distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an envelope ID), contrast with 'list_envelopes' for bulk retrieval, or specify scenarios where this detailed view is appropriate versus other envelope-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsC
List documents attached to an envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists documents but doesn't reveal any behavioral traits such as read-only vs. destructive nature, authentication requirements, rate limits, pagination, or output format. This leaves significant gaps for a tool that likely interacts with envelope data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (listing resources associated with an envelope), lack of annotations, and absence of an output schema, the description is incomplete. It fails to address behavioral aspects, usage context, or what the output entails, making it inadequate for guiding an agent effectively in this environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'envelopeId' documented as 'Envelope UUID'. The description adds no additional meaning beyond this, as it doesn't explain parameter usage, constraints, or examples. Baseline score of 3 is appropriate since the schema adequately covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('documents attached to an envelope'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential siblings like 'list_envelopes' or 'list_recipients' that might also list items, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description implies usage for listing documents of a specific envelope but doesn't mention prerequisites, exclusions, or related tools like 'get_download_url' for accessing document content, leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_envelopesB
List envelopes with optional status filter. Returns envelope IDs, names, and statuses.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status | |
| page | No | Page number (default 1) | |
| itemsPerPage | No | Items per page (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists envelopes and returns specific data, but lacks details on permissions, rate limits, pagination behavior (beyond parameters), error handling, or whether it's a read-only operation. For a list tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of two clear sentences: one stating the action and filter, and another specifying the return data. There is no wasted verbiage, and every sentence directly contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (listing with filtering and pagination), no annotations, and no output schema, the description is somewhat complete but lacks depth. It covers the basic purpose and return data but omits behavioral details like pagination handling, error cases, or performance considerations. It is adequate for a simple list tool but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'optional status filter,' which aligns with the 'status' parameter in the schema. However, with 100% schema description coverage, the schema already fully documents all three parameters (status, page, itemsPerPage), including enums and defaults. The description adds minimal value beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List envelopes with optional status filter.' It specifies the verb ('List'), resource ('envelopes'), and scope ('with optional status filter'), and mentions the return data ('envelope IDs, names, and statuses'). However, it does not explicitly differentiate from sibling tools like 'get_envelope' or 'list_documents', which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions an optional status filter but does not specify scenarios for using it over other tools like 'get_envelope' for single envelopes or 'list_documents' for related resources. There is no mention of prerequisites, exclusions, or best practices for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recipientsC
List recipients of an envelope with their signing status.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool lists recipients with signing status, implying a read-only operation, but doesn't disclose behavioral traits like permissions needed, rate limits, pagination, error handling, or what happens if the envelopeId is invalid. For a tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. There is no wasted verbiage or redundancy, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain return values, error cases, or behavioral context, leaving the agent with insufficient information for reliable invocation. A more detailed description would be needed to compensate for the missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'envelopeId' documented as 'Envelope UUID'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('recipients of an envelope'), specifying the action and target. It adds context about 'signing status' which distinguishes it from a simple list. However, it doesn't explicitly differentiate from sibling tools like 'get_envelope' which might also return recipient information, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing envelope), exclusions, or compare to siblings like 'get_envelope' or 'list_envelopes'. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsC
List signature/form tags on an envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool lists tags but doesn't describe what the output looks like (e.g., format, structure), whether it's paginated, or any limitations (e.g., rate limits, authentication requirements). This leaves significant gaps for an agent to understand how to use the results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (e.g., list of tag objects with properties), which is critical for a listing operation. The agent would have to guess about the output format and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage (envelopeId is fully documented as 'Envelope UUID'), so the description doesn't need to add parameter details. The description doesn't provide any additional parameter semantics beyond what the schema already covers, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and target resource ('signature/form tags on an envelope'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'list_documents' or 'list_recipients', which also list envelope-related items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing envelope), exclusions, or how it differs from other listing tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_envelopeB
Send a draft envelope for signature. Requires at least one document, one signer, and signature tags placed.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions prerequisites but does not cover critical aspects such as whether this is a mutation (implied by 'send'), what permissions are needed, how errors are handled, or what happens after sending (e.g., envelope status changes). This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the action and prerequisites without unnecessary words. It is front-loaded with the main purpose and follows with essential conditions, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of sending an envelope (a mutation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral traits (e.g., side effects, error handling), output expectations, or how it integrates with sibling tools. The prerequisites are helpful but insufficient for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'envelopeId' documented as 'Envelope UUID'. The description does not add any additional meaning or context about this parameter beyond what the schema provides, such as format examples or where to obtain the ID. Thus, it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('send a draft envelope for signature') and specifies the resource ('envelope'), making the purpose evident. However, it does not explicitly differentiate this tool from siblings like 'create_envelope' or 'discard_envelope', which might involve envelope handling but with different intents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating prerequisites ('requires at least one document, one signer, and signature tags placed'), suggesting it should be used when a draft envelope is ready. However, it does not provide explicit guidance on when to use this tool versus alternatives like 'create_envelope' (for initial setup) or 'cancel_envelope' (for stopping), leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_and_attach_documentC
Upload a local file (PDF/DOCX) and attach it to an envelope.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | Yes | Envelope UUID | |
| filePath | Yes | Absolute path to the file to upload | |
| documentName | No | Display name for the document |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks behavioral details. It implies a write operation ('upload and attach') but doesn't disclose permissions needed, rate limits, whether the operation is idempotent, or what happens on failure (e.g., if filePath is invalid).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the core action and key details (file types), making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain the outcome (e.g., success response, error handling), side effects, or integration with sibling tools, leaving gaps for an AI agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds minimal value by implying file format constraints (PDF/DOCX) not in the schema, but doesn't elaborate on parameter interactions or usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload and attach') and the resource ('local file to an envelope'), specifying acceptable file formats (PDF/DOCX). However, it doesn't explicitly differentiate from sibling tools like 'list_documents' or 'get_download_url', which handle document viewing rather than uploading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., envelope must exist), exclusions (e.g., file size limits), or related tools like 'create_envelope' for initial setup or 'list_documents' for verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v1.0.0- First observed
add_recipient - First observed
add_signature_tag - First observed
cancel_envelope - First observed
create_envelope - First observed
delete_envelope - First observed
discard_envelope - First observed
get_account - First observed
get_download_url - First observed
get_envelope - First observed
list_documents - First observed
list_envelopes - First observed
list_recipients - First observed
list_tags - First observed
send_envelope - First observed
upload_and_attach_document
TDQS
Scored across 15 tools
Every tool has a clearly distinct purpose with no ambiguity. For example, 'add_recipient' and 'list_recipients' are complementary but non-overlapping, while 'delete_envelope' and 'discard_envelope' are explicitly differentiated by permissions and state handling. The descriptions clearly delineate each tool's specific function within the envelope lifecycle.
All tools follow a consistent verb_noun naming pattern throughout, such as 'create_envelope', 'list_envelopes', and 'upload_and_attach_document'. The naming is uniform, predictable, and enhances readability, making it easy for agents to understand and select the appropriate tool for each operation.
With 15 tools, the server is well-scoped for digital signature management, covering the full envelope lifecycle from creation to completion. Each tool earns its place by addressing specific needs like recipient management, document handling, and status tracking, without being overly sparse or bloated.
The tool set provides complete CRUD/lifecycle coverage for the digital signature domain. It includes envelope creation, management (send, cancel, delete/discard), recipient and document handling, status retrieval, and download capabilities, with no obvious gaps that would cause agent failures in typical workflows.
Maintenance
Related MCP Connectors
MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.
PandaDoc MCP server for creating, sending, signing, and tracking PandaDoc documents.
Hosted MCP server for Dropbox Sign — signature requests, templates, and account for AI agents.
An MCP server that provides access to Agility CMS. See https://mcp.agilitycms.com for more details.
Related MCP Servers
AlicenseAqualityFmaintenancehttps://github.com/signnow/sn-mcp-server MCP server for SignNow e-signature: templates, invites, embedded signing/editor, status & downloads.258MIT- AlicenseNot gradedqualityBmaintenanceMCP server for the Dropbox Sign API supporting signature requests, templates, teams, accounts, events, documents, signers, reports, bulk operations, and workflows.MIT
- AlicenseCqualityDmaintenanceMCP server for the EZD PUW electronic document management system of Polish public administration, providing 91 tools covering the full API for documents, cases, correspondence, ePUAP, eDelivery, blockchain, and more.91MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for accessing Czech datové schránky (ISDS) with legal semantics. Enables AI agents to safely read, send, and archive messages while respecting delivery triggers and deadlines.1MIT