emilia-mcp-server
OfficialThis server implements the EMILIA Protocol (EP) — a trust enforcement and verification infrastructure for AI agents and high-risk actions, enabling cryptographic consent, identity verification, and auditable authorization workflows.
Trust Evaluation
Retrieve full trust profiles (completion rates, anomaly alerts, confidence scores)
Evaluate entities against policies (strict/standard/permissive) to get allow/review/deny decisions
Run pre-action trust gates before payments, installs, or irreversible actions
Get domain-specific trust scores (financial, code execution, communication, etc.)
Receipt & Ledger Management
Submit individual or batch (up to 50) transaction receipts to an append-only, cryptographically hashed ledger
Verify receipts against on-chain Merkle roots
Configure automatic receipt generation for a session
Disputes & Appeals
File disputes challenging receipts (fraud, inaccurate signals, duplicates)
Track dispute status and appeal resolutions
Report broader trust issues (wrongful downgrades, harm by trusted entities)
Entity & Principal Management
Register entities (agents, merchants, MCP servers, packages, extensions)
Search entities by name, capability, or category; view trust leaderboards
Look up the enduring principal behind multiple entities and inspect lineage (predecessors, successors, whitewashing flags)
Delegation
Create delegation records authorizing agents to act on a principal's behalf with defined scope, expiry, and constraints
Verify delegations and assess a principal's judgment in authorizing agents
Handshakes (Cryptographic Consent)
Initiate structured identity exchanges between parties
Submit identity proofs (verifiable credentials, attestations) and verify them against a governing policy
Retrieve handshake state or revoke active handshakes
Commits (Atomic Action Authorization)
Issue signed pre-action authorization tokens binding agent, action, entity, and policy
Verify, check status, revoke, or fulfill commits by linking post-action receipts to them
Zero-Knowledge Proofs
Generate privacy-preserving proofs attesting to trust claims (score thresholds, receipt counts) without revealing underlying transaction details
Verify shared proofs without learning any private data
Software Installation Safety
Run preflight trust checks on plugins, apps, packages, and extensions before installation
Wraps LangChain tools with EMILIA authorization gates, enabling policy evaluation, human signoff, and verifiable receipts for agent actions via the langchain-emilia package.
EMILIA Protocol
Protocol proves. Gate prevents.
EMILIA Gate is the commercial Consequence Firewall that prevents consequential machine actions on protected executor paths without verifiable authority. It sits at the executor or system-of-record boundary, refuses before mutation, consumes accepted authorization once, and leaves evidence another party can verify.
EMILIA is the authority control plane for autonomous work: a human or institution defines a finite operating mandate once, agents work unattended inside it, and Gate enforces each consequential unit of work.
Scan (npx @emilia-protocol/scan) → protect one privileged MCP tool call → $25K pilot.
EMILIA Protocol is the open Apache-2.0 verification and evidence substrate underneath Gate.
EMILIA Approver captures device-bound human decisions over the exact action through native apps and embeddable SDKs.
EMILIA Assurance Plane provides scoped verification, re-performance, conformance reports, and deployment evidence. It supports auditors, insurers, regulators, and customers; EMILIA is not an auditor or accredited certifier, and no public EMILIA certification program is operating.
Start free by protecting one privileged MCP tool call. The first paid market is payer AI-assisted adverse medical-necessity determination, under one safety rule: no valid licensed-review evidence, no adverse determination. Missing evidence routes to lawful human review or a patient-protective fallback; it is not authority to withhold medically necessary care.
AI systems and repository reviewers: start with AI_CONTEXT.md. Current machine-readable evidence, provenance, assumptions, and exclusions are published at EMILIA-REPO-CONTEXT-v1. Archived or staged documents do not establish current implementation or IETF status. Public due-diligence evidence and claim boundaries: DUE_DILIGENCE.md.
Related MCP server: evermint-mcp
Engineering evidence, not architecture claims
EMILIA ships a security case that reviewers can execute. The current repository resolves 35 security claims over 255 hashed evidence files, verifies 20 Tamarin lemmas across two composed Dolev-Yao models — 17 all-traces obligations and 3 exists-trace reachability witnesses — and preserves 8 deliberately weakened variants that produce concrete attack traces when load-bearing checks are removed. The live same-team conformance corpus contains 21 suites and 331 current vectors. Separately, an externally authored Rust verifier is pinned to the frozen 16-suite/164-vector bundle and a 359-case hostility campaign. The broader suite contains 8,659+ automated tests across 509+ files.
Production JavaScript and JSDoc surfaces are compiler-checked with TypeScript
checkJs; the secure app has its own compatibility compiler project, while
declarations and the public TypeScript SDK are checked in strict mode. This is
complete configured production type-check coverage, not a claim that the
repository was converted wholesale from JavaScript to TypeScript or that every
JavaScript project has TypeScript's strict option enabled.
Each security claim names the enforcement path, positive and negative vectors, language coverage,
formal scope or explicit gap, assumptions, exclusions, and evidence hash. Start with the
human-readable evidence map, then inspect the
resolved security case or run npm run check:security-case.
AEB-1: test the evidence-to-effect boundary
The open AEB-1 Consequence Admission Conformance
pack tests the last control point before a consequential action: native
verification, relying-party acceptance, exact CAID/action matching, evidence satisfaction, local
authorization, atomic one-time reservation, INVOKING custody, separate
provider-outcome and observed-effect truth, no-blind-retry behavior, and
authenticated reconciliation.
npx @emilia-protocol/verify aeb-conformance --referenceIt is format-neutral and self-run. A passing report is self-attested conformance evidence—not an audit, certification, production-deployment claim, or permission to execute an action.
For a focused executable proof of the repository's Gate path, run:
npm run proof:gate:referenceThis command exercises local examples and focused service boundaries with generated keys, in-memory state, and mock provider behavior. It is useful local proof, not evidence of a real human, external bank, production deployment, or one end-to-end production integration.
The engine without brakes
For fifty years, software security answered one question: who is allowed in? Firewalls, OAuth, and passwords — all built to verify a human identity at the door.
That era is ending. The dominant users of software are no longer humans; they're autonomous AI agents. Agents don't just log in — they write code, call tools, and change reality on the fly. Every CISO knows a single bad prompt can make an agent wipe a production database or wire money to the wrong account. So they're blocking deployment — sitting on billions in AI budget they can't spend because their compliance teams can't answer one question:
Who approved that action?
The crisis of our generation isn't authentication. It's authorization at the moment of action: how do you prove that what an agent is about to do is exactly what a named human authorized — before it executes?
EMILIA is the seatbelt for the agentic era.
Decision logs are testimony. EMILIA produces receipts.
No receipt, no irreversible action
If an agent tries to move money, delete code, deploy production, change permissions, or mutate regulated state without a valid EMILIA receipt, the tool refuses to run — and if it runs, anyone can verify who authorized exactly what, offline, trusting no one.
That is the whole protocol. The developer wedge is one wrapper around an irreversible MCP tool. See it cold, fully offline, no key, no account — each demo runs the entire loop (refused → named human signs the exact action → tool runs → forged receipt rejected):
node examples/mcp/payment-server.mjs # release_payment — refuses without a receipt
node examples/mcp/github-admin.mjs # delete_repo — refuses without a receipt
node examples/mcp/prod-deploy.mjs # deploy_production — refuses without a receiptThe deeper composition demo executes a CAID-bound delegated payment through Gate's real bounded-capability path, then verifies the signed execution certificate offline:
npm run demo:receipt-programIt deliberately includes no blockchain or simulated zero-knowledge claim. See the receipt-program architecture for the production state and trust requirements.
Start with a dry run against your declared tool surface, then generate the reviewable integration files:
npx @emilia-protocol/scan protect ./tools.json
npx @emilia-protocol/scan protect ./tools.json --apply
node emilia/verify-setup.mjsThe generated local check uses explicitly ephemeral demo state and proves only
that its synthetic handler was not called. Production requires a durable provenance ledger,
a shared atomic consumption store, pinned keys, and the wrapper on every path to the real
provider credential. See
examples/mcp/ and /mcp.
Try it in 30 seconds
# Issue a receipt offline — no API key, no backend needed
npx @emilia-protocol/issue demo# Add EMILIA to Claude / Cursor / Cline
npx -y @emilia-protocol/mcp-serverTry a real Face ID signoff → Approve an $82,000 wire with your own passkey. See what VERIFIED looks like. Forge the receipt. See it fail.
Verify any receipt in your browser — paste it in, nothing is uploaded.
How it works — four acts

