OKSign MCP by usefulapi
Read documents, signatures, contacts and credits; manage contacts and remove documents.
我该使用它吗
质量与安全性
发现(1)
- LOW在 oksign_list_notification_errors 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"oksign": {
"url": "https://oksign.usefulapi.io/mcp"
}
}
}远程端点
https://oksign.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(14)
🟢oksign_get_credits
The account's remaining credits (quantity), when they expire (validuntil), the plan (subscription), whether it is paid, and storage used (account_size) versus the maximum (max_account_size) in bytes. GET /v1/credits/retrieve.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_list_users(limit, offset)
The users of the OKsign account: name, email, mobile, role, status, language and the immutable signerid (use it to tell who signed). GET /v1/users/retrieve.
输入模式
{
"type": "object",
"properties": {
"limit": {
"description": "Items to return, 1-500 (default 100). OKsign has no paging; the list is cut here.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Items to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_list_email_templates(limit, offset)
The email templates defined in the account: id, name, subject, HTML body, reminder_days and repeat. GET /v1/email-templates/retrieve.
输入模式
{
"type": "object",
"properties": {
"limit": {
"description": "Items to return, 1-500 (default 100). OKsign has no paging; the list is cut here.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Items to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_list_contacts(limit, offset)
The account's contact list: name, email, mobile, actingas (capacity) and group. GET /v1/contacts/retrieve.
输入模式
{
"type": "object",
"properties": {
"limit": {
"description": "Items to return, 1-500 (default 100). OKsign has no paging; the list is cut here.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Items to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_list_active_documents(signed, orgtoken, filename_contains, limit, offset)
Documents in the account's Active Documents tab: docid, filename, creator, createdate, signatures required/valid, orgtoken, status (1 active, 10 briefcase, 11 document in a briefcase, 12 reusable, 14 template), viaapi and signed_docid when signed. OKsign allows this call only once every 3 minutes (429 otherwise). GET /v1/documents/active.
输入模式
{
"type": "object",
"properties": {
"signed": {
"description": "true = only documents that have a signed copy, false = only those without.",
"type": "boolean"
},
"orgtoken": {
"description": "Only documents uploaded with this organizational token.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"filename_contains": {
"description": "Only documents whose filename contains this text (case-insensitive).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"limit": {
"description": "Items to return, 1-500 (default 100). OKsign has no paging; the list is cut here.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Items to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_list_signed_documents(start, end, limit, offset)
Documents uploaded through the API that were signed between two moments: signed_docid, source_docid, filename, signerid, signing source, signature counts, completed fields, credits per signer and timestamp. Keep the window short; OKsign allows this call only once every 3 minutes (429 otherwise). GET /v1/documents/signed.
输入模式
{
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Start of the window, ISO 8601 with a timezone."
},
"end": {
"type": "string",
"description": "End of the window, ISO 8601 with a timezone."
},
"limit": {
"description": "Items to return, 1-500 (default 100). OKsign has no paging; the list is cut here.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Items to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_list_notification_errors(start, end, limit, offset)
Email and SMS delivery problems (hard_bounce, soft_bounce, blocked, spam, invalid_email, deferred) for signing invitations sent between two moments: recipient, source_docid, reason, orgtoken and timestamp. Only error events are reported. OKsign allows this call only once every 3 minutes (429 otherwise). GET /v1/webhooks/retrieve.
输入模式
{
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Start of the window, ISO 8601 with a timezone."
},
"end": {
"type": "string",
"description": "End of the window, ISO 8601 with a timezone."
},
"limit": {
"description": "Items to return, 1-500 (default 100). OKsign has no paging; the list is cut here.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500
},
"offset": {
"description": "Items to skip (default 0). Pass the previous reply's next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"required": [
"start",
"end"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_document_exists(docid)
Whether a (signed) document still exists on the platform; returns its filename and whether it is a template. GET /v1/document/exists.
输入模式
{
"type": "object",
"properties": {
"docid": {
"type": "string",
"pattern": "^[0-9A-Za-z-]{10,80}$",
"description": "OKsign document id (docid, source_docid or signed_docid) like 670816-483B7F54-8591-DDF9-FA77-9042AED3E8FD."
}
},
"required": [
"docid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_get_document_metadata(signed_docid)
Metadata of a signed document (pass the signed_docid): filename, size, signatures required/valid, who signed, and the values of all completed fields (can contain personal data). Metadata v2. GET /v2/metadata/retrieve.
输入模式
{
"type": "object",
"properties": {
"signed_docid": {
"type": "string",
"pattern": "^[0-9A-Za-z-]{10,80}$",
"description": "OKsign document id (docid, source_docid or signed_docid) like 670816-483B7F54-8591-DDF9-FA77-9042AED3E8FD."
}
},
"required": [
"signed_docid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_get_form_descriptor(docid)
The form descriptor of an uploaded document: its signature and form fields (type, page, position, signer, required, signing options) and the signing URL of each signer. The URLs let their holders sign, so share them only with the signer. GET /v1/formdesc/retrieve.
输入模式
{
"type": "object",
"properties": {
"docid": {
"type": "string",
"pattern": "^[0-9A-Za-z-]{10,80}$",
"description": "OKsign document id (docid, source_docid or signed_docid) like 670816-483B7F54-8591-DDF9-FA77-9042AED3E8FD."
}
},
"required": [
"docid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢oksign_get_linked_document(docid)
Given a source_docid, the signed_docid of its signed copy (absent if not signed yet) and the timestamp; given a signed_docid, the source_docid. An empty result means the document never existed here or was removed. GET /v1/linkedlist/retrieve.
输入模式
{
"type": "object",
"properties": {
"docid": {
"type": "string",
"pattern": "^[0-9A-Za-z-]{10,80}$",
"description": "OKsign document id (docid, source_docid or signed_docid) like 670816-483B7F54-8591-DDF9-FA77-9042AED3E8FD."
}
},
"required": [
"docid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴oksign_upsert_contacts(contacts)
WRITE: add contacts to the account's contact list, or update them when a contact with the same email AND name exists (its other fields are replaced). Existing contacts are never cleared. Contacts OKsign rejects are skipped and reported. POST /v1/contacts/upload.
输入模式
{
"type": "object",
"properties": {
"contacts": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"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,}$",
"description": "Email address (with name, the contact's unique key)."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Full name (with email, the contact's unique key)."
},
"actingas": {
"description": "Capacity or status, e.g. CEO, Shareholder, Client.",
"type": "string",
"maxLength": 200
},
"mobile": {
"description": "Mobile number in E.164 format, e.g. +32495123456.",
"type": "string",
"pattern": "^\\+[1-9]\\d{6,14}$"
},
"group": {
"description": "Contact group.",
"type": "string",
"maxLength": 200
}
},
"required": [
"email",
"name"
]
},
"description": "Contacts to add or update."
}
},
"required": [
"contacts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴oksign_remove_contacts(contacts)
WRITE: permanently remove contacts from the account's contact list. A contact is identified by its email AND name. Cannot be undone (re-add with oksign_upsert_contacts). POST /v1/contacts/remove.
输入模式
{
"type": "object",
"properties": {
"contacts": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"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,}$",
"description": "Email address of the contact to remove."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Name of the contact to remove (email AND name identify a contact)."
}
},
"required": [
"email",
"name"
]
},
"description": "Contacts to remove (email and name)."
}
},
"required": [
"contacts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴oksign_remove_document(docid)
WRITE: permanently remove a (signed) document from the OKsign platform. This deletes the file and its pending webhook events and cannot be undone. A signed document removed right after its callback may answer 'Too soon': retry later. DELETE /v1/document/remove.
输入模式
{
"type": "object",
"properties": {
"docid": {
"type": "string",
"pattern": "^[0-9A-Za-z-]{10,80}$",
"description": "OKsign document id (docid, source_docid or signed_docid) like 670816-483B7F54-8591-DDF9-FA77-9042AED3E8FD."
}
},
"required": [
"docid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据