The body an agent asks before it acts: decide, approve, and keep a signed record on your machine.
Connect Runs on your machine
claude mcp add verax -e VERAX_ISSUER=<VERAX_ISSUER> -e VERAX_JWKS_URL=<VERAX_JWKS_URL> -e VERAX_AUDIENCE=<VERAX_AUDIENCE> -e VERAX_STATE_DIR=<VERAX_STATE_DIR> -e VERAX_POLICY_FILE=<VERAX_POLICY_FILE> -e VERAX_BIND=<VERAX_BIND> -e VERAX_INVENTORY_FILE=<VERAX_INVENTORY_FILE> -- npx -y @verax-ai/[email protected]
{
"mcpServers": {
"verax": {
"command": "npx",
"args": [
"-y",
"@verax-ai/[email protected]"
],
"env": {
"VERAX_ISSUER": "<VERAX_ISSUER>",
"VERAX_JWKS_URL": "<VERAX_JWKS_URL>",
"VERAX_AUDIENCE": "<VERAX_AUDIENCE>",
"VERAX_STATE_DIR": "<VERAX_STATE_DIR>",
"VERAX_POLICY_FILE": "<VERAX_POLICY_FILE>",
"VERAX_BIND": "<VERAX_BIND>",
"VERAX_INVENTORY_FILE": "<VERAX_INVENTORY_FILE>"
}
}
}
}
{
"mcpServers": {
"verax": {
"command": "npx",
"args": [
"-y",
"@verax-ai/[email protected]"
],
"env": {
"VERAX_ISSUER": "<VERAX_ISSUER>",
"VERAX_JWKS_URL": "<VERAX_JWKS_URL>",
"VERAX_AUDIENCE": "<VERAX_AUDIENCE>",
"VERAX_STATE_DIR": "<VERAX_STATE_DIR>",
"VERAX_POLICY_FILE": "<VERAX_POLICY_FILE>",
"VERAX_BIND": "<VERAX_BIND>",
"VERAX_INVENTORY_FILE": "<VERAX_INVENTORY_FILE>"
}
}
}
}
{
"servers": {
"verax": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@verax-ai/[email protected]"
],
"env": {
"VERAX_ISSUER": "<VERAX_ISSUER>",
"VERAX_JWKS_URL": "<VERAX_JWKS_URL>",
"VERAX_AUDIENCE": "<VERAX_AUDIENCE>",
"VERAX_STATE_DIR": "<VERAX_STATE_DIR>",
"VERAX_POLICY_FILE": "<VERAX_POLICY_FILE>",
"VERAX_BIND": "<VERAX_BIND>",
"VERAX_INVENTORY_FILE": "<VERAX_INVENTORY_FILE>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
VERAX_ISSUERRequired | Issuer the agent's token must carry. The body refuses to start without one; `verax doctor` names what is missing. |
VERAX_JWKS_URLRequired | Where the body fetches the keys that verify that token. |
VERAX_AUDIENCERequired | Audience the token must name, so a token minted for something else is refused. |
VERAX_STATE_DIRRequired | Directory the ledger, keys and approvals live in. It stays on this machine. |
VERAX_POLICY_FILERequired | Policy the gate applies. @verax-ai/proxy ships policy/default.json, which denies what it does not name. |
VERAX_BINDOptional | host:port the body listens on. Anything but loopback needs VERAX_TLS_TERMINATED=1. |
VERAX_INVENTORY_FILEOptional | Roster document the body serves; the format is @verax-ai/inventory. |
Details
| Package | @verax-ai/[email protected] (NPM, streamable-http) |
| First published | 4 Nov 2026 |
| Last updated | 4 Nov 2026 |
| Registry name | io.github.verax-ai/verax |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
