Server data from the Official MCP Registry
Interaction profile registry for AI agents. Log interactions, query behavioral lenses.
Interaction profile registry for AI agents. Log interactions, query behavioral lenses.
Valid MCP server (1 strong, 1 medium validity signals). 1 known CVE in dependencies (1 critical, 0 high severity) ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
15 files analyzed · 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: ACR_API_URL
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-tethral-inc-acr": {
"env": {
"ACR_API_URL": "your-acr-api-url-here"
},
"args": [
"-y",
"@tethral/acr-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
A behavioral registry and observation network for AI agents. Agents register their composition, log their interactions, and query behavioral profiles through lenses. If we observe anomaly signals affecting an agent's composition, we notify the agent.
ACR is an interaction profile registry. Agents log what they do (external tool calls, API requests, MCP interactions). Those signals compile into a behavioral profile over time, which you can query through lenses — each lens a different way of interpreting the same underlying signals.
The friction lens is the first one shipped: bottleneck detection, chain overhead analysis, retry waste, population baselines, directional friction between targets. More lenses (reliability, quality) are on the roadmap.
ACR is not a security product. We don't evaluate skills, test for compromise, or block anything. We're closer to HIBP or contact tracing: we register events and propagate notifications. If we observe anomaly signals affecting an agent's composition, we notify the agent. We don't track the agent's owner, so we have no mechanism to notify them beyond the agent's activities.
Anomaly signal: a behavioral pattern observed across multiple unrelated agents — not a security alert. It means the network saw something unusual on this component. You decide if it matters.
Before ACR: Your agent makes 40 tool calls in a session. It's slow. You don't know why — there's no visibility into which targets are failing, which are slow, or which are eating retry budget.
After ACR: get_friction_report tells you api:openai.com is responsible for 68% of total wait time at a 4 500 ms median, and api:flaky-vendor.com has a 100% failure rate across 6 calls — matching the network-wide rate, so it's infrastructure, not your code. You cache the OpenAI calls, drop the flaky vendor, and cut session time in half.
ACR doesn't make that decision. It gives you the numbers.
We maintain a registry of agent skills that we update continuously. We are not a security check. If we observe anomaly signals affecting a skill in an agent's composition, we notify the agent. Because we do not track the agent's owner, we have no mechanism to notify them beyond the agent's activities.
Agents don't get skills from ACR — we observe skills that already exist in the ecosystem (via public registries like npm and GitHub) and keep track of behavioral signals tied to them.
Add this to your Claude Code settings (.claude/settings.json or via IDE):
{
"mcpServers": {
"acr": {
"command": "npx",
"args": ["@tethral/acr-mcp"]
}
}
}
Your agent auto-registers, gets a name (e.g. anthropic-amber-fox), and starts building its interaction profile on the first log_interaction call.
get_my_agent — get your dashboard link, API key, and a health snapshotlog_interaction after every external tool call — every lens depends on these signalssummarize_my_agent after a session — see where your time wentNot sure where you are? Call getting_started for a personalised checklist.
npm install @tethral/acr-sdk # TypeScript/Node.js
pip install tethral-acr # Python
import { ACRClient } from '@tethral/acr-sdk';
const acr = new ACRClient();
// Register your agent's composition
const reg = await acr.register({
public_key: 'your-agent-key-here-min-32-chars',
provider_class: 'anthropic',
composition: { skill_hashes: ['hash1', 'hash2'] },
});
// Log an interaction (this is the foundation — everything else flows from this)
await acr.logInteraction({
target_system_id: 'mcp:github',
category: 'tool_call',
status: 'success',
duration_ms: 340,
});
// Query the friction lens of your profile
const friction = await acr.getFrictionReport(reg.agent_id, { scope: 'day' });
// Check for anomaly signal notifications
const notifs = await acr.getNotifications(reg.agent_id);
Friction Report for anthropic-amber-fox (day)
── Summary ──
Interactions: 847
Total wait: 132.4s
Friction: 14.2% of active time
Failures: 12 (1.4% rate)
── Top Targets ──
mcp:github (mcp_server)
214 calls | 38.1% of wait time
median 280ms | p95 1840ms
vs population: 42% slower than baseline (volatility 1.8)
You have 1 unread notification:
[HIGH] Component in your composition reported anomalies
A skill in your current composition has been reported with
suspicious activity across multiple agents in the network.
Review with your operator before continuing use.
| Tool | What it does |
|---|---|
log_interaction | Log an interaction — the foundation for everything |
get_friction_report | Query the friction lens of your interaction profile |
get_interaction_log | Raw interaction history with network context |
get_network_status | The COVID-tracker / HIBP view for agent infrastructure |
get_my_agent | Your agent identity and registration state |
check_environment | Active compromise flags and network health on startup |
get_notifications | Unread anomaly signal notifications for your composition |
acknowledge_threat | Acknowledge a notification after reviewing it |
update_composition | Update your composition without re-registering |
register_agent | Explicit registration (auto-registration is default) |
check_entity | Ask the network what it knows about a skill/agent/system |
get_skill_tracker | Adoption and anomaly signals for tracked skills |
get_skill_versions | Version history for a skill hash |
search_skills | Query the network's knowledge of a skill by name |
Agents (Claude, OpenClaw, custom)
|
+--> MCP Server (@tethral/acr-mcp)
| or SDK (@tethral/acr-sdk / tethral-acr)
|
+--> Resolver API (Cloudflare Workers, edge-cached)
| Lookups, composition checks, notification feed
|
+--> Ingestion API (Vercel serverless)
| Registration, interaction receipts, friction queries, notifications
|
+--> CockroachDB (distributed SQL)
| Interaction profiles, agent registry, skill observation data
|
+--> Background Jobs
Skill observation crawlers
Anomaly signal computation
Friction baseline computation
Notification dispatch
ACR collects interaction metadata only: target system names, timing, status, chain context, and provider class. No request/response content, API keys, prompts, or PII is collected. Your interaction profile is visible only to you. Population baselines use aggregate statistics.
What we collect:
mcp:github, api:stripe.com)anthropic, openai)chain_id, chain_position, preceded_by)What we do NOT collect:
Data usage:
Data retention:
Third-party sharing: None. ACR does not sell, share, or transfer interaction data to third parties.
Contact: security@tethral.com
node scripts/test-agent-lifecycle.mjs
Simulates a full agent lifecycle: register, log interactions, query the friction lens, check for notifications.
pnpm install # Install dependencies
pnpm build # Build all packages
pnpm test:unit # Run unit tests
node scripts/run-migration.mjs up # Run DB migrations
node scripts/test-agent-lifecycle.mjs # Run integration test
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.