Setup & Installation
Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:
What This Skill Does
SchemaPin prevents "MCP Rug Pull" attacks by letting developers cryptographically sign tool schemas with ECDSA P-256 and clients verify those signatures haven't been tampered with. It uses Trust-On-First-Use key pinning and RFC 8615 `.well-known` endpoints for public key discovery. Available in Python, JavaScript, Go, and Rust.
Cross-language ECDSA P-256 compatibility means a schema signed in Python can be verified in Go or Rust without any format conversion.
When to use it
- Signing MCP tool schemas before publishing to a public registry
- Verifying tool schemas haven't been modified at agent startup
- Validating skill directories offline in air-gapped CI/CD pipelines
- Detecting modified, added, or removed files in a signed skill folder
- Revoking a compromised signing key and propagating that revocation to clients
Example Workflow
Here's how your AI assistant might use this skill in practice.
User asks: Sign my tool schema and publish my public key so clients can verify it
- 1Generate an ECDSA P-256 keypair with KeyManager.generate_keypair()
- 2Canonicalize the schema with SchemaPinCore().canonicalize_schema(schema_dict)
- 3Sign the canonical schema with SignatureManager.sign_schema(private_key, canonical)
- 4Publish the public key at /.well-known/schemapin.json using create_well_known_response()
- 5Distribute the base64 signature alongside the schema for client verification
A signed schema with a live .well-known endpoint; clients verify the signature and pin the key fingerprint on first contact, rejecting any future key substitution for that domain