Stiply MCP by usefulapi
Server Details
Read sign requests and signers; send, remind, extend and cancel sign requests in Stiply.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
10 toolsstiply_cancel_sign_requestCancel a sign requestBDestructiveInspect
WRITE: cancel a sign request. This cannot be undone. Stiply API: POST /v2/sign_requests/{id}/actions/cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| notify_signers | Yes | Whether the signers get a cancellation email. | |
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). | |
| cancellation_message | No | Optional message shown to the signers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
annotations already declare destructiveHint=true, so 'This cannot be undone' largely restates structured data. What the description does add is the HTTP endpoint mapping and, implicitly, that cancellation is a terminal state transition rather than a pause. It does not say whether signers are notified by default or what a successful response contains.
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?
Three short front-loaded fragments with no filler; the destructive nature and the resource are stated first. The raw API endpoint is of marginal value to an agent and is the one element that could be cut.
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 mutation with no output schema, the description should say what state the sign request ends in and whether the call fails for already-completed requests. Parameters are covered by the schema, but preconditions and return behavior are absent.
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%: sign_request_id even points back to stiply_list_sign_requests, and notify_signers and cancellation_message are fully documented. The description adds nothing about parameters, so baseline 3 applies.
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?
States a specific verb and resource ('cancel a sign request') with a 'WRITE:' prefix that immediately classifies the operation. None of the sibling tools (extend_term, send_reminder, get_*) do the same thing, so an agent can route here without opening the schema.
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 gives no preconditions (e.g., only pending sign requests can be cancelled) and names no alternatives such as stiply_extend_term when the signer just needs more time. The irreversibility warning hints the tool is a last resort, but that is inference rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_create_sign_requestCreate and send a sign requestADestructiveInspect
WRITE: create a sign request and SEND it. Stiply downloads each PDF from file_urls and emails the signers at once, so confirm the signers with the user first. Stiply API: POST /v2/sign_requests.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | How long signers have, e.g. 1d, 2w, 3m. Default: the account setting. | |
| title | Yes | Title of the sign request. | |
| message | No | Email message. Basic HTML only; use <br> for newlines. | |
| signers | Yes | Who receives the request. | |
| subject | No | Email subject for the signers. | |
| file_urls | Yes | Public https URLs of the PDF documents to sign. | |
| external_key | No | Your own unique key to find this request later. | |
| signing_sequence_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the single destructiveHint annotation, the description discloses two important traits: Stiply fetches each PDF from file_urls server-side, and signers are emailed immediately and simultaneously. The immediate-email disclosure is exactly the kind of irreversible side-effect context an agent needs. It omits auth/permission requirements and what is returned after sending.
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?
Three tight sentences with the operation class ('WRITE') front-loaded, followed by the key side-effect, the safety caution, and the endpoint. Zero filler; every sentence earns its place.
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 an 8-parameter mutation tool with no output schema, the description covers purpose, side effects, and a usage caution well. The main remaining gap is what the call returns (e.g. a sign request id needed for stiply_get_sign_request_progress), which an agent would want to know.
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 88%, so the schema already explains title, signers, fields, term, and the rest. The description only adds that file_urls entries are downloaded by Stiply, which slightly clarifies that parameter but adds little beyond the schema's own 'Public https URLs' description. Baseline 3 applies.
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?
States a specific verb and resource ('create a sign request and SEND it') plus the exact API endpoint, which unambiguously separates it from read tools like stiply_get_sign_request and stiply_list_sign_requests. It stops short of naming any sibling to contrast with, so it lands at clear-but-not-differentiating.
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?
'Confirm the signers with the user first' gives a concrete pre-condition for invoking the tool, which is more than most definitions offer. It does not name alternatives (e.g. extend_term or cancel) or state when not to use it, keeping it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_extend_termExtend the termBDestructiveInspect
WRITE: extend the signing term of a sign request. Stiply API: POST /v2/sign_requests/{id}/actions/extend_term.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | New term, e.g. 1d, 2w, 3m. | |
| notify_signers | No | Tell the signers (default true). | |
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and the title, and the description's 'WRITE:' label is consistent with that. It does not add the behavior an agent still needs: whether the new term runs from now or from the original deadline, and whether signers are emailed as a side effect (the schema's notify_signers default of true implies an outbound notification). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, mutation flag first, resource and endpoint second. Nothing redundant and nothing buried.
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?
With three documented parameters, no output schema, and a destructive annotation present, the minimum is met. What's still missing is the semantic effect of the call — how the new term relates to the existing deadline and whether signers get notified — which an agent needs to call this correctly 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?
Schema description coverage is 100%: term's format and pattern, notify_signers' default, and sign_request_id's provenance are all documented in the schema. The description itself adds no parameter-level meaning, so the baseline 3 applies.
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?
States a specific verb and resource ('extend the signing term of a sign request') plus the exact API endpoint, which is unambiguous and distinct from every sibling (cancel, create, get, list, remind). It does not explicitly contrast itself with a sibling, but no sibling overlaps the action, so disambiguation is implicit.
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?
'WRITE:' signals this is a mutation rather than a read, which is a useful routing cue toward the get/list siblings for inspection. Beyond that there is no guidance on when to extend versus cancel-and-recreate, what preconditions apply (e.g. request must still be open), or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_get_sign_requestGet a sign requestARead-onlyInspect
Get one sign request by id: status, timestamps, message, reject reason, owner. Stiply API: GET /v2/sign_requests/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations confirm this is a read-only operation. The description adds valuable context by detailing what information will be returned (status, timestamps, message, etc.), which informs the agent about the expected structure and complexity of the 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 definition is highly concise. It puts the functional description and the underlying API path side-by-side, which is maximally efficient for an AI agent.
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 that the input parameters are fully documented and the tool is marked read-only, the description provides the necessary detail about the output payload (what fields it contains) to make the definition complete for an 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 schema coverage is 100%, providing a strong baseline. The description adds value by clarifying that the required ID should originate from 'stiply_list_sign_requests', adding contextual flow to the parameter's use case.
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 tool explicitly states it retrieves a 'sign request' using a specific 'id', clearly defining its function. Its placement in a set of request/list sibling tools allows an agent to easily distinguish this specific lookup operation.
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?
While it doesn't explicitly state 'when' to use it, the description clearly defines the mechanism (get by id). Given the sibling list, an agent understands that it should be used only when the ID is available, versus calling list or create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_get_sign_request_by_external_keyGet a sign request by external keyARead-onlyInspect
Find a sign request by the external_key set when it was created. Stiply API: GET /v2/sign_requests/by_key/{external_key}.
| Name | Required | Description | Default |
|---|---|---|---|
| external_key | Yes | The external key given at creation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description doesn't need to restate that. It adds the underlying endpoint mapping, but says nothing about what happens when no sign request matches the key or what the response contains, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the lookup semantics come first and the API endpoint follows as supporting detail.
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 one-parameter read lookup this is largely sufficient — the resource returned is implied by 'Find a sign request'. With no output schema, a note on not-found behavior or the returned object would have closed the last gap.
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 coverage is 100% and the single parameter is fully documented there. The description adds mild context by noting the key was 'set when it was created' (client-supplied at creation time), but no format, uniqueness, or casing details beyond that.
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?
States a specific verb and resource ('Find a sign request') plus the lookup key ('by the external_key'), which distinguishes it from the sibling stiply_get_sign_request that looks up by internal id. It stops short of explicitly naming that sibling as the alternative, so it's clear but not fully differentiated.
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?
Usage is implied: use this when you have the external key rather than the internal id. There is no explicit when-to-use/when-not-to-use statement and no named alternative (e.g., stiply_get_sign_request), so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_get_sign_request_progressGet sign request progressARead-onlyInspect
Get the audit trail of a sign request: each action (sent, opened, signed, ...) with time, IP, location and email status. Stiply API: GET /v2/sign_requests/{id}/progress.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the description adds real value by disclosing the returned structure (per-action records with time, IP, location, email status) and the underlying GET endpoint, which is important since no output schema exists. It does not mention ordering, pagination, or auth/rate-limit 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?
Two dense sentences, zero filler, payload description front-loaded ahead of the endpoint reference. Every clause carries information an agent can use.
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-only, single-parameter tool with no output schema, describing the returned audit-trail fields is the key missing piece and it is present. Minor gaps remain: ordering/pagination of the action list and any error behavior for unknown ids.
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?
Single parameter with 100% schema description coverage, including a hint on where to obtain the id ('from stiply_list_sign_requests'). The description itself adds nothing about the id beyond the schema, so baseline 3 applies.
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?
States a specific verb and resource ('Get the audit trail of a sign request') and enumerates the payload ('each action (sent, opened, signed, ...) with time, IP, location and email status'), which inherently separates it from the plain get-by-id sibling. It does not explicitly name stiply_get_sign_request as the alternative, so an agent must infer the division of labor.
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?
Usage is only implied: you call this when you want to see the progression of a sign request. There is no explicit when-to-use/when-not guidance and no mention of how it relates to siblings like stiply_get_sign_request, stiply_get_sign_request_by_external_key, or stiply_list_signers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_list_documentsList documents of a sign requestARead-onlyInspect
List the documents attached to a sign request (metadata only, no file download). Stiply API: GET /v2/sign_requests/{id}/documents.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds the genuinely useful constraint 'metadata only, no file download', which prevents an agent from expecting file content, plus the underlying endpoint mapping. It stops short of noting pagination, ordering, or behavior for an invalid/nonexistent id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the scope and the key behavioral constraint front-loaded; nothing is padded. The trailing endpoint string is marginally redundant but useful for API mapping.
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 single-parameter read tool this is mostly adequate, but with no output schema the description is the only place to signal what 'metadata' actually contains (field names, counts, ordering) or whether results are paginated. That gap is left open.
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?
Only one parameter and schema coverage is 100%, with the schema itself directing the agent to stiply_list_sign_requests as the source for the id. The description adds nothing about the identifier beyond the schema, so baseline 3 applies.
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?
States a specific verb ('List') and resource ('documents attached to a sign request'), which unambiguously separates it from sibling listing tools like stiply_list_sign_requests or stiply_list_signers. The resource scope is precise, though it never explicitly names which sibling to use instead for adjacent needs.
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?
Usage is only implied by the resource relationship — an agent can infer this is the sub-resource listing for a known sign_request_id. There is no explicit when-to-use/when-not guidance and no mention of alternatives (e.g., get_sign_request may already return document info).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_list_signersList signersARead-onlyInspect
List the signers of a sign request with email, name, role (signer/approver/cc/dc), authentication method and sign URL. Stiply API: GET /v2/sign_requests/{id}/signers.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is extremely helpful by explicitly detailing the returned attributes (email, name, role, authentication method, sign URL). This level of detail drastically reduces ambiguity about the expected output structure, especially when only the existence of an output schema is noted as false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that efficiently covers the purpose, the data returned, and the underlying API method without unnecessary filler. It is perfectly sized for the task.
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 that the tool is read-only and involves only one input, the description provides all necessary context, including the specific data elements returned (roles, URLs, auth methods) and the underlying API structure, making it completely actionable.
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 coverage is 100%, setting a baseline score of 3. The description repeats the context of the parameter (it comes from a sign request) but adds no semantic meaning beyond what the structured input schema already covers.
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 explicitly states the action ('List the signers') and the resource ('a sign request'). It clearly defines the scope of the operation, distinguishing it from broader management functions provided by sibling tools.
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?
While it does not explicitly name alternatives, the highly specific nature of the tool—listing *only* signers—provides clear usage guidance. An agent knows this tool is for granular roster inspection, differentiating it from general request retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_list_sign_requestsList sign requestsARead-onlyInspect
List sign requests (documents sent for e-signing) with status, title, sent/expiry/signed timestamps. Filter by status (draft, published, all_signed, completed, rejected, canceled, expired, ...). Stiply API: GET /v2/sign_requests.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1). | |
| status | No | Filter by status, e.g. published, completed, rejected, canceled, expired. | |
| orderby | No | Sort order, e.g. 'created_at desc'. | |
| page_size | No | Results per page (max 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds value by naming the returned fields (status, title, sent/expiry/signed timestamps), but it does not explain pagination behavior or what a response envelope looks like despite pagination parameters existing.
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?
Three short sentences, front-loaded with the verb, resource, returned fields, and the key filter. The trailing 'Stiply API: GET /v2/sign_requests' is marginally useful (endpoint mapping) but borders on filler for an agent that already has the schema.
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 zero-required-parameter, read-only list tool with no output schema, the description covers the resource, the filterable statuses, and the shape of returned records. The remaining gap—pagination behavior—is partly covered by schema descriptions, so the definition is adequate for correct invocation.
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 coverage is 100% (page, status, orderby, page_size all documented), so the baseline is 3. The description adds concrete status values beyond the schema's example list—adding draft and all_signed alongside published, completed, rejected, canceled, expired—which materially helps the agent construct a valid status filter.
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?
Uses a specific verb (List) and resource (sign requests), and parenthetically defines the resource as documents sent for e-signing, which helps an agent understand the domain object. Sibling differentiation is implicit: 'list' vs 'get_sign_request' is obvious, but the description never names an alternative like get_sign_request_by_external_key or get_sign_request_progress.
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?
Usage is implied by the title and list semantics, and status filtering is described. However, there is no explicit when-to-use guidance relative to siblings (e.g., when to call this versus get_sign_request_progress or list_documents), nor any stated exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stiply_send_reminderSend a reminderADestructiveInspect
WRITE: email a reminder to the signers who have not signed yet. Stiply API: POST /v2/sign_requests/{id}/actions/send_reminder.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_request_id | Yes | The sign request id (from stiply_list_sign_requests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The 'WRITE:' prefix and the endpoint give some behavioral context, and it does not contradict destructiveHint=true, but it repeats the mutation signal the annotation already carries. It says nothing about whether reminders can be sent repeatedly, rate limits, or what happens if no signers are pending.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and scope, with the API endpoint as secondary detail. Nothing wasted.
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 single-parameter action with no output schema, the description covers what is sent, to whom, and the underlying call. Missing only edge-case behavior such as what happens when no signers are outstanding.
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 coverage is 100% with a single required sign_request_id that already documents its origin (stiply_list_sign_requests). The description adds no meaning beyond the schema, which is the expected baseline for full 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?
States a specific verb and resource ('email a reminder to the signers who have not signed yet') and even names the endpoint, so an agent can tell it apart from stiply_extend_term or stiply_cancel_sign_request. It stops short of explicitly contrasting with those siblings by 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 target audience ('signers who have not signed yet') implies when to use it, but there is no explicit when-not guidance, no note about cooldowns or repeat sends, and no mention of the alternative stiply_extend_term for unsigned signers.
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.
10 tool updates
- First observed
stiply_cancel_sign_request - First observed
stiply_create_sign_request - First observed
stiply_extend_term - First observed
stiply_get_sign_request - First observed
stiply_get_sign_request_by_external_key - First observed
stiply_get_sign_request_progress - First observed
stiply_list_documents - First observed
stiply_list_sign_requests - First observed
stiply_list_signers - First observed
stiply_send_reminder
Related MCP Connectors
Read and send documents for signature — templates, recipients, fields and folders.
- signOAuthpro.tvarka
Qualified and simple e-signatures: request signing, track ceremonies and download signed documents.
Send documents for e-signature from templates, track status, remind signers, get signed PDFs.
E-signature API: send documents for signature, track envelopes, get signed files.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables managing electronic signatures and contracts through the eSignatures API, including creating, sending, and withdrawing contracts, as well as managing templates and collaborators.13MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and developers to create, send, and follow up on contracts for e-signature, manage signers and templates, retrieve signed PDFs and audit trails, and verify PDF signatures. It keeps signing and declining in the hands of each signer through personal links.1MIT
- AlicenseAqualityDmaintenanceEnables interaction with the BoldSign e-signature platform through its API. Supports managing documents, templates, contacts, users, and teams for electronic signature workflows.1442 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to send documents for e-signature, track signing status, remind pending signers, and download signed PDFs with audit-trail hashes via the AddSign API.627 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.