Stiply MCP by usefulapi
Read sign requests and signers; send, remind, extend and cancel sign requests in Stiply.
我该使用它吗
质量与安全性
发现(2)
- LOW在 stiply_get_sign_request_by_external_key 中
- LOW在 stiply_get_sign_request_progress 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"stiply": {
"url": "https://stiply.usefulapi.io/mcp"
}
}
}远程端点
https://stiply.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(10)
🟢stiply_list_sign_requests(status, orderby, page, page_size)
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.
输入模式
{
"type": "object",
"properties": {
"status": {
"description": "Filter by status, e.g. published, completed, rejected, canceled, expired.",
"type": "string"
},
"orderby": {
"description": "Sort order, e.g. 'created_at desc'.",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Results per page (max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stiply_get_sign_request(sign_request_id)
Get one sign request by id: status, timestamps, message, reject reason, owner. Stiply API: GET /v2/sign_requests/{id}.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
}
},
"required": [
"sign_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stiply_get_sign_request_by_external_key(external_key)
Find a sign request by the external_key set when it was created. Stiply API: GET /v2/sign_requests/by_key/{external_key}.
输入模式
{
"type": "object",
"properties": {
"external_key": {
"type": "string",
"minLength": 1,
"description": "The external key given at creation."
}
},
"required": [
"external_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stiply_get_sign_request_progress(sign_request_id)
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.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
}
},
"required": [
"sign_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stiply_list_signers(sign_request_id)
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.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
}
},
"required": [
"sign_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢stiply_list_documents(sign_request_id)
List the documents attached to a sign request (metadata only, no file download). Stiply API: GET /v2/sign_requests/{id}/documents.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
}
},
"required": [
"sign_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴stiply_create_sign_request(title, file_urls, signers, subject, message, ...)
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.
输入模式
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 250,
"description": "Title of the sign request."
},
"file_urls": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Public https URLs of the PDF documents to sign."
},
"signers": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 128,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"name": {
"type": "string",
"maxLength": 255
},
"role": {
"description": "Default signer. approver needs signing_sequence_type=sequential.",
"type": "string",
"enum": [
"signer",
"approver",
"cc",
"dc"
]
},
"allow_add_fields": {
"description": "Let the signer place signature fields by clicking. Role signer only. Use this OR fields.",
"type": "boolean"
},
"fields": {
"description": "Fields for this signer. A signer needs a signature field unless allow_add_fields is true.",
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"signature",
"initial",
"text",
"date",
"checkbox",
"radio"
],
"description": "Field type."
},
"name": {
"description": "Tag name: every {{name}} in the documents becomes the field.",
"type": "string"
},
"document": {
"description": "1-based document index (for placement by coordinates).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"optional": {
"type": "boolean"
},
"field_group": {
"type": "string"
}
},
"required": [
"type"
]
}
}
},
"required": [
"email"
]
},
"description": "Who receives the request."
},
"subject": {
"description": "Email subject for the signers.",
"type": "string"
},
"message": {
"description": "Email message. Basic HTML only; use <br> for newlines.",
"type": "string"
},
"signing_sequence_type": {
"type": "string",
"enum": [
"sequential",
"parallel"
]
},
"term": {
"description": "How long signers have, e.g. 1d, 2w, 3m. Default: the account setting.",
"type": "string",
"pattern": "^[1-9][dwm]$"
},
"external_key": {
"description": "Your own unique key to find this request later.",
"type": "string"
}
},
"required": [
"title",
"file_urls",
"signers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴stiply_send_reminder(sign_request_id)
WRITE: email a reminder to the signers who have not signed yet. Stiply API: POST /v2/sign_requests/{id}/actions/send_reminder.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
}
},
"required": [
"sign_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴stiply_extend_term(sign_request_id, term, notify_signers)
WRITE: extend the signing term of a sign request. Stiply API: POST /v2/sign_requests/{id}/actions/extend_term.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
},
"term": {
"type": "string",
"pattern": "^[1-9][dwm]$",
"description": "New term, e.g. 1d, 2w, 3m."
},
"notify_signers": {
"description": "Tell the signers (default true).",
"type": "boolean"
}
},
"required": [
"sign_request_id",
"term"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴stiply_cancel_sign_request(sign_request_id, notify_signers, cancellation_message)
WRITE: cancel a sign request. This cannot be undone. Stiply API: POST /v2/sign_requests/{id}/actions/cancel.
输入模式
{
"type": "object",
"properties": {
"sign_request_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The sign request id (from stiply_list_sign_requests)."
},
"notify_signers": {
"type": "boolean",
"description": "Whether the signers get a cancellation email."
},
"cancellation_message": {
"description": "Optional message shown to the signers.",
"type": "string",
"maxLength": 2000
}
},
"required": [
"sign_request_id",
"notify_signers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据