Skip to main content
Glama

Server Details

Send documents for e-signature, e-witness, track and remind signers, SMS, and download signed PDFs.

Ownership verified
Status
Healthy
Uptime
99.6% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.5/5.0

Scored across 10 tools

Disambiguation5/5

Each tool maps to a distinct stage in the document lifecycle: upload URL creation, document creation from upload, retrieval, listing, sending, reminding, voiding, and downloading. Even the two create_* tools are clearly sequential rather than overlapping.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern: create_upload_url, create_document_from_upload, get_document, list_documents, send_from_template, void_document. The only notable deviation is account_status, which lacks a verb and breaks the otherwise predictable pattern.

Tool Count5/5

Ten tools is well-scoped for an e-signature server, covering the full workflow without redundancy or bloat. Each tool earns its place in the send-and-manage signing process.

Completeness5/5

The surface covers the essential e-signature lifecycle: upload, document creation, inspection, sending, status tracking, reminders, voiding, and PDF download. There are no obvious dead ends that would prevent an agent from completing a typical signing workflow.

Available Tools

10 tools
account_statusAccount status and creditsA
Read-only
Inspect

Show the GoodSign account name and remaining credits. Each envelope sent costs 1 credit. Check this before bulk sending, or when the user asks "how many credits do I have?".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes that this is a safe read operation, and the description is consistent with that. It adds useful domain context beyond the annotation by explaining that each envelope costs 1 credit, which helps the agent interpret the returned balance meaningfully.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and efficiently front-loaded: the first sentence states what the tool returns, and the second provides practical usage context. Every sentence earns its place with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only tool, the description fully covers what the agent needs: what the tool does, what it returns, and when to invoke it. The output is implied by 'account name and remaining credits,' so no output schema is required for adequate guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially complete and the description cannot add parameter-level detail. The baseline of 4 applies because the description accurately reflects the no-input nature of the operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Show,' tied to a clear resource: the GoodSign account name and remaining credits. This unambiguously distinguishes it from all siblings, none of which concern account or credit status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context for when to use the tool: before bulk sending or when the user asks about credit balance. It does not name alternatives, but no sibling tool offers account status, so exclusion guidance is unnecessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_document_from_uploadCreate a document from an uploaded PDFAInspect

Turn a PDF you PUT to a create_upload_url url into a GoodSign document. Call this only after the PUT has finished successfully. GoodSign discovers any text tags in the PDF (see create_upload_url for the full TAG REFERENCE and rules) and creates one field per tag plus one signer per distinct signer key automatically. This does NOT send anything or email anyone — the result behaves like a template: check it with get_document, then send it with send_from_template. The created document can only be sent once — to send the same PDF again, upload it again with create_upload_url and call this tool a second time. If the response includes warnings about unreadable tags, fix the tag text in the source document, re-export the PDF, call create_upload_url again and retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_nameNoOptional name for the document, e.g. "SoW - Acme Q3". Defaults to "document".
upload_idYesThe 40-character hex upload_id returned by create_upload_url, after the PUT to its upload_url has succeeded.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations are generic boolean hints and provide little behavioral color, so the description carries full disclosure weight. It reveals non-obvious behaviors: automatic tag discovery, one field per tag, one signer per signer key, template-like non-sending behavior, one-time-only sending, and warning-driven retry. No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized, with each sentence contributing distinct information: the core action, automatic tag/signer creation, template and one-time-send behavior, and warning recovery. The main action is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the full workflow: prerequisites, automatic field/signer creation, template behavior, one-time sending, and warning recovery. The only gap is that with no output schema, it never states the shape of a successful response (e.g., returned document_id), so an agent must infer how to locate and send the created document via get_document.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 upload_id as a 40-character hex string and doc_name as optional with a default. The description mostly restates that upload_id must come from a successful PUT, which the schema already says, and adds little new semantic value for the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific operation: turning a PDF uploaded via create_upload_url into a GoodSign document, with the PUT as an explicit prerequisite. It also separates itself from send_from_template by stating it does not send anything, which clearly differentiates this tool from its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an unambiguous workflow: PUT first, then call this tool, then check with get_document, then send with send_from_template. It also tells the agent when to retry (after unreadable-tag warnings) and when to re-upload the same PDF, leaving no ambiguity about the intended sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_upload_urlGet a URL to upload a PDFAInspect

