Live at dev.mcp.ivalt.com • PKI-signed • Human-in-the-loop

iVALT MCP Server

Human-in-the-loop biometric approval for AI agents.

Exposes with PKI attestations

https://dev.mcp.ivalt.com @ivalt/agent-auth on npm
Checking /health …

What it does

Sends an iVALT push to an approver's phone, waits for biometric approval, and returns a signed attestation. Use it as a blocking or async step in any MCP client.

STDIO

Run locally as a child process for Claude, Cursor, Windsurf, and CLI clients.

HTTP/SSE

Remote stateless JSON-RPC endpoint for cloud agents and web clients.

Per-call mobile

Pass approver_mobile from the client, or set IVALT_DEFAULT_MOBILE server-side.

Health API

Unauthenticated probe for load balancers and orchestration.

GET /health

Try it: /health

Available MCP tools

All tool results are wrapped as MCP text content with pretty-printed JSON. See MCP Tools for full schemas.

request_approval blocking

Sends an iVALT push, waits for human approval, and returns an attestation. Supports action, reason, approver_mobile, factors, and timeout_s.

request_approval_async async

Fires the approval and returns a request_id immediately. Poll with check_status.

check_status polling

Polls a request_id from the async call. Returns pending, approved (with attestation), denied, or expired.

Get started

To connect an MCP client you need two things:

  • An iVALT API key for production use, or leave IVALT_API_KEY empty to use the public demo proxy.
  • The approver phone, either via IVALT_DEFAULT_MOBILE or by passing approver_mobile on each tool call.

See Client setup for the exact mcp.json configuration for your client.

Configuration

Set these via environment variables or an .env file. See Configuration for details.