# Audifact (remote · api.audifact.io)

Signed, append-only receipts of an AI agent's decisions and outcomes, with public proof links.

- Trust score: 79/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `api.audifact.io`: 79/100 (this document), [markdown](https://verifymcp.io/servers/io-audifact-audifact/api.md), [page](https://verifymcp.io/servers/io-audifact-audifact/api)

## Channel facts

- Endpoint: `https://api.audifact.io/mcp`
- Transports: `streamable-http`
- Auth: `required (not validated)`
- Version: `0.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 58/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1905 tokens (~317/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 60/100
  - Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 93/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 79% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Audifact MCP server?

Audifact is a hosted endpoint at https://api.audifact.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-audifact-audifact 'https://api.audifact.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-audifact-audifact": {
      "url": "https://api.audifact.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-audifact-audifact": {
      "type": "http",
      "url": "https://api.audifact.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-audifact-audifact]
url = "https://api.audifact.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-audifact-audifact": {
      "type": "remote",
      "url": "https://api.audifact.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-audifact-audifact --url 'https://api.audifact.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-audifact-audifact:
    url: "https://api.audifact.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-audifact-audifact": {
      "Transport": "http",
      "Url": "https://api.audifact.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-audifact-audifact -t streamable-http -u 'https://api.audifact.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-audifact-audifact": {
      "type": "http",
      "url": "https://api.audifact.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-19 (score 72, +1)

- [security] Tool “get_proof” rewrote its description, which is the text the model reads
- [security] Tool “list_agent_decisions” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 1573 → 1905
- [functional] New tool “list_agent_outcomes”
- [cosmetic] “get_proof” reworded the description of “event_hash”

## MCP tools (6)

### `log_decision` (~525 tokens)

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.

Input parameters:

- `agent_name` (string): Managed Mode: agent identity within your org (default: default-agent). Audifact provisions and uses a managed signing key automatically.
- `agent_private_key_b64` (string): Client-side signing: base64 Ed25519 private key. Overrides managed mode when provided.
- `agent_public_key` (string): Client-side signing: base64 public key (required with signature).
- `context_json` (object)
- `context_schema` (object): Optional JSON schema used to validate context_json.
- `context_schema_json` (object): Backward-compatible alias for context_schema.
- `decision_label` (string)
- `decision_type` (string)
- `decision_value` (string)
- `metadata_json` (object)
- `public_context_json` (object): Optional public structured context (shown on proof pages). Stored gzip-compressed; event hash includes content hash only.
- `public_decision_label` (string): Optional public decision summary (shown on proof pages).
- `public_decision_type` (string): Optional public mirror of decision_type (shown on proof pages).
- `public_decision_value` (string): Optional public mirror of decision_value (shown on proof pages).
- `scenario_definition` (object): Scenario definition object. Required when scenario_name is provided.
- `scenario_definition_json` (object): Backward-compatible alias for scenario_definition.
- `scenario_hash` (string): Advanced optional: 64-char hex scenario hash when already known. Usually omit - server computes from scenario_name + scenario_definition.
- `scenario_name` (string): Scenario identifier. Server resolves scenario_hash from scenario_name + scenario_definition (+ optional context_schema).
- `signature` (string): Client-side signing: base64 signature over the canonical JSON body.
- `ts` (string): ISO-8601 timestamp

### `log_outcome` (~326 tokens)

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.

Input parameters:

- `agent_name` (string): Ignored for outcomes - managed signing uses the linked decision's agent.
- `agent_private_key_b64` (string): Client-side signing override.
- `agent_public_key` (string)
- `decision_event_hash` (string, required): 64-char hex hash of the linked decision event.
- `metadata_json` (object)
- `outcome_label` (string): Private human-readable outcome label (account only).
- `outcome_type` (string, required): Private semantic type, e.g. pnl
- `outcome_value` (number, required): Private numeric result
- `public_outcome_label` (string): Optional public outcome summary (shown on proof pages).
- `public_outcome_type` (string): Optional public mirror of outcome_type (shown on proof pages).
- `public_outcome_value` (number): Optional public mirror of outcome_value (shown on proof pages).
- `public_output_json` (object): Optional public structured output (shown on proof pages). Stored gzip-compressed; event hash includes content hash only.
- `signature` (string)
- `ts` (string)

### `get_proof` (~223 tokens)

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.

Input parameters:

- `event_hash` (string, required): 64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions / list_agent_outcomes).

### `register_agent` (~175 tokens)

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).

Input parameters:

- `name` (string): Optional human-readable agent name. On lookup of an existing key, may update the stored name when provided.
- `public_key` (string, required): Base64 Ed25519 public key. Idempotency key — same value always resolves to the same agent in this org.

### `list_agent_decisions` (~297 tokens)

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.

Input parameters:

- `agent_public_key` (string, required): Base64 Ed25519 public key of the agent whose decisions to list. Must belong to an agent already registered in this API key's org.
- `cursor` (integer): Optional event_seq cursor from a prior next_cursor. When set, returns decisions with event_seq older than this value.
- `limit` (integer): Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first).

### `list_agent_outcomes` (~310 tokens)

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.

Input parameters:

- `agent_public_key` (string, required): Base64 Ed25519 public key of the agent whose outcomes to list. Must belong to an agent already registered in this API key's org.
- `cursor` (integer): Optional event_seq cursor from a prior next_cursor. When set, returns outcomes with event_seq older than this value.
- `limit` (integer): Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-audifact-audifact/api#diagnostics

## Score history

- 2026-11-04: 79
- 2026-11-03: 79
- 2026-11-02: 79
- 2026-11-01: 78
- 2026-10-31: 78
- 2026-10-30: 77
- 2026-10-29: 77
- 2026-10-28: 76
- 2026-10-27: 76
- 2026-10-26: 75
- 2026-10-25: 75
- 2026-10-24: 74
- 2026-10-23: 74
- 2026-10-22: 73
- 2026-10-21: 73
- 2026-10-20: 72
- 2026-10-19: 72
- 2026-10-18: 71
- 2026-10-17: 71
- 2026-10-16: 33

## Common questions

### What is the Audifact MCP server?

Audifact is an MCP server listed in the public MCP registry as io.audifact/audifact. Signed, append-only receipts of an AI agent's decisions and outcomes, with public proof links. This page covers its hosted endpoint (https://api.audifact.io/mcp).

### Is the Audifact MCP server safe to use?

Audifact scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Audifact MCP server expose?

Audifact exposes 6 tools: log_decision, log_outcome, get_proof, register_agent, list_agent_decisions, list_agent_outcomes. Their descriptions and schemas cost roughly 1,856 tokens of context every time the server is loaded.

### Does the Audifact MCP server require authentication?

Yes. Audifact asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Audifact MCP server still maintained?

Audifact is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.audifact.io/mcp
- Authorisation metadata: https://api.audifact.io/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/audifact/audifact-plugin
- Website: https://audifact.io/
- Changelog RSS feed: https://verifymcp.io/servers/io-audifact-audifact/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-audifact-audifact/api.json
- HTML version of this page: https://verifymcp.io/servers/io-audifact-audifact/api