Get a short-lived URL to upload a PDF that GoodSign will turn into a document. Use this for a document that is NOT based on an existing GoodSign template — e.g. a Statement of Work, contract or NDA drafted for this specific deal. After the PUT succeeds, call create_document_from_upload with the upload_id this returns. The URL is valid for 15 minutes.

If you are GENERATING the PDF yourself, embed text tags where fields should go — GoodSign places a real field at each tag's exact position, and each distinct KEY becomes one signer (reuse the same KEY on every tag that person fills).

TAG REFERENCE — this is the complete list; any other tag type is discarded:

  • [sign|KEY] signature. [in|KEY] initials. Signature size variants: [signxs|KEY] [signsm|KEY] [signmd|KEY] [signlg|KEY] [signxl|KEY].

  • [date|KEY] date of signing, filled in automatically.

  • [input|KEY] required text box. [input?|KEY] optional text box. [input|KEY|Some text] pre-filled, signer can edit.

  • [name|KEY] and [email|KEY] text boxes pre-filled with that signer's name / email address.

  • [c|KEY|Label] optional checkbox. [c*|KEY|Label] required checkbox. [c|KEY|x Label] pre-checked. [c1|KEY|Red] [c1|KEY|Blue] = radio group (same digit = one group, signer picks one).

RULES — breaking any of these corrupts or silently drops fields:

  1. KEY is the signer key: letters and digits ONLY (Client, signer1), identical spelling and case on every tag for that person. Keys differing only in case, spaces or punctuation collide into the wrong signer. Exception: trailing padding spaces before the closing ] (rule 4) are stripped before the key is matched, so [name|Client ] still keys to Client.

  2. A tag must be one unbroken run of selectable text on a single line in a normal font — never an image, never wrapped across lines.

  3. Do not use square brackets anywhere else in the document — prose like "[insert date]" gets parsed as a tag. Use parentheses instead.

  4. The tag's printed size becomes the field's size: its font size sets the field height, and an input/name/email box is exactly as wide as the printed tag text — write the tag at the size you want the answer to be. To WIDEN an input/name/email field without making it taller, pad with trailing spaces INSIDE the tag before the ] — e.g. [name|Client ] — the spaces count toward the printed width but are stripped from KEY. Spaces after the ] do nothing. Print the tag in a monospace font (e.g. Courier) so each padding space adds a full, predictable character width.

  5. Leave 2-3 blank lines of clear space around sign/in tags: the drawn signature renders much larger than the tag text.

GoodSign erases the tag text from the final PDF and renders the field value in its place. After create_document_from_upload, confirm with get_document that the signer keys and field count match what you embedded.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses rich behavioral details well beyond the sparse annotations: short-lived URL, PUT flow, 15-minute expiry, tag parsing rules, key collisions, field sizing, and the fact that tag text is erased from the final PDF. It even warns about corruption or silent drops, which is critical for correct invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Although long, the description is front-loaded with the core purpose and then organized into a tag reference and numbered rules where every sentence conveys an operational constraint. No filler or redundant restatement is present; the length is justified by the complexity of the PDF tag behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and minimal annotations, the description carries the full burden and succeeds: it identifies the returned upload_id, gives the complete tag spec, explains the required PUT workflow, and recommends verification with get_document. An agent has enough to invoke the tool and the dependent tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero properties, so the 0-parameter baseline of 4 applies. The description adds no parameter details (there are none), but its workflow and tag guidance are the relevant operational semantics for this tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description immediately states a specific action ('Get a short-lived URL to upload a PDF') and the downstream conversion intent. It differentiates from siblings by explicitly scoping to documents NOT based on an existing GoodSign template, separating it from template-based flows like send_from_template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: non-template documents such as SOW/contract/NDA, and instructs the agent to call create_document_from_upload after the PUT. It also specifies the 15-minute validity and when to embed tags (if generating the PDF yourself), making the usage context unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_documentGet download link for a document PDFA
Read-only
Inspect

