Low Risk

get_revealed_preference

Query the revealed-preference lens: what the agent *declared* in its composition vs what it *actually called* during the window. Only ACR can see both — so this is the view no self-report and no server log can produce alone. The lens classifies every target into one of four buckets: • bound_uncal...

Risk signalsBulk/mass operation — affects multiple targets

Part of the ACR — Agent Composition Records server.

get_revealed_preference is read-only, but an agent in a loop can still rack up calls and cost. PolicyLayer caps every call before it runs. Live in minutes.

SECURE ACR — AGENT COMPOSITION RECORDS →

Free to start. No card required.

AI agents call get_revealed_preference to retrieve information from ACR — Agent Composition Records without modifying any data. This is common in research, monitoring, and reporting workflows where the agent needs context before taking action. Because read operations don't change state, they are generally safe to allow without restrictions -- but you may still want rate limits to control API costs.

Even though get_revealed_preference only reads data, uncontrolled read access can leak sensitive information or rack up API costs. An agent caught in a retry loop could make thousands of calls per minute. A rate limit gives you a safety net without blocking legitimate use.

Read-only tools are safe to allow by default. No rate limit needed unless you want to control costs.

policy.json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "get_revealed_preference": {}
  }
}

See the full ACR — Agent Composition Records policy for all 30 tools.

Get this rule live on your own ACR — Agent Composition Records server in minutes. PolicyLayer enforces it on every call, before it runs.

ENFORCE ON MY ACR — AGENT COMPOSITION RECORDS →

View all 30 tools →

These attack patterns abuse exactly the kind of access get_revealed_preference gives an agent. Each links to the full case and the policy that stops it:

Browse the full MCP Attack Database →

Every attack above starts with a tool call. PolicyLayer checks each one against your policy first, so get_revealed_preference only ever does what you allow.

SECURE ACR — AGENT COMPOSITION RECORDS →

Other read tools across the catalogue. The same approach applies to each: allow, with a rate cap to control cost.

What does the get_revealed_preference tool do? +

Query the revealed-preference lens: what the agent *declared* in its composition vs what it *actually called* during the window. Only ACR can see both — so this is the view no self-report and no server log can produce alone. The lens classifies every target into one of four buckets: • bound_uncalled — declared in composition, never called. Dead weight in the context window. • bound_underused — declared, called fewer than 3 times. Possibly low-value, possibly just task-gated. • bound_active — declared and called meaningfully. Healthy signal. • called_unbound — called without being declared. Composition drift — your declared environment doesn't match reality. When both composition sources are present (mcp_observed + agent_reported), the summary reports binding_source_disagreements — targets one source lists and the other doesn't. A disagreement on a target the agent actually calls is a strong integrity signal. Defaults to scope=yesterday (complete prior day). A live "today" window always undercounts the agent's steady state. Source defaults to 'agent' so the called-set is the agent's real traffic, not observer self-log.. It is categorised as a Read tool in the ACR — Agent Composition Records MCP Server, which means it retrieves data without modifying state.

How do I enforce a policy on get_revealed_preference? +

Register the ACR — Agent Composition Records MCP server in PolicyLayer and add a rule for get_revealed_preference: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches ACR — Agent Composition Records. Nothing to install.

What risk level is get_revealed_preference? +

get_revealed_preference is a Read tool with low risk. Read-only tools are generally safe to allow by default.

Can I rate-limit get_revealed_preference? +

Yes. Add a rate_limit block to the get_revealed_preference rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block get_revealed_preference completely? +

Set action: deny in the PolicyLayer policy for get_revealed_preference. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides get_revealed_preference? +

get_revealed_preference is provided by the ACR — Agent Composition Records MCP server (@tethral/acr-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policy on every ACR — Agent Composition Records tool call.

Deterministic rules across all 30 ACR — Agent Composition Records tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

4,600+ MCP servers and 31,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.