FreeSign — Free e-signature

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
84%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,244Tokens (definiciones de herramientas)
~2.1 KBTamaño de respuesta típico
Impacto moderado en la atención (0.97% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (5)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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.

Esquema de entrada

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

Esquema de salida

{
  "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.

Esquema de entrada

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

Esquema de salida

{
  "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).

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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`.

Esquema de entrada

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

Esquema de salida

{
  "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"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada5 herramientas
verificadoversión no registrada5 herramientas