MCP Server for eSignatures
The MCP Server for eSignatures lets you manage electronic signature workflows through:
Contract Management: Create, query, withdraw, delete, and list your recent contracts. You can customize emails, signing order, and multi-factor authentication.
Template Management: Create, update, query, delete, and list reusable contract templates with customizable content including headers, text, and images.
Collaboration: Invite, remove, and list collaborators who can edit templates.
The server requires API secret token authentication to access these features.
Provides tools for eSignatures, enabling creation, management, and processing of digital contracts and templates, including adding collaborators, sending contracts for signature, and retrieving contract information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Server for eSignaturessend an NDA contract to John Doe at john@acme.com using my standard template"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-esignatures
The most developer- and AI-friendly electronic signature platform.
Traditional eSignature tools lock you into rigid, static PDF files. eSignatures.com takes a different approach — contracts remain fully editable, Markdown-based content throughout their entire lifecycle, making them effortless for developers, automation systems, and AI agents to create, understand, modify, and manage.
This MCP server gives AI agents (such as Claude) real-time access to the complete eSignatures API, enabling:
Dynamic contract creation and editing — even after sending
Markdown-based content that AI can generate, understand, and update
End-to-end workflows: drafting → placeholder filling → sending → signing → amendments
Flexible templates and reusable contract workflows
Signer management, notifications, and lifecycle automation
Built for intelligent, adaptive contract workflows — not outdated PDF-based signing.
Tools
Tool | Category | Description |
| Contracts | Draft for review or send contract |
| Contracts | Retrieve contract info |
| Contracts | Withdraw an active contract |
| Contracts | Delete a draft or test contract |
| Contracts | List the recent contracts |
| Signers | Add a signer to an existing contract |
| Signers | Update an existing signer's contact details |
| Signers | Send or resend the sign request to a signer |
| Signers | Remove a signer from a contract |
| Placeholders | Get a contract's placeholder field values |
| Placeholders | Update an active contract's placeholder fields |
| Content | Get a contract's content in Markdown format |
| Content | Edit an active contract's body via find/replace |
| Templates | Create a new contract template (Markdown body) |
| Templates | Update an existing template's title/labels |
| Templates | Edit a template's Markdown body via find/replace |
| Templates | Retrieve template metadata |
| Templates | Retrieve a template's Markdown body |
| Templates | Delete a template |
| Templates | List all your templates |
| Collaborators | Invite someone to edit a template |
| Collaborators | Revoke template editing rights |
| Collaborators | View who can edit a template |
Related MCP server: SendForSign MCP Server
Examples
Creating a draft contract
Create a draft NDA for a publisher, ready for me to review and send. Signer: John Doe, ACME Corp, john@acme.com.
Sending a contract from a template
Send an NDA based on my template to John Doe from ACME Corp at john@acme.com. Set the term to 2 years.
Creating a new contract
Create a contractor agreement for a graphic designer, including payment terms of net 14 days. Prepare it as a draft for review. Signer: John Doe, ACME Corp, john@acme.com.
Adding a signer to a contract
Add Jane Smith from ACME Corp (jane@acme.com) as a signer on the NDA contract, then send her the signature request.
Editing an active contract's wording
On the NDA, change the rental term to 24 months and remove the jurisdiction section.
Editing an existing template
Update my NDA template to include a 12-month non-solicitation clause.
Reviewing templates
Review my templates and suggest improvements. Do not apply any changes until I approve them one by one.
Finding the right template
Find the best template for onboarding a contractor and prepare a draft contract for John Doe.
Managing contracts
Show me the recent contracts that are waiting for signatures.
Updating signer details
Update the signer email on the NDA contract for John Doe to john.doe@acme.com.
Inviting template collaborators
Invite John Doe to edit the NDA template. His email is john@acme.com.
Install
Create an eSignatures.com account
Create an eSignatures.com account at https://esignatures.com for free, to test the Agent AI by creating templates and sending test contracts.
Claude Desktop
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
"mcpServers": {
"mcp-server-esignatures": {
"command": "uv",
"env": {
"ESIGNATURES_SECRET_TOKEN": "your-esignatures-api-secret-token"
},
"args": [
"--directory",
"/your-local-directories/mcp-server-esignatures",
"run",
"mcp-server-esignatures"
]
}
}Published Servers Configuration
"mcpServers": {
"mcp-server-esignatures": {
"command": "uvx",
"args": [
"mcp-server-esignatures"
],
"env": {
"ESIGNATURES_SECRET_TOKEN": "your-esignatures-api-secret-token"
}
}
}Authentication
To use this server, you need to set the ESIGNATURES_SECRET_TOKEN environment variable with your eSignatures.com API secret token.
eSignatures.com API Documentation
For a detailed guide on API endpoints, parameters, and responses, see eSignatures.com API.
eSignatures.com Support
For support, please navigate to Support or contact support@esignatures.com.
Contributing
Contributions are welcome! If you'd like to contribute, please fork the repository and make changes as you see fit. Here are some guidelines:
Bug Reports: Please open an issue to report any bugs you encounter.
Feature Requests: Suggest new features by opening an issue with the "enhancement" label.
Pull Requests: Ensure your pull request follows the existing code style.
Documentation: Help improve or translate documentation. Any form of documentation enhancement is appreciated.
For major changes, please open an issue first to discuss what you would like to change. We're looking forward to your contributions!
Available Tools
13 toolsadd_template_collaboratorC
Creates a HTTPS link for editing a contract template; sends an invitation email if an email is provided..
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | ||
| name | No | Collaborator's name | |
| No | Collaborator's email; triggers an invitation email when provided |
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 that providing an email 'triggers an invitation email', which adds some context beyond the basic action. However, it lacks critical details: whether this is a read-only or mutating operation, what permissions are required, if the link expires, or what happens on failure. For a tool that likely modifies access permissions, this is insufficient.
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 primary action ('creates a HTTPS link') and adds conditional behavior ('sends an invitation email if an email is provided'). There is no wasted text, and every part earns its place by clarifying the tool's functionality.
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 tool that likely modifies access and sends emails), lack of annotations, no output schema, and incomplete parameter documentation, the description is inadequate. It doesn't cover behavioral aspects like error handling, response format, or side effects, leaving the agent with significant gaps in understanding how to use this tool effectively.
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 67% (2 out of 3 parameters have descriptions). The description adds minimal value: it echoes that email 'triggers an invitation email', which is already in the schema's email description. It doesn't explain 'template_id' (the required parameter) or 'name' beyond what the schema provides. With moderate schema coverage, the baseline is 3, as the description doesn't significantly compensate for gaps.
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 specific verbs ('creates a HTTPS link', 'sends an invitation email') and identifies the resource ('contract template'). It distinguishes from siblings like 'create_template' or 'update_template' by focusing on collaboration rather than template creation or modification. However, it doesn't explicitly mention 'collaborator' in the description despite the tool name, which slightly reduces specificity.
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 template), exclusions (e.g., not for removing collaborators), or compare it to sibling tools like 'remove_template_collaborator' or 'list_template_collaborators'. The agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_contractC
Creates a new contract. The contract can be a draft which the user can customize/send, or the contract can be sent instantly. So called 'signature fields' like Name/Date/signature-line must be left out, they are all handled automatically. Contract owners can customize the content by replacing {{placeholder fields}} inside the content, and the signers can fill in Signer fields when they sign the contract.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | No | GUID of a mobile-friendly contract template within eSignatures. The template provides content, title, and labels. Required unless document_elements is provided. | |
| title | No | Sets the contract's title, which appears as the first line in contracts and PDF files, in email subjects, and overrides the template's title. | |
| locale | No | Language for signer page and emails. | |
| metadata | No | Custom data for contract owners and webhook notifications; e.g. internal IDs. | |
| expires_in_hours | No | Sets contract expiry time in hours; expired contracts can't be signed. Expiry period can be extended per contract in eSignatures. | |
| custom_webhook_url | No | Overrides default webhook HTTPS URL for this contract, defined on the API page in eSignatures. Retries 6 times with 1 hour delays, timeout is 20 seconds. | |
| assigned_user_email | No | Assigns an eSignatures user as contract owner with edit/view/send rights and notification settings. Contract owners get email notifications for signings and full contract completion if enabled on their Profile. | |
| labels | No | Assigns labels to the contract, overriding template labels. Labels assist in organizing contracts without using folders. | |
| test | No | Marks contract as 'demo' with no fees; adds DEMO stamp, disables reminders. | |
| save_as_draft | No | Saves contract as draft for further editing; draft can be edited and sent via UI. URL: https://esignatures.com/contracts/contract_id/edit, where contract_id is in the API response. | |
| signers | No | List of individuals required to sign the contract. Only include specific persons with their contact details; do not add generic signers. | |
| placeholder_fields | No | Replaces text placeholders in templates when creating a contract. Example: {{interest_rate}}. Do not add placeholder values when creating a draft. | |
| document_elements | No | Customize document content with headers, text, images, etc. Owners can manually replace {{placeholder fields}} in the eSignatures editor, and signers can fill in Signer fields. Use placeholders for signer names unless names are already provided. The contract title is automatically added as the first line. | |
| signer_fields | No | Set default values for Signer fields. | |
| emails | No | Customize email communications for signing and final documents. | |
| custom_branding | No | Customize branding for documents and emails. | |
| contract_source | Yes | Identifies the originating system. Currently only mcpserver supported for MCP requests. | |
| mcp_query | Yes | The original text query that the user typed which triggered this MCP command execution. Used for logging and debugging purposes. |
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. While it mentions draft/instant sending modes and automatic handling of signature fields, it lacks critical information about permissions required, rate limits, error conditions, response format, or what happens when contracts expire. For a complex creation tool with 18 parameters, this is insufficient.
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 reasonably concise at 3 sentences but could be more front-loaded. The first sentence establishes purpose, but the following sentences delve into implementation details (signature fields, placeholders) that might be better placed after core functionality. Some redundancy exists between the description and schema content.
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 complex contract creation tool with 18 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, error conditions, authentication requirements, or how it differs from related template operations. The schema does heavy lifting, but the description should provide more contextual guidance for proper usage.
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 18 parameters thoroughly. The description adds minimal value beyond the schema, mentioning placeholder fields and signer fields but not providing additional context about parameter interactions or usage patterns. Baseline 3 is appropriate given the comprehensive 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 tool creates a new contract and distinguishes between draft and instant sending modes. It specifies the resource (contract) and key capabilities (draft creation, placeholder customization, signer field handling). However, it doesn't explicitly differentiate from sibling tools like 'create_template' or 'query_contract'.
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 mentions when to use draft vs instant sending but provides no guidance on when to use this tool versus alternatives like 'create_template' or 'update_template'. There's no mention of prerequisites, dependencies, or exclusions relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_templateB
Creates a reusable contract template for contracts to be based on.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title for the new template; used for contracts based on this template. | |
| labels | No | Assign labels for organizing templates and contracts; labels are inherited by contracts. | |
| document_elements | Yes | Customize template content with headers, text, images. Owners can manually replace {{placeholder fields}} in the eSignatures contract editor, and signers can fill in Signer fields when signing the document. Use placeholders for signer names if needed, instead of Signer fields. Contract title auto-inserts as the first line. |
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 creates something, implying a write operation, but doesn't mention permissions required, rate limits, whether the operation is idempotent, or what happens on failure. It hints at template inheritance ('labels are inherited by contracts') but lacks details on response format or error handling.
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 without unnecessary details. It avoids redundancy and wastes no words, 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 tool's complexity (3 parameters, nested document_elements structure) and lack of annotations or output schema, the description is minimally adequate. It states what the tool does but omits critical context like behavioral traits, error handling, and response format. For a creation tool with intricate input, more guidance would improve completeness.
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 fully documents all parameters. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain parameter interactions, default behaviors, or examples. Baseline 3 is appropriate as 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 tool's purpose: 'Creates a reusable contract template for contracts to be based on.' It specifies the verb ('creates') and resource ('reusable contract template'), and distinguishes it from sibling tools like 'create_contract' by focusing on templates rather than contracts. However, it doesn't explicitly differentiate from 'update_template' beyond the creation aspect.
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., permissions needed), when to choose this over 'update_template' or 'create_contract', or any constraints on usage. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_contractA
Deletes a contract. The contract can only be deleted if it's a test contract or a draft contract.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes | GUID of the contract to be deleted. |
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 adds important context about the precondition (test/draft contracts only), which is valuable beyond just stating the action. However, it doesn't cover other behavioral aspects like permissions needed, whether deletion is reversible, error handling, or what happens to associated 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 extremely concise with just two sentences that directly convey the action and key constraint. Every word earns its place, and the critical information is front-loaded. There's no wasted language or 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 destructive operation with no annotations and no output schema, the description provides the essential precondition but lacks completeness. It doesn't explain what 'deletes' entails (e.g., permanent removal?), error responses, or return values. Given the complexity of deletion and absence of structured data, more behavioral context 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?
Schema description coverage is 100%, with the parameter 'contract_id' fully documented in the schema as a 'GUID of the contract to be deleted.' The description doesn't add any additional parameter information beyond what the schema provides, so it meets the baseline for high schema coverage without adding extra 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 verb ('Deletes') and resource ('a contract'), making the purpose immediately understandable. It distinguishes from siblings like 'withdraw_contract' by specifying deletion rather than withdrawal. However, it doesn't explicitly differentiate from 'delete_template' in terms of resource type beyond the name.
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 clear context on when to use this tool: only for test or draft contracts. This implicitly suggests alternatives like 'withdraw_contract' for non-deletable contracts. However, it doesn't explicitly name alternatives or state when NOT to use it beyond the condition mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_templateC
Deletes a contract template.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | GUID of the template to be deleted. |
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 is a deletion but doesn't cover critical aspects like whether it's irreversible, requires specific permissions, affects related data, or has rate limits. This leaves significant 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?
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 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?
For a destructive tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., irreversibility, permissions), output format, or error handling, leaving the agent with incomplete context for safe and effective use.
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%, with the parameter 'template_id' documented as a 'GUID of the template to be deleted'. The description adds no additional meaning beyond this, so it meets the baseline 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 action ('Deletes') and resource ('a contract template'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'delete_contract' or 'remove_template_collaborator', 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?
No guidance is provided on when to use this tool versus alternatives like 'delete_contract' or 'remove_template_collaborator'. The description lacks context about prerequisites (e.g., whether the template must be unused) or exclusions, offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_contractsB
Returns the the details of the latest 100 contracts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it returns details of the latest 100 contracts. It doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what 'details' include, leaving significant gaps for an agent to understand 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, efficient sentence with zero waste, clearly front-loading the purpose. It's appropriately sized for a tool with no parameters and straightforward functionality.
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 incomplete. It doesn't explain what 'details' include in the return values, and with siblings like 'query_contract' available, more context on usage and output is needed for an agent to effectively use this 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 context by specifying 'latest 100 contracts', which provides semantic meaning beyond the empty schema, earning a baseline score above 3.
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 ('Returns') and resource ('contracts'), specifying it provides details of the latest 100 contracts. It distinguishes from siblings like 'query_contract' by implying a bulk retrieval without filtering parameters, though it doesn't explicitly name alternatives.
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 for retrieving recent contracts without filtering, suggesting it's for bulk overviews rather than specific queries. However, it doesn't explicitly state when to use this versus siblings like 'query_contract' or 'list_templates', leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_template_collaboratorsC
Returns the list of template collaborators, including their GUID, name, email, and the HTTPS link for editing the template
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes |
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 this is a read operation ('Returns'), implying it's non-destructive, but doesn't cover other important aspects like authentication requirements, rate limits, error conditions, pagination, or what happens if the template_id is invalid. For a tool with zero annotation coverage, 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 a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words and gets straight to the point, though it could be slightly more structured by explicitly mentioning the parameter. Every part of the sentence contributes meaningful information about what the tool does.
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 (1 parameter, no annotations, no output schema), the description is incomplete. It explains the return data but omits critical context: the required parameter 'template_id' is undocumented, behavioral traits like error handling are missing, and there's no output schema to clarify the return structure. For a tool that retrieves data based on an input, this leaves too many unknowns for effective use.
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 0%, so the schema provides no parameter documentation. The description doesn't mention the 'template_id' parameter at all, leaving it completely undocumented. With 1 required parameter and no explanation in the description, the agent lacks context on what this parameter represents or how to use it, failing to compensate for the schema gap.
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: 'Returns the list of template collaborators' with specific details about what information is included (GUID, name, email, HTTPS link). It uses a specific verb ('Returns') and resource ('template collaborators'), but doesn't explicitly distinguish it from sibling tools like 'list_templates' or 'query_template' beyond the focus on collaborators.
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 doesn't mention prerequisites (e.g., needing a valid template_id), when not to use it, or how it differs from sibling tools like 'query_template' which might also retrieve template-related data. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesC
Lists the templates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 but provides almost none. 'Lists the templates' implies a read-only operation but doesn't specify whether this returns all templates, paginated results, requires authentication, has rate limits, or what format the output takes. For a tool with zero annotation coverage, this minimal description leaves critical behavioral traits undisclosed.
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 maximally concise at just three words ('Lists the templates.'). It's front-loaded with the core action and resource, with zero wasted words or redundant information. For such a simple tool, this brevity is appropriate and efficient.
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) but lack of annotations, the description is incomplete. It doesn't explain what 'lists' means operationally—whether it returns all templates, supports filtering, requires permissions, or what the output structure looks like. For even a simple list operation, more context about behavior would be helpful for the agent.
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 tool has 0 parameters with 100% schema description coverage (empty schema), so the description doesn't need to compensate for parameter documentation. The baseline for this situation is 4, as there are no parameters to explain beyond what the schema already provides (none). The description doesn't add parameter semantics, but none are needed.
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 'Lists the templates' is a tautology that essentially restates the tool name 'list_templates' without adding meaningful specificity. While it correctly identifies the verb ('Lists') and resource ('templates'), it doesn't distinguish this tool from sibling tools like 'query_template' or provide any additional context about what kind of templates or what listing entails.
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 about when to use this tool versus alternatives. With sibling tools like 'query_template' (likely for specific template lookup) and 'list_recent_contracts' (for a different resource type), the description offers no indication of whether this is for browsing all templates, filtered templates, or how it differs from query operations. The agent receives no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_contractA
Responds with the contract details, contract_id, status, final PDF url if present, title, labels, metadata, expiry time if present, and signer details with all signer events (signer events are included only for recent contracts, with rate limiting).
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes | GUID of the contract (draft contracts can't be queried, only sent contracts). |
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 effectively communicates key behavioral traits: it's a read operation (implied by 'responds with'), discloses that 'signer events are included only for recent contracts', and explicitly mentions 'rate limiting'. However, it doesn't cover other potential behaviors like error conditions, authentication requirements, or pagination.
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 efficiently structured as a single sentence that lists all return fields and includes important behavioral notes. It's appropriately sized for the tool's complexity, though it could be slightly more front-loaded by stating the core purpose more clearly before listing fields.
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 read operation with no annotations and no output schema, the description provides reasonable coverage of what the tool returns and some behavioral constraints. However, it doesn't explain the return format structure, error handling, or provide complete context about the 'recent contracts' limitation. Given the tool's moderate complexity, the description is adequate but has clear 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?
The schema description coverage is 100% with the single parameter 'contract_id' well-documented in the schema itself. The description doesn't add any parameter-specific information beyond what's already in the schema description. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
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: 'Responds with the contract details' followed by a specific list of fields returned. It uses the verb 'responds with' and identifies the resource as 'contract details' with specific attributes. However, it doesn't explicitly differentiate from sibling tools like 'list_recent_contracts' or 'query_template' beyond the scope of a single contract query.
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 context through the mention of 'recent contracts' and 'rate limiting', but doesn't provide explicit guidance on when to use this tool versus alternatives like 'list_recent_contracts' or 'query_template'. The input schema description mentions 'draft contracts can't be queried, only sent contracts', which provides some usage constraint, but this isn't in the main description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_templateC
Responds with the template details, template_id, title, labels, created_at, list of the Placeholder fields in the template, list of Signer fields int he template, and the full content inside document_elements
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | GUID of the template. |
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. The description states it 'responds with' details, implying a read-only operation, but doesn't clarify if it's safe, requires authentication, has rate limits, or what happens on errors. For a tool with no annotations, this leaves significant behavioral gaps, as it doesn't address permissions, side effects, or response handling beyond listing fields.
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 run-on sentence that lists multiple fields without clear structuring. While it efficiently enumerates what the tool returns, it could be more front-loaded and organized (e.g., separating core details from lists). It's not overly verbose, but the lack of structure reduces readability and could be improved for better agent comprehension.
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 has no annotations, no output schema, and a simple input schema with one parameter, the description provides basic completeness by listing return fields. However, it doesn't cover behavioral aspects like error handling or authentication needs, and without an output schema, it doesn't detail the structure of returned lists (e.g., Placeholder fields). For a read tool with minimal structured data, this is adequate but has clear gaps in context.
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 'template_id' documented as a 'GUID of the template'. The description doesn't add any additional meaning about the parameter beyond what the schema provides—it doesn't explain format examples, validation rules, or where to obtain the GUID. Given the high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate with extra insights.
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: to respond with template details including specific fields like template_id, title, labels, created_at, and lists of Placeholder and Signer fields, plus document_elements content. It specifies the verb 'responds with' and resource 'template details', making the purpose clear. However, it doesn't explicitly distinguish this from sibling tools like 'list_templates' or 'query_contract', which would require more differentiation for a score of 5.
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 when this tool is appropriate compared to 'list_templates' (which likely lists multiple templates) or 'query_contract' (which might query contracts instead of templates). There's no indication of prerequisites, context, or exclusions, leaving the agent with insufficient usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_template_collaboratorC
Removes the template collaborator
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | Templates's GUID. | |
| template_collaborator_id | Yes | Collaborator's GUID. |
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. While 'removes' implies a destructive mutation, it doesn't specify whether this requires admin permissions, if the action is reversible, what happens on success/failure, or any rate limits. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
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, direct sentence with no wasted words, making it highly concise and front-loaded. Every word ('Removes the template collaborator') contributes essential information without redundancy or fluff.
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 destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on permissions, side effects, error handling, or return values, which are crucial for safe and effective use. The high schema coverage helps with parameters, but overall context is insufficient for a mutation operation.
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 both parameters clearly documented as GUIDs for the template and collaborator. The description adds no additional semantic context beyond what the schema provides, such as format examples or relationship details. With high schema coverage, the baseline score of 3 is appropriate 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 action ('removes') and the resource ('template collaborator'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete_template' or 'withdraw_contract', which also involve removal operations, so it doesn't fully distinguish itself from alternatives.
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 to list collaborators first), exclusions, or comparisons to siblings like 'delete_template' (which removes the entire template) or 'list_template_collaborators' (which might be used to identify collaborators to remove).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_templateC
Updates the title, labels or the content of a contract template.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | The new title of the template. | |
| labels | No | List of labels to be assigned to the template. | |
| document_elements | No | The content of the template like headers, text, and images for the document. |
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 this is an update operation, implying mutation, but doesn't describe permissions required, whether changes are reversible, how partial updates are handled, or what the response looks like. For a mutation tool with zero annotation coverage, 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 front-loads the core purpose with zero wasted words. It directly communicates what the tool does without unnecessary elaboration or repetition.
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 insufficiently complete. It doesn't address behavioral aspects like error conditions, response format, or side effects. The complexity of the document_elements parameter (with multiple nested object types) suggests the tool has significant behavioral nuance that isn't captured in the minimal description.
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 three parameters thoroughly. The description mentions the same three parameters (title, labels, content) but adds no additional semantic context beyond what's in the schema. This 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 verb ('Updates') and the resource ('contract template'), specifying what can be updated ('title, labels or the content'). It distinguishes from siblings like create_template (creation) and delete_template (deletion), but doesn't explicitly differentiate from other update operations that might exist.
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 template ID), constraints (e.g., what happens if only partial fields are provided), or relationships with sibling tools like query_template (to check current state) or create_template (for initial creation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
withdraw_contractC
Withdraws a sent contract.
| Name | Required | Description | Default |
|---|---|---|---|
| contract_id | Yes | GUID of the contract to be withdrawn. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't clarify if withdrawal is reversible, requires specific permissions, affects contract state, or has side effects, which is inadequate 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 a single, efficient sentence with no wasted words, making it highly concise and front-loaded. It directly states the tool's purpose without unnecessary elaboration.
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 insufficient. It lacks details on behavior, outcomes, error conditions, or how it differs from siblings, leaving significant gaps in understanding for an AI agent.
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 'contract_id' parameter as a GUID. The description adds no additional meaning beyond what the schema provides, such as format examples or context, 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 ('withdraws') and resource ('a sent contract'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'delete_contract' or explain what 'withdraw' means versus deletion, leaving room for improvement.
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 such as 'delete_contract' or 'query_contract', nor does it mention prerequisites like contract status or user permissions. The description lacks context for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose targeting specific resources and actions, such as create_contract vs. withdraw_contract for contracts, and create_template vs. update_template for templates. There is no overlap or ambiguity in functionality, making tool selection straightforward for an agent.
All tools follow a consistent verb_noun naming pattern, such as create_contract, delete_template, and list_recent_contracts. The naming is uniform throughout, with no deviations in style or convention, enhancing readability and predictability.
With 13 tools, the server is well-scoped for eSignatures, covering core operations like contract and template management, collaboration, and querying. Each tool serves a distinct and necessary function without being excessive or insufficient for the domain.
The tool set provides comprehensive CRUD and lifecycle coverage for contracts and templates, including collaboration features. Minor gaps exist, such as no direct tool for updating contract details or handling signer-specific actions beyond querying, but agents can likely work around these with the available tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
E-signatures for contracts and NDAs. Draft with AI, review, and send for signature.
E-signature & document automation: create, send, track and sign documents with payments. 38 tools.
Create signing requests, check status, send reminders, and manage Aoexl templates.
Send documents for e-signature, track signing status, and download signed PDFs. No API key required.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with the BoldSign e-signature platform through its API. Supports managing documents, templates, contacts, users, and teams for electronic signature workflows.1494MIT
- AlicenseBqualityDmaintenanceEnables interaction with the SendForSign API to list document templates and read template content for electronic signature workflows.258MIT
- FlicenseNot gradedqualityDmaintenanceEnables users to create, manage, and track electronic signing requests and templates through Claude Desktop and other MCP-compatible clients. Provides multi-tenant authentication with customer API keys for secure document workflow operations.66
- AlicenseAqualityBmaintenanceEnables AI assistants to manage document signing workflows via natural language, including creating envelopes, uploading documents, analyzing contracts, and verifying blockchain anchors.8501MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/esignaturescom/mcp-server-esignatures'
If you have feedback or need assistance with the MCP directory API, please join our Discord server