Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

ACR — Agent Composition Records

NPM · @TETHRAL/ACR-MCP · SCANNED AUG 3

Interaction profile registry for AI agents. Log interactions, query behavioral lenses.

Available components

−12 this week 74 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Tethral-Inc/AgentRegistry). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 10 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability47
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 1955 tokens (~279/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @tethral/acr-mcp

# add to Claude Code
claude mcp add tethral-inc-acr -- npx -y @tethral/acr-mcp
# add to Codex CLI
codex mcp add tethral-inc-acr -- npx -y @tethral/acr-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tethral-inc-acr": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@tethral/acr-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tethral-inc-acr --command npx --arg -y --arg @tethral/acr-mcp
# ~/.hermes/config.yaml
mcp_servers:
  tethral-inc-acr:
    command: "npx"
    args: ["-y", "@tethral/acr-mcp"]
// mcp.json
{
  "mcpServers": {
    "tethral-inc-acr": {
      "command": "npx",
      "args": [
        "-y",
        "@tethral/acr-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +15
    • Malware scan: unverified → pass security
  • 1 Aug 26 −9
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 −18
    • Malware scan: pass → unverified security
  • 27 Jul 26 +27
    • Tool coverage: unverified → 100 functional
    • First check of Tool coverage: 100 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: good functional
  • 26 Jul 26 59

    First indexed and scored.

    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@tethral/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
Tethral-Inc/AgentRegistry
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/Tethral-Inc/AgentRegistry/.github/workflows/publish.yml@refs/heads/master
Rekor log index:
2222348651
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:2bef5db374a7bf32c6e4f4d2921f85399d95f1fb9a94cc8bc68670448163a09981831dd4fd31d0035604b043932d428be558bdc719ba3ddac1129453f
Discovery method:
attestation_endpoint
Dependencies 0 packages

0 packages in the resolved dependency tree.

MCP tools — 7 exposed · ~1,955 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
acknowledge_signal ~129

Acknowledge an anomaly signal notification after reviewing it with your operator. Records that the notification has been reviewed. Acknowledgements expire after 30 days. Does not remove the observation from the network — only records that you have reviewed the signal.

NameTypeReqDescription
agent_idstringYour agent ID (uses session if omitted)
notification_idstringyesThe notification ID to acknowledge
reasonstringWhy the signal is being acknowledged (e.g., "user reviewed and accepted risk")
verbosebooleanRender full-length notification and agent IDs instead of the truncated inline display.

No output schema declared.

No examples provided.

get_friction_report ~272

Query the friction lens of your interaction profile — one of several lenses available (more on the roadmap). The friction lens surfaces where time and tokens are being lost: chain overhead, directional amplification between targets, retry waste, population drift, and per-target bottlenecks. Friction is a continuum, not a verdict — high friction could be infrastructure, a hard task, or a component with elevated anomaly signals. Use it together with anomaly signal notifications to interpret correctly. Capture is automatic via the host-side hook (@tethral/acr-hook); the report defaults to source='all' so it reflects every captured call. Pass source='agent' for your log_interaction self-reports only, or source='server' for the MCP observer self-log only.

NameTypeReqDescription
agent_idstringYour ACR agent ID (auto-assigned if omitted)
agent_namestringYour agent name (alternative to agent_id). Use this if you know your name but not your ID.
scopestringTime window for the report
sourcestringSignal source. 'all' = every capture path incl. the host-side hook (default). 'agent' = your log_interaction self-reports only. 'server' = MCP observer self-log only (tool-call timing).

No output schema declared.

No examples provided.

get_my_agent ~56

Identity card for your ACR agent: agent ID, API key, dashboard link, provider class, status. Pure identity — for "what should I do next?" call `orient_me`; for behavior data call any lens tool directly.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_notifications ~147

An anomaly signal is a behavioral pattern ACR observed across multiple unrelated agents (not a security event). Check for unread anomaly signal notifications about components in your composition. If ACR has observed anomaly signals affecting a skill, MCP, or system you use, it will have sent a notification here. Also delivers version updates. Call this on startup. ACR is a registry and notification layer, not a security check — notifications reflect what the network observed, not a verdict.

NameTypeReqDescription
agent_idstringYour agent ID (uses session if omitted)
verbosebooleanRender full-length notification IDs instead of the truncated inline display. Useful when copying an ID into `acknowledge_signal`.

No output schema declared.

No examples provided.

log_interaction ~1,159

Enrich your ACR interaction profile with a manually-reported receipt. Use this for signals the host-side observer cannot infer on its own — chain structure, decision tokens, substitutions, whether the result was actually used. Primary capture is the host-side observer: install @tethral/acr-hook as a Claude Code PreToolUse/PostToolUse hook (or the equivalent for your host) and every tool call your agent makes is recorded automatically, with no LLM cooperation. The hook gives you target + status + duration; this tool is how you add the structured signals the hook can't see. Good moments to call log_interaction: - A multi-step workflow you want the friction lens to analyze as a chain — pass chain_id, chain_position, preceded_by. - A call that replaced a failed one to a different target — pass substitution_of so the substitution-graph lens can learn the swap. - A call whose response you discarded — pass result_used=false to seed the wasted-attention lens. - Reasoning tokens spent deciding *which* target to call — pass decision_tokens. - A call that seemed wrong but didn't fail outright — pass anomaly_flagged=true with a content-free anomaly_detail. If you have not installed the hook yet, this tool can also serve as the only capture path — but expect lens views to be sparse, because LLMs don't reliably self-report every call. Classification fields (all optional, all content-free): activity_class ("language", "math", "visuals", "creative", "deterministic", "sound") and other category fields (target_type, interaction_purpose, workflow_role, workflow_phase, data_shape, criticality) describe the kind of work this call represents. Richer classification unlocks friction breakdowns by kind-of-work as agents specialize. ACR collects interaction metadata only (target names, timing, status, descriptive classifications). No request/response content is collected. We do not track the agent's owner. Terms: https://acr.nfkey.ai/terms

NameTypeReqDescription
activity_classstringKind of work the call represents. Examples: language, math, visuals, creative, deterministic, sound. Expandable — add new values as they emerge.
agent_idstringYour ACR agent ID (auto-assigned if omitted)
anomaly_detailstringWhat seemed wrong. DO NOT include credentials or API keys.
anomaly_flaggedbooleanSet true if something seemed wrong (unexpected behavior, suspicious output, excessive latency)
categorystringyesInteraction category. Use "tool_call" for MCP tool calls and API requests.
chain_idstringID linking sequential calls in a chain. Same chain_id for all calls in a multi-step workflow.
chain_positionnumberPosition in chain (0-indexed). First call = 0, second = 1.
context_bytesintegerContext payload size in bytes shipped to the target. Enables per-target context-cost analysis.
criticalitystringHow essential this call was to the workflow. Examples: core, enrichment, debug.
data_shapestringContent-free description of what kind of data moved. Examples: tabular, text, binary, structured_json, stream, image, audio.
decision_tokensintegerTokens spent deciding *which* target to call, separate from the target call itself. Useful for agents that run reasoning before routing.
duration_msnumberDuration in ms (0 if unknown)
error_codestringError code if failed (e.g., "429", "TIMEOUT", "ECONNREFUSED")
interaction_purposestringWhat the agent was trying to accomplish. Examples: read, write, search, generate, transform, acknowledge.
preceded_bystringThe target_system_id of the immediately preceding call in a multi-step chain (e.g. 'api:openai.com'). Use this to link sequential calls so ACR can compute directional amplification — how much slower…
prompt_cache_hit_rationumberFraction of prompt cached (0..1). Pass when the provider reports it.
queue_wait_msnumberTime spent waiting in queue before execution (ms)
response_size_bytesnumberResponse payload size in bytes
result_usedbooleanDid the agent actually use the response? Set false if the response was discarded (e.g. wrong shape, low quality). Seeds the wasted-attention lens.
retry_countnumberNumber of retries (0 = no retries)
statusstringyesOutcome of the interaction
substitution_ofstringWhen this call replaces a preceding failed call to a different target, pass the replaced target_system_id here (e.g. 'api:openai.com'). Seeds the substitution-graph lens.
target_system_idstringyesTarget in type:name format (e.g., mcp:github, api:stripe.com, mcp:filesystem)
target_typestringMore granular target type, e.g. "api.llm_provider", "api.payment", "mcp.database".
tokens_usedintegerTotal tokens used in this interaction (input + output). Optional — enables wasted-token callouts in the friction report.
workflow_phasestringIf the agent runs in phases. Examples: plan, act, reflect.
workflow_rolestringWhere this call sits in the broader workflow. Examples: initial, intermediate, recovery, cleanup.

No output schema declared.

No examples provided.

orient_me ~94

Where am I, and what should I do next? Reads your profile, coverage, and unread signals, then returns the single most useful next step for your current state (just registered / some data / steady). Call this when you're unsure where to start.

NameTypeReqDescription
agent_idstringYour ACR agent ID (auto-assigned if omitted)
agent_namestringYour agent name (alternative to agent_id)

No output schema declared.

No examples provided.

summarize_my_agent ~98

[DEPRECATED — call `orient_me` instead.] One-call snapshot of profile, friction, and coverage. Superseded by `orient_me`, which routes by state and surfaces the same lens summaries when the agent is steady. Will be removed in a future release.

NameTypeReqDescription
agent_idstringYour ACR agent ID (auto-assigned if omitted)
agent_namestringYour agent name (alternative to agent_id)

No output schema declared.

No examples provided.