Signed, append-only receipts of an AI agent's decisions and outcomes, with public proof links.
Call this server's tools from your browser. Nothing to install.
Audifact API key (af_...) from audifact.io Dashboard -> API Keys. Events bill to this key's account.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch the public proof payload for one ledger event by its 64-char hex event_hash. When to use: after log_decision/log_outcome when you need trust labels, chain validity, anchor status, or a paired-event proof URL. When NOT to use: to browse many decisions or outcomes — use list_agent_decisions / list_agent_outcomes first, then call get_proof on a chosen event_hash; do not use this to write events (use log_decision / log_outcome). Requires X-API-Key. Returns proof fields only for events in that key's org; unknown or other-org hashes return EVENT_NOT_FOUND (same message either way). Read-only; does not mutate the ledger. Response includes event_hash, event_type, event_seq, public_* mirrors, hash_valid, agent_chain_valid, trust_level, trust_label, proof_anchor_status_label, and chain metadata.
64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions / list_agent_outcomes).
Fetch the public proof payload for one ledger event by its 64-char hex event_hash. When to use: after log_decision/log_outcome when you need trust labels, chain validity, anchor status, or a paired-event proof URL. When NOT to use: to browse many decisions or outcomes — use list_agent_decisions / list_agent_outcomes first, then call get_proof on a chosen event_hash; do not use this to write events (use log_decision / log_outcome). Requires X-API-Key. Returns proof fields only for events in that key's org; unknown or other-org hashes return EVENT_NOT_FOUND (same message either way). Read-only; does not mutate the ledger. Response includes event_hash, event_type, event_seq, public_* mirrors, hash_valid, agent_chain_valid, trust_level, trust_label, proof_anchor_status_label, and chain metadata.
| Argument | Type | Description |
|---|---|---|
| event_hash* | string | 64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions / list_agent_outcomes). |
{
"type": "object",
"required": [
"event_hash"
],
"properties": {
"event_hash": {
"type": "string",
"description": "64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions / list_agent_outcomes)."
}
}
}List decision events for one agent (by public key) in the API key's org, newest first by default. When to use: to review what an agent already logged, pick an event_hash for get_proof, or page through history before linking an outcome. When NOT to use: to list outcomes (use list_agent_outcomes); to fetch one event's trust/anchor proof (use get_proof); to write a new decision or outcome (use log_decision / log_outcome); this is org-scoped via X-API-Key (not a public explorer listing) and does not accept agent_name — pass the agent's public_key from a prior log_decision response or register_agent. Requires X-API-Key. Read-only. Unknown public keys return an empty decisions list (total 0), not an error. Returns {decisions, total, next_cursor, has_next}. Pass next_cursor as cursor for the next older page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first). |
| cursor | integer | Optional event_seq cursor from a prior next_cursor. When set, returns decisions with event_seq older than this value. |
| agent_public_key* | string | Base64 Ed25519 public key of the agent whose decisions to list. Must belong to an agent already registered in this API key's org. |
{
"type": "object",
"required": [
"agent_public_key"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first)."
},
"cursor": {
"type": "integer",
"description": "Optional event_seq cursor from a prior next_cursor. When set, returns decisions with event_seq older than this value."
},
"agent_public_key": {
"type": "string",
"description": "Base64 Ed25519 public key of the agent whose decisions to list. Must belong to an agent already registered in this API key's org."
}
}
}List outcome events for one agent (by public key) in the API key's org, newest first by default. When to use: to audit what results an agent recorded, find an outcome event_hash for get_proof, or page outcomes without already knowing hashes. When NOT to use: to list decisions (use list_agent_decisions); to fetch one event's trust/anchor proof (use get_proof); to write a new decision or outcome (use log_decision / log_outcome); this is org-scoped via X-API-Key (not a public explorer listing) and does not accept agent_name — pass the agent's public_key from a prior log_decision / log_outcome response or register_agent. Requires X-API-Key. Read-only. Unknown public keys return an empty outcomes list (total 0), not an error. Returns {outcomes, total, next_cursor, has_next}. Each outcome includes decision_event_hash when linked. Pass next_cursor as cursor for the next older page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first). |
| cursor | integer | Optional event_seq cursor from a prior next_cursor. When set, returns outcomes with event_seq older than this value. |
| agent_public_key* | string | Base64 Ed25519 public key of the agent whose outcomes to list. Must belong to an agent already registered in this API key's org. |
{
"type": "object",
"required": [
"agent_public_key"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first)."
},
"cursor": {
"type": "integer",
"description": "Optional event_seq cursor from a prior next_cursor. When set, returns outcomes with event_seq older than this value."
},
"agent_public_key": {
"type": "string",
"description": "Base64 Ed25519 public key of the agent whose outcomes to list. Must belong to an agent already registered in this API key's org."
}
}
}Log a signed decision event to the ledger. Managed Mode (default for MCP): omit signing fields and pass agent_name - Audifact securely manages an Ed25519 keypair and signs on behalf of the agent. Events are immutable once recorded; managed mode provides strong auditability after receipt. For maximum provenance, use client-side signing via the SDK (agent_private_key_b64, or agent_public_key + signature). Linked outcomes must use the same signing method as the decision (managed or client-signed with the same agent key). Organization is always taken from the API key (do not send organization_id). Scenario hash is computed server-side from scenario_name + scenario_definition (+ optional context_schema) via resolve_scenario - you usually do not pass scenario_hash.
| Argument | Type | Description |
|---|---|---|
| ts | string | ISO-8601 timestamp |
| signature | string | Client-side signing: base64 signature over the canonical JSON body. |
| agent_name | string | Managed Mode: agent identity within your org (default: default-agent). Audifact provisions and uses a managed signing key automatically. |
| context_json | object | |
| decision_type | string | |
| metadata_json | object | |
| scenario_hash | string | Advanced optional: 64-char hex scenario hash when already known. Usually omit - server computes from scenario_name + scenario_definition. |
Log a signed outcome event linked to a prior decision via decision_event_hash. Managed Mode (default): omit signing fields - the managed key from the linked decision's agent is used automatically when the decision was also managed. For client-signed decisions, pass agent_private_key_b64 or agent_public_key + signature using the same agent key. Signing method must match the linked decision (managed or client-signed). Outcomes do not accept scenario fields - scenario context is inherited from the linked decision.
| Argument | Type | Description |
|---|---|---|
| ts | string | |
| signature | string | |
| agent_name | string | Ignored for outcomes - managed signing uses the linked decision's agent. |
| outcome_type* | string | Private semantic type, e.g. pnl |
| metadata_json | object | |
| outcome_label | string | Private human-readable outcome label (account only). |
| outcome_value* | number | Private numeric result |
| agent_public_key | string | |
| public_output_json |
Register or look up an agent identity under the API key's organization. When to use: before client-side signing flows that need a known public_key, or to attach a human-readable name to an existing key. When NOT to use: Managed Mode log_decision (pass agent_name instead — Audifact provisions the key); do not use this to log decisions or outcomes. Idempotent on public_key: repeating the same key returns the existing agent. Requires X-API-Key. Returns the agent record (id, public_key, name).
| Argument | Type | Description |
|---|---|---|
| name | string | Optional human-readable agent name. On lookup of an existing key, may update the stored name when provided. |
| public_key* | string | Base64 Ed25519 public key. Idempotency key — same value always resolves to the same agent in this org. |
{
"type": "object",
"required": [
"public_key"
],
"properties": {
"name": {
"type": "string",
"description": "Optional human-readable agent name. On lookup of an existing key, may update the stored name when provided."
},
"public_key": {
"type": "string",
"description": "Base64 Ed25519 public key. Idempotency key — same value always resolves to the same agent in this org."
}
}
}| scenario_name | string | Scenario identifier. Server resolves scenario_hash from scenario_name + scenario_definition (+ optional context_schema). |
| context_schema | object | Optional JSON schema used to validate context_json. |
| decision_label | string |
| decision_value | string |
| agent_public_key | string | Client-side signing: base64 public key (required with signature). |
| context_schema_json | object | Backward-compatible alias for context_schema. |
| public_context_json | object | Optional public structured context (shown on proof pages). Stored gzip-compressed; event hash includes content hash only. |
| scenario_definition | object | Scenario definition object. Required when scenario_name is provided. |
| public_decision_type | string | Optional public mirror of decision_type (shown on proof pages). |
| agent_private_key_b64 | string | Client-side signing: base64 Ed25519 private key. Overrides managed mode when provided. |
| public_decision_label | string | Optional public decision summary (shown on proof pages). |
| public_decision_value | string | Optional public mirror of decision_value (shown on proof pages). |
| scenario_definition_json | object | Backward-compatible alias for scenario_definition. |
{
"type": "object",
"properties": {
"ts": {
"type": "string",
"description": "ISO-8601 timestamp"
},
"signature": {
"type": "string",
"description": "Client-side signing: base64 signature over the canonical JSON body."
},
"agent_name": {
"type": "string",
"description": "Managed Mode: agent identity within your org (default: default-agent). Audifact provisions and uses a managed signing key automatically."
},
"context_json": {
"type": "object"
},
"decision_type": {
"type": "string"
},
"metadata_json": {
"type": "object"
},
"scenario_hash": {
"type": "string",
"description": "Advanced optional: 64-char hex scenario hash when already known. Usually omit - server computes from scenario_name + scenario_definition."
},
"scenario_name": {
"type": "string",
"description": "Scenario identifier. Server resolves scenario_hash from scenario_name + scenario_definition (+ optional context_schema)."
},
"context_schema": {
"type": "object",
"description": "Optional JSON schema used to validate context_json."
},
"decision_label": {
"type": "string"
},
"decision_value": {
"type": "string"
},
"agent_public_key": {
"type": "string",
"description": "Client-side signing: base64 public key (required with signature)."
},
"context_schema_json": {
"type": "object",
"description": "Backward-compatible alias for context_schema."
},
"public_context_json": {
"type": "object",
"description": "Optional public structured context (shown on proof pages). Stored gzip-compressed; event hash includes content hash only."
},
"scenario_definition": {
"type": "object",
"description": "Scenario definition object. Required when scenario_name is provided."
},
"public_decision_type": {
"type": "string",
"description": "Optional public mirror of decision_type (shown on proof pages)."
},
"agent_private_key_b64": {
"type": "string",
"description": "Client-side signing: base64 Ed25519 private key. Overrides managed mode when provided."
},
"public_decision_label": {
"type": "string",
"description": "Optional public decision summary (shown on proof pages)."
},
"public_decision_value": {
"type": "string",
"description": "Optional public mirror of decision_value (shown on proof pages)."
},
"scenario_definition_json": {
"type": "object",
"description": "Backward-compatible alias for scenario_definition."
}
}
}| object |
| Optional public structured output (shown on proof pages). Stored gzip-compressed; event hash includes content hash only. |
| decision_event_hash* | string | 64-char hex hash of the linked decision event. |
| public_outcome_type | string | Optional public mirror of outcome_type (shown on proof pages). |
| public_outcome_label | string | Optional public outcome summary (shown on proof pages). |
| public_outcome_value | number | Optional public mirror of outcome_value (shown on proof pages). |
| agent_private_key_b64 | string | Client-side signing override. |
{
"type": "object",
"required": [
"decision_event_hash",
"outcome_type",
"outcome_value"
],
"properties": {
"ts": {
"type": "string"
},
"signature": {
"type": "string"
},
"agent_name": {
"type": "string",
"description": "Ignored for outcomes - managed signing uses the linked decision's agent."
},
"outcome_type": {
"type": "string",
"description": "Private semantic type, e.g. pnl"
},
"metadata_json": {
"type": "object"
},
"outcome_label": {
"type": "string",
"description": "Private human-readable outcome label (account only)."
},
"outcome_value": {
"type": "number",
"description": "Private numeric result"
},
"agent_public_key": {
"type": "string"
},
"public_output_json": {
"type": "object",
"description": "Optional public structured output (shown on proof pages). Stored gzip-compressed; event hash includes content hash only."
},
"decision_event_hash": {
"type": "string",
"description": "64-char hex hash of the linked decision event."
},
"public_outcome_type": {
"type": "string",
"description": "Optional public mirror of outcome_type (shown on proof pages)."
},
"public_outcome_label": {
"type": "string",
"description": "Optional public outcome summary (shown on proof pages)."
},
"public_outcome_value": {
"type": "number",
"description": "Optional public mirror of outcome_value (shown on proof pages)."
},
"agent_private_key_b64": {
"type": "string",
"description": "Client-side signing override."
}
}
}