FreeSign — Free e-signature

Free e-signature for humans and AI agents — zero-document PDF signing from hashes only.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
84%
命名品質
100%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,244Token(工具定義)
~2.1 KB典型回應大小
中等的注意力影響(128k 上下文的 0.97%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "signing": {
      "url": "https://free-sign.com/mcp"
    }
  }
}

遠端端點

https://free-sign.com/mcpstreamable-http

它能做什麼

工具清單

工具(5)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡create_signing_envelope(document_sha256)

Create a FreeSign envelope from a PDF SHA-256 hash. Do not send PDF bytes. The created envelope is NOT yet session-bound — the browser that opens the returned signing_url generates an ECDSA P-256 keypair locally and POSTs the public JWK to /api/envelopes/{id}/session-bind before any protected request will succeed. AI agents calling this tool just hand the signing_url to a human, who continues in a browser.

輸入結構描述

{
  "type": "object",
  "properties": {
    "document_sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "SHA-256 of the original PDF bytes, computed locally by the user or agent."
    }
  },
  "required": [
    "document_sha256"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "envelope_id": {
      "type": "string"
    },
    "signing_url": {
      "type": "string"
    },
    "expires_at": {
      "type": "string"
    },
    "session_binding_required": {
      "type": "boolean",
      "description": "True when the envelope still needs the browser to call /api/envelopes/{id}/session-bind. Always true for MCP-created envelopes."
    }
  },
  "required": [
    "envelope_id",
    "signing_url",
    "expires_at"
  ]
}
🟢verify_document_hash(document_sha256)

Find FreeSign receipts matching a local document SHA-256 hash.

輸入結構描述

{
  "type": "object",
  "properties": {
    "document_sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "required": [
    "document_sha256"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "matches": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "matches"
  ]
}
🟢get_receipt(envelope_id)

Return the envelope record (including final_pdf_sha256, final_signature_base64url, final_payload_json), per-signer signing receipts, and OpenTimestamps anchor metadata. Evidence only, never PDF bytes.

輸入結構描述

{
  "type": "object",
  "properties": {
    "envelope_id": {
      "type": "string"
    }
  },
  "required": [
    "envelope_id"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "envelope": {
      "type": "object"
    },
    "receipts": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "ots_anchors": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "envelope",
    "receipts",
    "ots_anchors"
  ]
}
🟡get_ots_proof(envelope_id, anchor_id)

Return the .ots proof (base64) for a given OpenTimestamps anchor on an envelope. Use the official `ots-cli` to verify offline against Bitcoin block headers. Each seal has two anchors: `kind: "byterange"` commits to the signed document, `kind: "signed_attrs"` commits to SHA-256 of the CMS SignedAttributes (which carry the post-quantum key commitment).

輸入結構描述

{
  "type": "object",
  "properties": {
    "envelope_id": {
      "type": "string",
      "pattern": "^env_[a-f0-9]{32}$"
    },
    "anchor_id": {
      "type": "string",
      "pattern": "^ots_[a-f0-9]{32}$"
    }
  },
  "required": [
    "envelope_id",
    "anchor_id"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "envelope_id": {
      "type": "string"
    },
    "anchor_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "confirmed"
      ]
    },
    "kind": {
      "type": "string",
      "enum": [
        "byterange",
        "signed_attrs"
      ]
    },
    "anchored_hash": {
      "type": "string"
    },
    "proof_base64": {
      "type": "string",
      "description": "Complete .ots file bytes, base64."
    },
    "calendar_urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "btc_block_height": {
      "type": [
        "integer",
        "null"
      ]
    },
    "btc_block_hash": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "envelope_id",
    "anchor_id",
    "status",
    "anchored_hash",
    "proof_base64"
  ]
}
⚪verify_audit_chain(envelope_id)

Return an envelope's append-only audit-event hash chain together with a server-computed integrity verdict: every event_hash is recomputed from its canonical material, and the prev_event_hash linkage and per-envelope seq contiguity are checked. Evidence only, never PDF bytes. The raw events are included verbatim so the caller can independently re-derive the verdict instead of trusting `chain.valid`.

輸入結構描述

{
  "type": "object",
  "properties": {
    "envelope_id": {
      "type": "string",
      "pattern": "^env_[a-f0-9]{32}$"
    }
  },
  "required": [
    "envelope_id"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "envelope_id": {
      "type": "string"
    },
    "attested_audit_chain_head_hash": {
      "type": [
        "string",
        "null"
      ],
      "description": "The audit-chain head derived from the signer-signed v2 final payload (G-01), fed into the verdict's head cross-check. NULL until the envelope is finalized."
    },
    "attested_head_signature_verified": {
      "type": "boolean",
      "description": "True when the final-payload signature carrying the attested head was re-verified against the signer's on-file public key. False when not finalized or the signature did not verify."
    },
    "chain": {
      "type": "object",
      "properties": {
        "valid": {
          "type": "boolean"
        },
        "event_count": {
          "type": "integer"
        },
        "broken_at": {
          "type": [
            "integer",
            "null"
          ],
          "description": "seq of the first broken event, or null (also null for a head_mismatch — no single event is at fault)."
        },
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "hash_mismatch",
            "broken_link",
            "seq_bad_start",
            "seq_gap",
            "seq_duplicate",
            "head_mismatch",
            null
          ]
        },
        "head_checked": {
          "type": "boolean",
          "description": "True when an attested head was supplied and cross-checked against the recomputed chain."
        },
        "head_match": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Result of the head cross-check, or null when no attested head was available."
        },
        "events": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "required": [
        "valid",
        "event_count",
        "broken_at",
        "reason",
        "head_checked",
        "head_match",
        "events"
      ]
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "envelope_id",
    "attested_audit_chain_head_hash",
    "attested_head_signature_verified",
    "chain",
    "events"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本5 個工具
已驗證未記錄版本5 個工具