Audifact
Server Details
Signed, append-only receipts of an AI agent's decisions and outcomes, with public proof links.
- Status
- Healthy
- Uptime
- 99.8% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- audifact/audifact-plugin
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: read-side (get_proof, list_agent_decisions, list_agent_outcomes) vs write-side (log_decision, log_outcome) vs identity (register_agent). Descriptions explicitly state when to use and when NOT to use each tool, and disambiguate the common confusion (e.g. list vs get_proof, decision vs outcome). No two tools can be reasonably mistaken for one another.
All six tools follow a consistent snake_case verb_noun pattern (get_proof, list_agent_decisions, list_agent_outcomes, log_decision, log_outcome, register_agent). The verbs are used consistently and predictably for their action class. No mixed conventions or vague verbs.
Six tools is a tight, well-scoped set for a decision/outcome ledger, with each tool earning its place. It sits at the low end of the ideal range but no tool is redundant, so it is slightly thin rather than over-built.
The surface covers the full lifecycle for an immutable ledger: agent registration, logging decisions and linked outcomes, and reading/proving events with pagination. Update/delete are intentionally absent because events are immutable, and scenario resolution is handled server-side, so gaps are minor and workable.
Available Tools
6 toolsget_proofARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| event_hash | Yes | 64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions / list_agent_outcomes). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, yet the description adds substantial context beyond them: X-API-Key requirement, org-scoped visibility, and the deliberate EVENT_NOT_FOUND behavior that masks unknown vs other-org hashes identically. That security/behavioral detail is exactly what structured fields cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the opening sentence, followed by clearly labeled usage, auth, and return sections. Despite its length, every sentence supplies actionable information rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields (event_hash, trust_level, trust_label, anchor status, chain metadata) and documents auth and error behavior. An agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single event_hash parameter is already documented, and the description largely restates the 64-char hex format. However it adds genuine semantic value by explaining the failure behavior for unknown or other-org hashes, which the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb (fetch), resource (public proof payload), and selector (one ledger event by its 64-char hex event_hash). It clearly distinguishes itself from the sibling list_* and log_* tools that operate on the same ledger entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains explicit 'When to use' and 'When NOT to use' sections. It names the alternatives (list_agent_decisions / list_agent_outcomes for browsing, log_decision / log_outcome for writes) and the exact condition selecting each, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agent_decisionsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first). | |
| cursor | No | Optional event_seq cursor from a prior next_cursor. When set, returns decisions with event_seq older than this value. | |
| agent_public_key | Yes | Base64 Ed25519 public key of the agent whose decisions to list. Must belong to an agent already registered in this API key's org. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive, and the description adds context beyond them: X-API-Key requirement, org-scoping (not a public explorer), and the important edge-case behavior that unknown public keys return an empty list with total 0 rather than an error. It also discloses the return shape and pagination contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then the when/when-not routing, then the return contract. It is dense and stacks many clauses into single sentences, but every sentence carries information an agent needs; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, 3-param, org-scoped list tool with no output schema, the description supplies the auth requirement, scoping, empty-result semantics, return fields, and pagination procedure. An agent has everything needed to call it correctly and to chain pages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes further by explaining where agent_public_key comes from (a prior log_decision response or register_agent) and how cursor/next_cursor chain across pages. It does not add format detail for limit beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope: 'List decision events for one agent (by public key) in the API key's org, newest first by default.' It explicitly distinguishes itself from siblings list_agent_outcomes, get_proof, log_decision and log_outcome, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'When to use' (review logged events, pick an event_hash for get_proof, page history before linking an outcome) and 'When NOT to use' with the correct alternative named for each excluded case. It also pre-empts a likely wrong invocation by noting it does not accept agent_name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agent_outcomesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first). | |
| cursor | No | Optional event_seq cursor from a prior next_cursor. When set, returns outcomes with event_seq older than this value. | |
| agent_public_key | Yes | Base64 Ed25519 public key of the agent whose outcomes to list. Must belong to an agent already registered in this API key's org. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, but the description adds material behavior beyond them: X-API-Key auth requirement, org-scoped (not a public explorer), unknown public keys return an empty list with total 0 rather than an error, and the exact return shape including decision_event_hash linkage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then clearly labeled use/avoid sections and return/output notes. Dense but structured; only slightly long, and each sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's explicit return contract ({outcomes, total, next_cursor, has_next}) and the empty-list-on-unknown-key behavior fill the critical gap. Auth, scoping, ordering, paging, and edge cases are all covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it clarifies the tool does NOT accept agent_name and that public_key must come from a prior log_decision/log_outcome response or register_agent, and it explains that next_cursor should be echoed back as cursor for paging older.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (list outcome events for one agent by public key), plus scope (API key's org) and default ordering (newest first). It is clearly distinguishable from list_agent_decisions and get_proof without needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' (audit recorded results, find an event_hash for get_proof, page without knowing hashes) and 'When NOT to use' with named sibling alternatives for each excluded case (list_agent_decisions, get_proof, log_decision/log_outcome). Routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_decisionAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | No | ISO-8601 timestamp | |
| signature | No | Client-side signing: base64 signature over the canonical JSON body. | |
| agent_name | No | Managed Mode: agent identity within your org (default: default-agent). Audifact provisions and uses a managed signing key automatically. | |
| context_json | No | ||
| decision_type | No | ||
| metadata_json | No | ||
| scenario_hash | No | Advanced optional: 64-char hex scenario hash when already known. Usually omit - server computes from scenario_name + scenario_definition. | |
| scenario_name | No | Scenario identifier. Server resolves scenario_hash from scenario_name + scenario_definition (+ optional context_schema). | |
| context_schema | No | Optional JSON schema used to validate context_json. | |
| decision_label | No | ||
| decision_value | No | ||
| agent_public_key | No | Client-side signing: base64 public key (required with signature). | |
| context_schema_json | No | Backward-compatible alias for context_schema. | |
| public_context_json | No | Optional public structured context (shown on proof pages). Stored gzip-compressed; event hash includes content hash only. | |
| scenario_definition | No | Scenario definition object. Required when scenario_name is provided. | |
| public_decision_type | No | Optional public mirror of decision_type (shown on proof pages). | |
| agent_private_key_b64 | No | Client-side signing: base64 Ed25519 private key. Overrides managed mode when provided. | |
| public_decision_label | No | Optional public decision summary (shown on proof pages). | |
| public_decision_value | No | Optional public mirror of decision_value (shown on proof pages). | |
| scenario_definition_json | No | Backward-compatible alias for scenario_definition. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: events are immutable once recorded, organization is derived from the API key, managed mode provides strong auditability, and the scenario hash is computed server-side. It omits failure modes, rate limits, and what a successful response returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then dense but substantive sentences covering modes, immutability, org derivation, and hashing. Every clause carries information, though the run-on sentences would read better as bullets.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter, zero-required, nested-object tool with no output schema, the description covers the hard parts: signing modes, key management, org scoping, scenario resolution, immutability, and outcome linkage. It leaves the decision_type/label/value semantics and response shape to the schema and inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description resolves the genuinely ambiguous parameters: the managed-vs-client signing path (agent_name vs agent_private_key_b64/signature/public key), why scenario_hash is normally omitted, and the organization_id exclusion. It adds little for the many public_* mirror fields and decision_label/value, which rely on the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Log a signed decision event to the ledger.' It immediately distinguishes itself from the outcome-recording sibling by scoping to the decision event and noting that linked outcomes must match the decision's signing method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operating guidance: managed mode is the default, omit signing fields and pass agent_name; client-side signing is for maximum provenance; don't send organization_id; usually omit scenario_hash. It stops short of explicitly routing the agent between log_decision and siblings like log_outcome or list_my_recent_decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_outcomeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | No | ||
| signature | No | ||
| agent_name | No | Ignored for outcomes - managed signing uses the linked decision's agent. | |
| outcome_type | Yes | Private semantic type, e.g. pnl | |
| metadata_json | No | ||
| outcome_label | No | Private human-readable outcome label (account only). | |
| outcome_value | Yes | Private numeric result | |
| agent_public_key | No | ||
| public_output_json | No | Optional public structured output (shown on proof pages). Stored gzip-compressed; event hash includes content hash only. | |
| decision_event_hash | Yes | 64-char hex hash of the linked decision event. | |
| public_outcome_type | No | Optional public mirror of outcome_type (shown on proof pages). | |
| public_outcome_label | No | Optional public outcome summary (shown on proof pages). | |
| public_outcome_value | No | Optional public mirror of outcome_value (shown on proof pages). | |
| agent_private_key_b64 | No | Client-side signing override. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and largely succeeds: it discloses that the managed key is auto-resolved from the linked decision's agent, that signing method must match the source decision, that agent_name is ignored, and that scenario fields are rejected because context is inherited. It omits immutability/error behavior expected of a signed ledger event, so it isn't complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences in a single paragraph, front-loaded with 'what it does' before the signing branch detail. Slightly dense with two clauses covering key/signature alternatives, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, unannotated, no-output-schema tool, the description covers signing, linkage, and scenario inheritance but leaves the public_* mirroring fields, ts semantics, idempotency, and failure modes unaddressed. Adequate to call the tool, incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, and the description meaningfully supplements it by explaining the signing parameters as two mutually exclusive modes, the decision_event_hash linkage, and why agent_name/scenario fields are non-operative here. It does add real meaning beyond the property-level descriptions, though ts, metadata_json, and the public_* mirroring rules are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Log a signed outcome event') and its linkage requirement ('linked to a prior decision via decision_event_hash'), which is enough to separate it from log_decision. It never names a sibling explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operating guidance: omit signing fields in Managed Mode (default), pass agent_private_key_b64 or agent_public_key + signature for client-signed decisions, and the signing method must match the linked decision. It doesn't state when to prefer this tool over log_decision, but the signing-mode branches are genuinely actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentAIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional human-readable agent name. On lookup of an existing key, may update the stored name when provided. | |
| public_key | Yes | Base64 Ed25519 public key. Idempotency key — same value always resolves to the same agent in this org. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and destructiveHint=false, and the description reinforces idempotency with specificity ('same value always resolves to the same agent'), plus adds auth requirements (X-API-Key) and the return shape, which annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then structures when-to-use/when-not-to-use and behavioral notes compactly. Every sentence earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields (id, public_key, name), and it covers idempotency, auth, and routing. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in detail, including the name-update-on-lookup behavior and Base64 Ed25519 format. The description adds little parameter syntax beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (register/look up) plus resource (agent identity) and scope (under the API key's organization). It distinguishes itself from siblings like log_decision by explicitly telling the agent not to use it for logging decisions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections name the alternative (Managed Mode log_decision with agent_name) and the condition that selects it. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
get_proof1 field changed- changed
Input schema / properties / event_hash / descriptionPrevious value: -"64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions)."New value: +"64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions / list_agent_outcomes)."
- Added
list_agent_outcomes
3 tool updates
- Changed
get_proof1 field changed- changed
Input schema / properties / event_hash / descriptionPrevious value: -"64-character lowercase hex event hash from log_decision / log_outcome (or from list_my_recent_decisions)."New value: +"64-character lowercase hex event hash from log_decision / log_outcome (or from list_agent_decisions)."
- Added
list_agent_decisions - Removed
list_my_recent_decisions
3 tool updates
- Changed
get_proof1 field changed- changed
Input schema / properties / event_hash / descriptionPrevious value: -"64-character hex event hash."New value: +"64-character lowercase hex event hash from log_decision / log_outcome (or from list_my_recent_decisions)."
- Changed
list_my_recent_decisions4 fields changed- added
Input schema / properties / agent_public_key / descriptionAdded value: +"Base64 Ed25519 public key of the agent whose decisions to list. Must belong to an agent already registered in this API key's org." - changed
Input schema / properties / cursor / descriptionPrevious value: -"event_seq cursor for pagination (older than cursor)."New value: +"Optional event_seq cursor from a prior next_cursor. When set, returns decisions with event_seq older than this value." - changed
Input schema / properties / limit / descriptionPrevious value: -"Max rows to return (default 12)."New value: +"Page size (default 12, hard max 12). Results are ordered by event_seq descending (newest first)." - changed
Input schema / properties / limit / maximumPrevious value: -50New value: +12
- Changed
register_agent2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Human-readable agent name."New value: +"Optional human-readable agent name. On lookup of an existing key, may update the stored name when provided." - changed
Input schema / properties / public_key / descriptionPrevious value: -"Base64 Ed25519 public key."New value: +"Base64 Ed25519 public key. Idempotency key — same value always resolves to the same agent in this org."
5 tool updates
- First observed
get_proof - First observed
list_my_recent_decisions - First observed
log_decision - First observed
log_outcome - First observed
register_agent
Related MCP Connectors
Signed, publicly logged records of what your AI agent did, with proofs anyone can check offline.
Did it really happen? Independent signed receipts for AI agents: page, domain, email, heartbeat.
Independent effect verification and signed receipts for consequential AI agent actions.
Issue signed receipts for AI agent actions; verify any receipt offline - free, no account.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceTamper-evident receipts for AI agent actions. The notary layer for agent-to-agent transactions.49 npm1MIT- AlicenseNot gradedqualityDmaintenanceVerifiable action receipts for AI agents — agents sign claims locally, an independent witness countersigns and timestamps, anyone can verify offline.7 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to sign action records locally, publish them to a public log, and retrieve tamper-evident proofs that anyone can verify offline.411 npmApache 2.0
- AlicenseNot gradedqualityAmaintenanceTamper-evident audit trail for AI agent tool calls. Cryptographically signed, hash-chained records that prove what your agents did.319 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.