Back to browse
GitHub Repository

Human attestation for sensitive MCP tool calls (an experiment)

2 starsPython

CoSig – WebAuthn co-signing for MCP tool calls

by _skyforest·Mar 3, 2026·4 points·1 comment

AI Analysis

●●SolidBig BrainBold Bet

WebAuthn decorators add YubiKey approval gates to MCP tools, but alpha-stage and requires external cloud server.

Strengths
  • Non-repudiation via cryptographic signing solves genuine compliance audit requirement gaps
  • Hardware token requirement (YubiKey, Touch ID) prevents social engineering and AI-only approval
  • Audit log hash chaining prevents tampering, addressing SOX/HIPAA documentation concerns
Weaknesses
  • Alpha release (v0.2.0a1) with explicit 'security audit recommended before production' disclaimer
  • Requires separate cosig-cloud deployment: adds operational complexity and external dependency, not self-contained
Category
Target Audience

Enterprises deploying AI agents with MCP servers requiring compliance-grade approval audit trails

Similar To

1Password CLI · Vault API approval workflows

Post Description

I built CoSig because I kept running into the same problem while working with MCP servers: there's no standard way to require cryptographic proof that a human actually authorized what your AI agent just did (or is about to do).

This matters more than it sounds. Your compliance team will eventually ask "who approved the deletion of those customer records?" Your auditors will want to know who signed off on that production deploy. Your incident response playbook assumes a human made a decision somewhere. With vanilla MCP, the answer is "the AI did it because the AI was told it could"... which is not an answer that satisfies a SOX auditor, a HIPAA compliance review, or your own postmortem.

The solution I landed on: WebAuthn co-signing. You put @require_approval() on the sensitive FastMCP tools. When an agent tries to call one, execution blocks, a URL gets surfaced, and the human approves by tapping a hardware security key (YubiKey, etc.) or their device's built-in biometrics (Touch ID, Windows Hello). The signature is tied to that specific request, with a counter that prevents replay and gets stored in an append-only audit log. Then the tool runs.

It's two repos: a lightweight Python SDK (pip install cosig) and CoSig Cloud, a self-hosted Next.js + FastAPI backend you run on your own infrastructure. Nothing phones home. Your audit logs stay yours.

This is alpha, v0.2.0a1. APIs will change and a security review is recommended before production use. But the core flow works and there's a demo linked below showing it end-to-end.

I'd especially like to hear from people building MCP servers for regulated industries, or anyone who's already thought through the "who authorized this AI action" problem and landed somewhere different.

SDK: https://github.com/skyforest/cosig Backend: https://github.com/skyforest/cosig-cloud Demo: https://www.youtube.com/watch?v=7AeMJ3ViV5E

Similar Projects

Security●●●Banger

verifiable API and MCP calls

Signed receipts for AI agent actions solve an accountability problem that didn't exist before MCP.

Zero to OneBig Brain
jithinraj
311mo ago
Security●●●Banger

VellaVeto — blocks unsafe MCP tool calls by default

Fail-closed MCP gateway with formal verification and MCPSEC benchmark suite.

Big BrainWizardryZero to One
paolovella
212mo ago
Infrastructure●●●Banger

Evidra – a fail-closed MCP guardrail for AI infrastructure ops

Fail-closed guardrail for AI agent infrastructure access—kills unsafe ops before they ship.

Solve My ProblemWizardry
vitass
113mo ago