Skip to main content
Glama

Audifact

log_decision

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 Schema

TableJSON Schema
NameRequiredDescriptionDefault
tsNoISO-8601 timestamp
signatureNoClient-side signing: base64 signature over the canonical JSON body.
agent_nameNoManaged Mode: agent identity within your org (default: default-agent). Audifact provisions and uses a managed signing key automatically.
context_jsonNo
decision_typeNo
metadata_jsonNo
scenario_hashNoAdvanced optional: 64-char hex scenario hash when already known. Usually omit - server computes from scenario_name + scenario_definition.
scenario_nameNoScenario identifier. Server resolves scenario_hash from scenario_name + scenario_definition (+ optional context_schema).
context_schemaNoOptional JSON schema used to validate context_json.
decision_labelNo
decision_valueNo
agent_public_keyNoClient-side signing: base64 public key (required with signature).
context_schema_jsonNoBackward-compatible alias for context_schema.
public_context_jsonNoOptional public structured context (shown on proof pages). Stored gzip-compressed; event hash includes content hash only.
scenario_definitionNoScenario definition object. Required when scenario_name is provided.
public_decision_typeNoOptional public mirror of decision_type (shown on proof pages).
agent_private_key_b64NoClient-side signing: base64 Ed25519 private key. Overrides managed mode when provided.
public_decision_labelNoOptional public decision summary (shown on proof pages).
public_decision_valueNoOptional public mirror of decision_value (shown on proof pages).
scenario_definition_jsonNoBackward-compatible alias for scenario_definition.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.