Get an authenticated download URL for a document's PDF (including the audit certificate once complete). The URL requires the same Authorization: Bearer API key this MCP connection uses — download it with curl in a shell, do not try to fetch the bytes into the conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesDocument uuid

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, so no safety contradiction exists. The description adds behavioral context beyond the annotation: the returned URL requires the same Authorization: Bearer API key, and the intended consumption pattern is a shell curl command rather than in-conversation byte fetching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver the essential information with no filler. The core purpose is front-loaded, and the practical usage instruction follows immediately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the essential points: what is returned, authentication requirements, and how to use the result. It could mention response shape or URL expiration, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single uuid parameter, and the schema already describes it as 'Document uuid'. The description does not add additional parameter-specific semantics beyond identifying the resource as a document PDF, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get an authenticated download URL'), the resource ('a document's PDF'), and adds a useful scoping detail (audit certificate once complete). It distinguishes itself from sibling tools like get_document by making explicit that it returns a URL for shell-based download, not document metadata or content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear practical guidance: download the PDF with curl in a shell and do not try to fetch the bytes into the conversation. It does not explicitly name alternative sibling tools or exclusion conditions, but the context of use is strongly implied by the instructions on how to consume the result.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_documentGet document / template detailA
Read-only
Inspect

Fetch full detail for one document OR template by uuid. For a template: shows the signer keys ("key" on each signer) and field keys that send_from_template requires — always check this before sending. For a sent document: shows status and per-signer progress (who has signed, who is pending). Timestamps are unix epoch seconds. Field entries show structural info only (key, type, page, which signer); signer-entered field values are never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesDocument or template uuid, from list_templates or list_documents

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though readOnlyHint=true already covers safety, the description goes well beyond by disclosing what is returned for each entity type, that timestamps are unix epoch seconds, that field entries are structural only, and that signer-entered field values are never returned. This is precisely the behavioral detail an agent needs when there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no filler. The core action is front-loaded, and the template versus sent-document behavior is organized logically. Every clause contributes non-redundant information, making this appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-uuid detail fetch with no output schema, the description fully covers return expectations for both entity types, timestamp format, the structural nature of field entries, and the explicit exclusion of signer-entered values. This is complete enough for an agent to call the tool and interpret its response without surprises.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents uuid at 100% coverage, including its source (list_templates or list_documents). The description adds the distinction that a single uuid may refer to either a document or template, but this is a minor reinforcement rather than substantial new meaning, so the baseline schema-driven score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Fetch full detail') and a specific resource ('one document OR template by uuid'), and it clearly distinguishes the tool from sibling list tools like list_documents and list_templates by focusing on a single entity's full detail. The dual document/template scope is explicit, leaving no ambiguity about what the tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: check a template's signer keys before calling send_from_template, and check a sent document's per-signer progress when assessing status. It does not explicitly name alternatives or state exclusions, but the guidance is strong enough for an agent to select this tool over list_documents and list_templates for detail lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsList documents by statusA
Read-only
Inspect

