Knox Anchor
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Bitcoin-anchored, tamper-evident audit-permanence layer for AI agents, FRE 902(13)/(14)-shaped.
| Author | com.bonissystems |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2138 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Knox Anchor": {
"url": "https://bonissystems.com/api/knox/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (9)
get_descriptorReturn the Knox MCP server self-description: operator, USPTO patent reference, jurisdiction, available tools, and links to the public AAM (Agent Audit and Management) documentation surface.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_chain_healthReturn Knox service status (operational or degraded), total anchors written, the latest anchor timestamp, and the Bitcoin anchoring cadence (OpenTimestamps, 1-6 hour confirmation window). Mirrors the public /api/knox/health endpoint under the MCP envelope.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_event_typesReturn the canonical Knox event-type taxonomy. Each event type is a citation token for federal-grade audit; the registry expands monotonically and is itself anchored on every expansion.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
verify_anchorGiven a SHA-256 anchor hash (64 hex chars), return the anchor record, chain link validity (predecessor present and matched), event type, sequence number, and verify URL. Public — no authentication required.
Parameters:
hash(required) — string — SHA-256 anchor hash (64 lowercase hex chars).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
anchor_eventAnchor a generic agent action to the Knox chain. Accepts any event_type from the canonical taxonomy plus a payload object. Returns the anchor sequence, payload hash, predecessor hash, timestamp, and verify URL. Requires a Knox Bearer API key on the Authorization header — unauthenticated calls are rejected. Provision a key by contacting Bonis Systems.
Parameters:
event_type(required) — string — Canonical event type (call list_event_types to enumerate). Free-form strings are accepted but not federal-citation-grade.payload(required) — object — JSON-serializable payload describing the agent action. Hashed verbatim into the chain; do not include secrets — the payload is recoverable on verify.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
anchor_mcp_tool_callConvenience anchor for the AAM Model Context Protocol theater. Records an `agent_mcp_tool_call` event with structured tool-call metadata (server URL, tool name, argument digest, asserted agent identity, response digest). The record is sealed with a commitment to the authenticated principal that made the assertion, so a reader can tell WHO claimed it. Knox does not authenticate the named agent: this makes an assertion about an agent's actions independently checkable, not the agent itself independently identified.
Parameters:
server_url(required) — string — MCP server endpoint the agent invoked.tool_name(required) — string — Name of the tool invoked.arguments_digest(required) — string — Caller-computed SHA-256 of the JSON-stringified arguments (64 hex chars).agent_identity(required) — string — Stable identifier the CALLER asserts for the agent (e.g., agent ID, principal, did:knox:agent-X). Recorded as an assertion attributed to your API key, never as an authenticated subject; the anchored payload carries agentIdentityVerified:false and a commitment to the asserting principal.outcome(required) — string — Outcome of the tool call.response_digest— string — Caller-computed SHA-256 of the JSON-stringified response (64 hex chars).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
anchor_file_hashAnchor a SHA-256 file digest to Knox and return an affidavit architected for FRE 902(13)/(14) self-authentication. The file itself is not transmitted — the caller computes the hash and only the digest + filename + size + MIME type are anchored. Admissibility in any matter remains a determination of the presiding court. Requires a Knox Bearer API key on the Authorization header — unauthenticated calls are rejected.
Parameters:
hash(required) — string — SHA-256 file digest (64 lowercase hex chars).filename— string — Original filename (max 256 chars).mime_type— string — MIME type (max 128 chars).size_bytes— integer — File size in bytes.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
verify_agent_tripTHE TICK. Given the returned seal (64 hex) or the trip id of a customer agent trip, return what Knox sealed when the trip came back: the verdict (LINES_UP or MISMATCH), the finding classes, the door head, when it was sealed, and the Bitcoin status of its hourly batch. Public, no key. The witness is door_observed: the door ran in the agent's own process. The comparison is the agent's report against what the door recorded, not against the outside system's answer.
Parameters:
hash— string — The returned seal: the stamp code of the trip's agent_trip_returned (64 hex chars).trip_id— string — The trip id the door minted at departure.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
return_agent_tripTHE TICK. Your own door posts a returned trip: the plan, the door's record (targets and keyed commitments, never content), its head, the trip nonce and the agent's report. The trip's departure must already be sealed under the same key as agent_trip_departed. Knox checks the plan and nonce against that departure, recomputes the record's hash chain, compares plan, record and report, and seals the verdict as agent_trip_returned: one stamp on your plan. A second return of the same trip is refused as REPLAY and not sealed. Knox never holds your trip key; check the MACs yourself with verify-agent-trip.mjs. Requires a Knox Bearer API key on the Authorization header.
Parameters:
departure_seal(required) — string — The stamp code of the trip's agent_trip_departed, sealed under your key before the agent's first action.nonce(required) — string — The trip nonce held by your door. Knox checks it against the nonce hash sealed at departure; it is not stored.plan(required) — array — The flight plan, as sealed at departure: [{tool, ref, max?, optional?}].observations(required) — array — The door's record, in order: [{seq, tool, kind, ref, argsCommit, resultCommit, outcome, reason, at, prevHash, hash, mac}]. Targets and keyed commitments, never content.door_head(required) — string — The hash of the door's last observation (64 zeros for an empty record).report(required) — ['object', 'null'] — What the agent says it did: {actions?: [{tool, ref}], claimedKinds?: [kind], effects?: [{kind, ref, hash}]}, or null when it never reported back.flow— string — Optional. "bsa" when the trip ran in a BSA flow; the departure must say the same. Only such trips can enter the examiner pack.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.