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

ACR — Agent Composition Records

NPM · @TETHRAL/ACR-MCP · SCANNED SEP 21

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

Available components

0 this week 92 Trust /100
Trust breakdown (7 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 → Why this is hard to 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 59 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).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 Management93
  • Stability observed for 28 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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the ACR — Agent Composition Records MCP server?

ACR — Agent Composition Records runs locally as an npm package, launched with npx -y @tethral/acr-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @tethral/acr-mcp

# add to Claude Code
claude mcp add tethral-inc-acr -- npx -y @tethral/acr-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "tethral-inc-acr": {
      "command": "npx",
      "args": [
        "-y",
        "@tethral/acr-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "tethral-inc-acr": {
      "command": "npx",
      "args": [
        "-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"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "tethral-inc-acr": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@tethral/acr-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add tethral-inc-acr -t stdio -c npx -a -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.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 16 Sept 26 0
    • Stability: 0.97 → pass security
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 −3
    • Stability: pass → 0.80 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 21 Sept 2026 · Analysed npm/@tethral/acr-mcp@2.14.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
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

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

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.

Common questions

What is the ACR — Agent Composition Records MCP server?

ACR — Agent Composition Records is an MCP server listed in the public MCP registry as io.github.Tethral-Inc/acr. Interaction profile registry for AI agents. Log interactions, query behavioral lenses. This page covers its npm package (@tethral/acr-mcp).

Is the ACR — Agent Composition Records MCP server safe to use?

ACR — Agent Composition Records scores 92 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ACR — Agent Composition Records MCP server expose?

ACR — Agent Composition Records exposes 7 tools: orient_me, get_my_agent, log_interaction, get_friction_report, summarize_my_agent, and 2 more. Their descriptions and schemas cost roughly 1,955 tokens of context every time the server is loaded.

Is the ACR — Agent Composition Records MCP server still maintained?

ACR — Agent Composition Records is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the ACR — Agent Composition Records MCP server under?

ACR — Agent Composition Records declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.