List this account's documents filtered by status. Use status "sent" (default) to see envelopes still waiting on signatures, "complete" for fully signed ones. Use this to answer questions like "what is still waiting to be signed?" — then get_document on a uuid for per-signer detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter status. Defaults to "sent".

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description is not burdened with safety disclosure. It adds useful behavioral context beyond annotations: the default status, what 'sent' and 'complete' mean semantically, and that the result provides uuids suitable for get_document. It doesn't mention pagination or return shape, but that's minor for a read-only list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no waste: purpose, status semantics plus default, and a usage example plus chaining instruction. Information is front-loaded and every sentence contributes to correct use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-optional-parameter, read-only list tool with full schema coverage, the description covers the essential invocation details: default, filter semantics, and what the results enable (uuid → get_document). It omits explicit result shape and pagination, but the uuid mention implies the necessary output context, making it nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter fully with a description and enum, so baseline is 3. The description adds value by mapping 'sent' and 'complete' to real-world meanings (waiting on signatures vs. fully signed), going beyond the raw enum labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('List'), a scoped resource ('this account's documents'), and the filtering dimension ('by status'). It differentiates from the sibling get_document by explicitly routing per-signer detail to that tool, and its use case ('what is still waiting to be signed?') makes the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use guidance: which status values map to which real-world scenario, the default, and a concrete question the tool answers. It names get_document as the follow-up for per-signer detail, but does not explicitly exclude other siblings like list_templates, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_templatesList templatesA
Read-only
Inspect

List the reusable document templates in this GoodSign account. Call this first whenever the user wants to send a document — send_from_template needs a template uuid from here. Each template defines signer keys; call get_document with the template uuid to see exactly which signer keys and field keys it requires before sending.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds useful context that templates define signer keys and that a template uuid is returned, but it does not disclose details like pagination, sorting, or the full set of fields returned. For a simple list operation, this is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted text. The core purpose is front-loaded, followed by actionable workflow guidance, and each sentence contributes a distinct piece of information. Nothing is redundant or tangential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (zero params, read-only), and the description covers what the agent needs: what the list contains, why it matters, when to call it, and how to use the result. The absence of an output schema is compensated by the explicit mention of the template uuid and the reference to `get_document` for further detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and the schema already covers everything (100% coverage). The description adds meaning about the return value's importance (the template uuid needed for `send_from_template`), which helps the agent understand what to extract from the result. Baseline 4 for zero-parameter tools is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and identifies the resource: 'reusable document templates in this GoodSign account.' It also distinguishes the tool from siblings by naming downstream tools (`send_from_template`, `get_document`) and explaining the unique role of this list operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Call this first whenever the user wants to send a document.' It explains why this tool must precede `send_from_template` (needs a template uuid) and points to `get_document` as the follow-up to inspect signer keys. This gives the agent a clear decision flow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remind_signersRemind pending signersAInspect

Re-send the signing invitation email to signers who have not completed yet. Omit signer_email to remind ALL pending signers of the document; pass signer_email to remind one specific person. Sends real email — do not call repeatedly; once per day per signer is plenty.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesDocument uuid (a sent document, not a template)
signer_emailNoOptional: remind only this signer

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool sends real email and warns about rate/frequency, which is valuable behavioral context beyond the annotations. Annotations already indicate it is not read-only and not destructive, but the description adds the real-world side effect (email delivery) and the caution about repeated use. It could go further by noting whether reminders are logged or if there are limits, but the key behavioral trait is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the action first, then explains the two modes, then adds the caution. Every sentence earns its place, and there is no redundant repetition of the schema or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers the essential context: what it does, how to target signers, and the caution about real email. It could mention what happens if no signers are pending or whether the response indicates success, but the core information an agent needs to invoke it correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds meaningful semantics by explaining the optional signer_email behavior (omit for all, pass for one), which clarifies the parameter's purpose beyond the schema's short description. This is a solid enhancement over the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: re-sending signing invitation emails to pending signers. It distinguishes itself from siblings by focusing on the reminder action, and it explicitly explains the two modes (all pending signers vs. a specific signer), which is more specific than the title alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool and how to choose between the two parameter modes. It also warns against repeated calls, advising once per day per signer, which is actionable usage guidance beyond what the schema provides.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_from_templateSend document for e-signatureAInspect

Send a document for e-signature using a template. THIS EMAILS REAL PEOPLE and spends 1 credit — confirm each signer's name and email with the user before calling, or set draft=true to stage without emailing anyone. Requires one signers[] entry per signer key on the template (get_document on the template uuid lists the keys). For sequential signing set send_in_order=true: signers are emailed one at a time, in the order of the signers array (or explicit send_order values, lower first). Pre-fill text fields with fields[] using the field keys from get_document.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftNotrue = prepare the document but do NOT email anyone. Use when the user wants to review first.
fieldsNoOptional pre-filled field values (field keys come from get_document on the template)
signersYesOne entry per signer key defined on the template. Every key must be covered.
cc_emailNoOptional comma-separated CC addresses, notified when signing completes
doc_nameNoOptional name for the sent document, e.g. "NDA - Acme Pty"
email_messageNoOptional message shown inside the signing invitation email
email_subjectNoOptional subject for the signing invitation email
send_in_orderNotrue = sequential signing (signer 2 is only emailed after signer 1 completes)
template_uuidYesTemplate uuid from list_templates

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by warning 'THIS EMAILS REAL PEOPLE and spends 1 credit' and instructing the agent to confirm signer details with the user or use draft=true. It also explains sequential signing behavior and that signers are emailed one at a time, which is critical side-effect context that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the real-world consequence and user-confirmation requirement come first, then prerequisites, then optional behavior. Every sentence contributes meaningful guidance with no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with real-world side effects and no output schema, the description covers the essential operational context: prerequisites, side effects, draft staging, and sequential signing. It does not describe return values or tracking, and leaves some minor parameters to the schema, so it is strong but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying that every signer key must be represented, that field keys come from get_document, that draft=true stages without emailing, and that send_order uses lower values first. It doesn't elaborate on every parameter, but the important semantics are enriched.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Send a document for e-signature using a template.' This clearly distinguishes the tool from siblings like create_document_from_upload and list_templates, and the title reinforces the same intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for correct use: template_uuid is needed, signers must cover every template key via get_document, and draft=true stages without emailing. However, it never explicitly contrasts with alternatives like create_document_from_upload or says when not to use this tool, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

void_documentVoid (cancel) a sent documentA
Destructive
Inspect

Cancel a sent document so nobody can sign it anymore. This cannot be undone — to re-send, use send_from_template again. By default signers are notified the document was voided; set notify=false to void silently. Confirm with the user before voiding.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesDocument uuid to void
notifyNoNotify signers by email (default true)
messageNoOptional reason shown to signers in the void notification

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, and the description adds meaningful behavioral context beyond that: the action cannot be undone, signers are notified by default, notify=false enables silent voiding, and user confirmation is required. This is exactly the kind of extra context that helps an agent handle an irreversible action safely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each adding necessary information with no filler. The core action and irreversibility are front-loaded, followed by re-send guidance, notify defaults, and the user-confirmation requirement. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter, no-output-schema destructive tool, the description covers all critical operational aspects: what the tool does, irreversibility, signer notification behavior, the re-send path, and the need for user confirmation. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 uuid, notify, and message. The description adds some behavioral nuance around notify (default notified vs. silent) but does not substantially go beyond what the schema already states. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Cancel'/'void') and resource ('a sent document') and states the intended effect: 'nobody can sign it anymore.' It also distinguishes itself from the sibling send_from_template by explicitly naming it as the way to re-send, so an agent can clearly differentiate this tool from related actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this when a sent document must no longer be signable. It names the alternative (send_from_template) for re-sending, explains the notify behavior, and instructs the agent to confirm with the user before voiding, which is explicit operational guidance.

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.

  1. 10 tool updates
    • First observedaccount_status
    • First observedcreate_document_from_upload
    • First observedcreate_upload_url
    • First observeddownload_document
    • First observedget_document
    • First observedlist_documents
    • First observedlist_templates
    • First observedremind_signers
    • First observedsend_from_template
    • First observedvoid_document

Publisher details

Operator
GoodSign Limited · Publisher source
Vendor relationship
First-party · Publisher source
Restrictions
Pay as you go - no monthly subscription required. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to create fillable PDFs, send contracts for e-signature, verify signers via BankID or ID scans, and track post-send document workflows.
    5
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    eSignatures.com MCP: full control of contract content from your AI. Read and rewrite contracts and templates as Markdown, before and after sending. Send for signature, manage signers, create public signing links and track status. Hosted with OAuth, no install. Pay-per-use, no subscription.
    13
    53 PyPI
    40
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources