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

−6 this week 64 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 & Transparency45
Schema Quality & AI Usability34
  • AI-judged instruction clarity (poor).Fail
  • Context-footprint check failed: tool/resource definitions use about 3112 tokens (~148/item across 21 items; 21 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 Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
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 tethralai-acr -- npx -y @tethral/acr-mcp
# add to Codex CLI
codex mcp add tethralai-acr -- npx -y @tethral/acr-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tethralai-acr": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@tethral/acr-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tethralai-acr --command npx --arg -y --arg @tethral/acr-mcp
# ~/.hermes/config.yaml
mcp_servers:
  tethralai-acr:
    command: "npx"
    args: ["-y", "@tethral/acr-mcp"]
// mcp.json
{
  "mcpServers": {
    "tethralai-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.

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

    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 none

Ecosystem: npm · Outcome: none

Dependencies 0 packages

0 packages in the resolved dependency tree.

MCP tools — 21 exposed · ~3,112 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_threat ~115

Acknowledge an anomaly signal notification after reviewing it with your operator. This records that the notification has been reviewed. Acknowledgements expire after 30 days. Note: acknowledging does not remove the observation from the network — it 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 threat is being acknowledged (e.g., "user reviewed and accepted risk")

No output schema declared.

No examples provided.

check_entity ~134

Ask the ACR network what it knows about a specific skill hash, agent, or system. Returns the raw behavioral signals ACR has observed: interaction counts, failure and anomaly rates, agent adoption counts, and related metadata. This is NOT a security check — ACR does not evaluate, score, or test. It only records what has been observed and surfaces the raw counts. Read-only lookup; no data is sent to ACR.

NameTypeReqDescription
entity_idstringyesThe entity identifier: skill SHA-256 hash, agent_id, or system_id
entity_typestringyesType of entity to look up

No output schema declared.

No examples provided.

check_environment ~60

Check the current ACR network environment: active anomaly signals and network-level observation data. Call on startup to see the state of the broader network. Remember to call log_interaction after every external call so your interaction profile stays current — every lens depends on it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

configure_deep_composition ~106

Operator privacy control. Enable or disable deep composition capture for this session. When enabled (default), ACR sees the internals of your attached skills and MCPs so it can distinguish internal friction from external friction. When disabled, only top-level component info is sent — ACR no longer sees sub-components. Also settable at startup via the ACR_DEEP_COMPOSITION environment variable.

NameTypeReqDescription
enabledbooleanyesSet to true to enable deep capture, false to disable.

No output schema declared.

No examples provided.

get_coverage ~92

Signal coverage: which fields you populate on your receipts and which you don't. Shows transparent rules with their conditions, observed inputs, and whether they triggered. Use this to see if your logging is complete enough for the other lenses to be useful.

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.

get_failure_registry ~85

Failure registry: per-target breakdown of failures — status codes, error codes, categories, and median duration when failed. Shows where your interactions are failing and how.

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

No output schema declared.

No examples provided.

get_friction_report ~186

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: bottleneck targets, chain overhead, retry waste, directional friction between targets, and how you compare to the population baseline. 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. Data comes from log_interaction — if the report is empty, you need to start logging your external calls.

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

No output schema declared.

No examples provided.

get_interaction_log ~214

View your interaction history. Use mode "list" for a scannable log, or "detail" (or provide receipt_id) for a full technical readout of a single interaction with network context.

NameTypeReqDescription
agent_idstringYour ACR agent ID
agent_namestringYour agent name (alternative to agent_id)
anomaly_onlybooleanShow only anomaly-flagged interactions
categorystringFilter by category (tool_call, delegation, etc.)
limitnumberMax interactions to show
modestringDisplay mode: "list" for scannable log, "detail" for full readout
receipt_idstringSpecific receipt ID for detail view
sincestringShow interactions after this ISO timestamp
statusstringFilter by status (success, failure, timeout, partial)
targetstringFilter by target system (e.g. "mcp:github")

No output schema declared.

No examples provided.

get_my_agent ~37

Get your agent profile — name, ID, provider, status, and registration date. Zero-config: uses the auto-assigned agent identity.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_network_status ~58

Network-wide observation dashboard. Shows agent and system totals, system signal rates sorted worst-first, skills with elevated anomaly signals, and recent cross-agent escalations. Use this to see the state of the broader ACR network beyond just your own profile.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_notifications ~97

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)

No output schema declared.

No examples provided.

get_profile ~97

Your interaction profile: identity, composition summary, composition delta (MCP-observed vs agent-reported), receipt counts, target counts, and days active. This is the foundation view — other lenses (friction, coverage, trend) build on top of these counts.

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.

get_skill_tracker ~104

Track skill adoption and anomaly signal rates across the agent population. Use without skill_hash for an overview, or with skill_hash for a deep-dive with provider breakdown and cross-provider anomaly data.

NameTypeReqDescription
limitnumberMax skills to show
min_anomaly_signalsnumberOnly show skills with at least this many anomaly signals
skill_hashstringSpecific skill hash for deep-dive view
sortstringSort field

No output schema declared.

No examples provided.

get_skill_versions ~55

Get version history for a skill. Shows how it has changed over time, whether your version is current, and how many versions behind you are.

NameTypeReqDescription
skill_hashstringyesThe skill hash to look up version history for

No output schema declared.

No examples provided.

get_stable_corridors ~102

Stable corridors: interaction paths that are consistently reliable — zero failures, low latency variance, sufficient sample count. The filter thresholds are disclosed in the response so you can see exactly what qualifies. Useful for identifying which targets you can rely on.

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

No output schema declared.

No examples provided.

get_trend ~98

Trend: per-target latency and failure rate changes over time. Compares current period to previous period and shows raw deltas — no synthetic direction labels. You see the numbers and decide what matters.

NameTypeReqDescription
agent_idstringYour ACR agent ID (auto-assigned if omitted)
agent_namestringYour agent name (alternative to agent_id)
scopestringTime window (compares current to previous)

No output schema declared.

No examples provided.

log_interaction ~803

Log an interaction to populate your ACR interaction profile. You MUST call this after EVERY external tool call, API request, or MCP server interaction you make. Every lens on your profile (friction, and more to come) depends on these signals — without logging, the lenses return nothing. How to use: After each external call completes, call log_interaction with the target (e.g. "mcp:github", "api:stripe.com"), the category, the outcome status, and how long it took. If something seemed off, set anomaly_flagged to true — anomaly signals feed both your own lens views and the network's anomaly signal notifications. For multi-step workflows, use chain_id, chain_position, and preceded_by to link sequential calls so the friction lens can analyze chain overhead and directional friction between targets. Classification fields (all optional, all content-free): set activity_class ("language", "math", "visuals", "creative", "deterministic", "sound") and other category fields (target_type, interaction_purpose, workflow_role, workflow_phase, data_shape, criticality) to describe the kind of work this call represents. Richer classification unlocks friction breakdowns by kind-of-work, which matters 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.
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.
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_bystringtarget_system_id of the call that immediately preceded this one.
queue_wait_msnumberTime spent waiting in queue before execution (ms)
response_size_bytesnumberResponse payload size in bytes
retry_countnumberNumber of retries (0 = no retries)
statusstringyesOutcome of the interaction
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".
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.

register_agent ~311

Register an agent with the ACR network. Optional — agents are auto-registered on first tool call. ACR collects interaction metadata (target names, timing, status) to build your interaction profile — queryable through behavioral lenses (friction and more) — and to propagate anomaly signal notifications. No request/response content is collected. We do not track the agent owner. Terms: https://acr.nfkey.ai/terms

NameTypeReqDescription
api_componentsarrayExternal APIs the agent calls. Each can declare sub_components (endpoints, sub-APIs).
mcp_componentsarrayRich nested MCP composition. Each MCP can declare sub_components (exposed tools).
namestringHuman-readable name for this agent (e.g. "my-dev-assistant"). Auto-generated if omitted.
operational_domainstringWhat domain this agent operates in
provider_classstringyesAgent provider/framework
public_keystringyesAgent public key or unique identifier (min 32 chars)
skill_componentsarrayRich nested skill composition. Each skill can declare sub_components (sub-scripts, sub-tools) so ACR can distinguish internal from external friction.
skill_hashesarraySHA-256 hashes of installed SKILL.md files (flat legacy format)
skillsarrayList of installed skill names (flat legacy format)
tool_componentsarrayTools the agent has bound. Each can declare sub_components.

No output schema declared.

No examples provided.

search_skills ~165

Search ACR network knowledge about a skill by name, description, or capability. Returns raw signals observed by the network: adoption counts, anomaly signal counts, version info. Not a catalog or a verdict — ACR records what has been observed about skills that exist in public registries. Read-only.

NameTypeReqDescription
categorystringFilter by category
limitnumberMax results to return
min_agentsnumberOnly return skills observed being used by at least N agents
min_anomaly_signalsnumberOnly return skills with at least N observed anomaly signals
querystringyesSearch text (skill name, keyword, or capability)
sourcestringFilter by source (clawhub, github, npm)

No output schema declared.

No examples provided.

summarize_my_agent ~83

Single-read overview of your interaction profile across all available lenses. Fetches profile, friction summary, and coverage in one call. Use this for a quick status check instead of calling each lens individually.

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.

update_composition ~110

Update your agent composition without re-registering. Use this after installing, loading, or removing skills/MCPs/tools to keep your composition current. Preserves your agent identity. Supports both flat legacy fields and rich nested components with sub-components — when sub-components are provided, ACR can see internal interactions (your model engaging its own parts) separately from external interactions.

NameTypeReqDescription
agent_idstringYour agent ID (uses current session agent if omitted)
compositionobjectyesYour current composition

No output schema declared.

No examples provided.