Run it yourself:
node examples/crash-test.mjs— fully offline, no API key.
[ INTENT ] [ DECISION ] [ CEREMONY ] [ RECEIPT ]
Agent calls a Policy-bound, hash- Named human signs Signed, offline-
tool via MCP → pinned: allow / → the EXACT action → verifiable proof.
allow-with-signoff / on their own Tamper it:
deny (+observe device (passkey). fails by design.
mode: zero change What they saw =
to production) what they signed.Act I — Interception (MCP-native). No rewrites. EMILIA hooks the tool call at the Model Context Protocol boundary — the moment an agent tries to delete a file or move capital, the action is caught mid-air.
Act II — Decision (policy-bound, deterministic). The action is checked against a hash-pinned policy: allow, allow-with-signoff, or deny. Plus an observe mode that changes nothing in production and reports what would have been held. Deterministic, auditable — not a black-box risk score.
Act III — The ceremony (device-bound human signoff). When policy requires a human, EMILIA runs a WebAuthn / passkey signoff bound to the exact action and its deterministic display hash — Face ID / Touch ID on the operator's own device. Class-A approvals also bind a server-measured review interval and an action-specific confirmation phrase, with a durable per-approver velocity limit. This narrows the "what you saw is what you signed" gap; it does not prove comprehension. A correctly installed protected path cannot skip the ceremony.
For enterprise deployments, Gate can additionally require an independently verified Authorization Server confirmation bound to that exact human evidence, the same exact action, the identity snapshot the AS actually observed, and the intended Resource Server key. The snapshot time and relying-party maximum age are explicit: a fresh token cannot make stale directory data current. The AS leg is evidence under customer-pinned trust; it never authorizes by itself, proves instantaneous employment standing, or turns the agent orchestrator into an authority.
Act IV — The receipt (the evidence). The result is a signed authorization receipt that anyone can verify offline, with open-source code, no backend, no vendor trust. Tamper it and verification fails by construction. Optionally anchor it for public timestamping — the core needs no blockchain.
Why developers use it
You want agents that actually do things — but you're paralyzed by runaway loops, API over-spend, and accidental data destruction. EMILIA gives you a plug-and-play MCP server + a thin SDK wrapper. Apply a policy hash, and irreversible tool calls gain a cryptographically hardened, NIST-AI-RMF-mapped approval-and-evidence layer — without building approval workflows or audit infrastructure from scratch.
# langchain-emilia — wrap any LangChain tool with an EP gate
from langchain_emilia import EmiliaGateClient
gate = EmiliaGateClient(base_url="https://www.emiliaprotocol.ai", api_key="...")
safe_tool = gate.wrap(your_destructive_tool)pip install langchain-emilia # PyPI
npm install @emilia-protocol/verify # npmYour agent can't outrun its leash.
Why enterprises need it
Every platform shift mints a new security primitive: the web got SSL, the cloud got Okta / IAM, the agent economy needs action-level trust. Enterprises are sitting on AI budgets that compliance won't let them spend — EMILIA is the key that unlocks them, by turning unpredictable agents into audit-ready infrastructure that maps primitive-by-primitive to NIST AI RMF, EU AI Act, and SOC 2 CC6/7 controls.
The managed Gate and Assurance Plane extend the open standard with sector-specific policy packs, observe-mode pilots, and audit-ready evidence packages, with no procurement required to start.
The standard
EMILIA Protocol is open and Apache-2.0. Its standards work is published as a portfolio of individual Internet-Drafts. A published Internet-Draft is not an RFC, an adopted working-group item, or IETF endorsement; Datatracker is authoritative for revision and status.
Canonical four-document presentation surface
For reader navigation, the canonical evidence path is:
Authorization Receipts-10 defines the action-bound approval-evidence profile. The current posted revision is -10, filed as a Standards Track candidate individual submission.
Human Authorization Binding-00 binds a named-human authorization artifact into an adjacent host record.
Authority Introduction-03 establishes relying-party-pinned trust roots and scoped authority.
Authorization Evidence Chain-05 evaluates whether natively verified, action-matched evidence satisfies the relying party's requirement; it returns
SATISFIEDorUNSATISFIED, neverAUTHORIZED.
This four-document surface is presentation only. It does not merge, retire, replace, update, obsolete, subordinate, or demote any draft in the active portfolio.
Separate runtime execution spine
The runtime path is Architecture-02 → CAID-02 → AEC-05 → AEB-03: system boundaries, exact material-action matching, evidence satisfaction, then executor-side admission and one-time consequence custody. AEC appears in both views because evidence satisfaction feeds runtime admission, not because the views are equivalent.
The complete active portfolio remains 23 Datatracker records: 20 active
draft-schrock-* records and three coauthored records, each with its own scope
and revision history. See the standards guide,
portfolio, and machine-readable
status inventory.
IETF Internet-Drafts | Current local snapshots: posted inventory · authoritative live status: IETF Datatracker |
Cross-language verifiers | JavaScript · Python · Go — all three proven to agree on adversarial conformance vectors, every push ( |
Formal-model evidence | 26 bounded TLA+ safety properties held in their configured state spaces; this is not implementation refinement or an unbounded proof · 35 Alloy facts, 32 assertions across four models · two composed symbolic Dolev-Yao models covering challenge, CAID, two approvals, issuer and authority pins, registry view, revocation, consumption, execution, and six dedicated claim boundaries. Twenty Tamarin lemmas verify — 17 all-traces obligations and 3 exists-trace witnesses; eight deliberately weakened variants produce concrete attack traces when load-bearing checks are removed (formal/tamarin/). |
MCP registries | Official MCP registry · Glama (Grade A, Official badge) · Smithery |
License | Apache-2.0 |
Three same-team reference ports (JS / Python / Go) agree across all 21 suites and 331 vectors. Separately, an externally authored Rust implementation rebuilt from a pinned public source tree passes the pinned 16-suite/164-vector clean-room bundle and a 359-case hostility campaign, re-run in its own CI lane on every change. The newer AEC acceptance and four-outcome resolution suites are not attributed to Rust. That is external interoperability evidence, not strict clean-room construction acceptance; the aggregate CI case records the strict acceptance count as zero pending independent attestation. See CONFORMANCE.md, or verify a receipt yourself at emiliaprotocol.ai/verify.
The EP stack
Eye observes. Handshake verifies. Signoff owns. Commit seals.Layer | What it does |
EP Eye | Observes and classifies agent behavior (OBSERVE → SHADOW → ENFORCE) |
EP Handshake | Cryptographic consent ceremony with 7-property binding |
EP Signoff | Named human ownership — WebAuthn / passkey Class A, device-bound; multi-party quorum (M-of-N / ordered — the two-person rule) for the highest-stakes actions |
EP Commit | Atomic, immutable action close with Merkle-chained receipts |
Proof points
Metric | Value |
Automated test cases | 8,659+ across 509+ files; all platform-applicable cases must pass |
TLA+ safety properties | 26 bounded invariants held in the configured state space; not an implementation-refinement or unbounded proof — see PROOF_STATUS.md |
Alloy relational assertions | 35 facts + 32 assertions across four models — verified in CI |
Red-team cases cataloged | 85 — RED_TEAM_CASES.md |
Release security status | Repository security checks pass; every Strix finding on the audited changes is remediated with regression coverage and its review thread resolved |
Conformance (7/7) |
|
Cross-language conformance | 331 vectors · 21 suites: receipts · device signoffs · four-outcome resolution · multi-party quorum · revocation · Outcome Binding (semantic + real-crypto) · Authority Document/Proof issuer join · time-attestation · trust-receipt (x2 profiles) · provenance · evidence-record · canonicalization · boundary · AEC acceptance · currency · initiator-attestation · consumption-proof · witness · timestamp-proof (RFC 3161). JS / Python / Go verifiers agree ( |
Handshake create p95 | 575ms at 50 VUs — PERFORMANCE_PROOF.md |
EP Core objects
EP standardizes three interoperable objects that any conforming implementation can produce and verify:
Object | What it is |
Trust Receipt | A portable, signed record of an authorization event — what happened |
Trust Profile | A standardized summary of observable trust state — what is known |
Trust Decision | A policy-evaluated result with reasons and appeal path — what to do now |
EP Extensions (Handshake, Signoff, Commit, Delegation) add stronger enforcement where systems must constrain execution. The product layer, the managed Gate and Assurance Plane, is built on top, not the protocol itself.
Quickstart in five calls
Create policy
Initiate handshake
Present evidence
Verify
Signoff and consume
90-second demo · Quickstart · Agent walkthrough · IETF Draft
What EP is — and is not
EP is authorization at the moment of action, not an identity system, not a wallet, not a reputation score.
Is: a trust standard for binding actor identity, authority, policy, and exact action context before execution
Is not: a replacement for OAuth / OIDC (those answer who are you — EP answers who approved this exact action)
Is not: a proprietary product (the core is Apache-2.0 and published as individual Internet-Drafts on the IETF Datatracker)
Is not: a blockchain (the receipt is the hero; optional public timestamping is a footnote)
See CONFORMANCE.md · SECURITY.md · THREAT_MODEL.md · GOVERNANCE.md · Neutrality Covenant
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceCryptographic accountability for AI agents. Ed25519-signed receipts for every MCP tool call. Constraints, chains, AI judgment, invoicing, and local dashboard included.Last updated24111MIT

evermint-mcpofficial
Alicense-qualityDmaintenanceTamper-evident receipts for AI agent actions. The notary layer for agent-to-agent transactions.Last updated521MIT- Alicense-qualityBmaintenanceVerifiable action receipts for AI agents — agents sign claims locally, an independent witness countersigns and timestamps, anyone can verify offline.Last updated15MIT
- Alicense-qualityDmaintenanceProvides cryptographic governance receipts for AI agents, enabling pre-execution evaluation and signed verdicts (EXECUTE/BLOCK/REVIEW/SHADOW) with offline-verifiable audit trails.Last updatedMIT
Related MCP Connectors
Post-quantum, tamper-evident receipts for agent actions. Ed25519 + ML-DSA-65, offline verify.
Pre-action attestation perimeter for AI agents — 8 primitives, signed C18 receipt per call.
Deterministic AI audit layer for LLM/agent outputs: policy checks, tamper-evident log, x402.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/emiliaprotocol/emilia-protocol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server