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,244토큰 (도구 정의)
~2.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.97%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개