Skip to main content
Glama

ARC (arcreport.ai): can an agent reach checkout?

Report the outcome

report_outcome

Call this right after your agent tried to check out at a store, whatever happened, so the next agent knows. Free, no login. Omit contributor_key and ARC issues one; send it on later reports. No personal data: emails, phones, addresses, card numbers and IPs are rejected or stripped. Example: report_outcome({"store_domain":"allbirds.com","agent_family":"browser","agent_name":"my-agent","timestamp":"2026-11-05T10:00:00Z","furthest_step":"checkout","blocker":"none"}) → {"ok":true,"status":"unverified",…}. A report stays private until 3 independent contributors agree. Same as POST /api/outcomes and report_checkout on /api/mcp. Errors: {error:{code, message, next_step}}.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "store_domain": "<store_domain>",
      "agent_family": "<agent_family>",
      "agent_name": "<agent_name>",
      "timestamp": "<timestamp>",
      "furthest_step": "<furthest_step>",
      "blocker": "<blocker>"
    },
    "name": "report_outcome"
  }
}

Input Schema

NameRequiredDescriptionDefault
blockerYesWhat stopped the agent, or none.
timestampYesISO 8601 time of the attempt, within the last 14 days.
agent_nameYesName of the agent that tried the checkout. No personal name.
agent_familyYesAgent family, such as browser or a model family. No personal name.
store_domainYesStore hostname, such as allbirds.com.
furthest_stepYesFurthest step the agent reached.
contributor_keyNoOptional. Omit it and ARC returns a free key. Send that key on later reports.
store_error_textNoOptional store error text. Personal data is stripped.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare this is a non-read-only, non-idempotent, non-destructive, closed-world write, and the description adds real behavioral context on top: it is free and needs no login, contributor_key behavior (omit it and ARC issues a key to reuse), a strict no-personal-data policy with specific rejected field types, the fact that a report stays private until 3 independent contributors agree, and the exact error envelope shape. That is well beyond what the structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the trigger, then layers the key facts (free/no login, contributor_key, privacy, example, verification, aliases, errors) in a compact block with no filler sentences. It is dense but each clause carries information; the example and error-envelope sentences are arguably compressible but earn their place for a first-time caller.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description responsibly supplies the response shape ({"ok":true,"status":"unverified",…}) and the error shape, so an agent knows what to expect. Given eight parameters and six required fields, it covers timing, privacy constraints, key handling, and verification, leaving only marginal gaps such as duplicate-report handling or rate limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and every property already carries a description and enums, so the baseline would be 3. The description still adds non-schema meaning by explaining the contributor_key lifecycle across later reports and by restating the redaction rule for free-text fields, plus an example that shows how the six required fields are actually filled in.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb (report), the exact resource (the outcome of a checkout attempt), and the timing ('right after your agent tried to check out at a store, whatever happened'), which separates it cleanly from pre-check siblings like before_checkout, precheck, and can_agent_checkout. The worked example with a concrete payload makes the intended record unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trigger condition and timing are explicit ('right after your agent tried to check out... whatever happened'), which is exactly the when-to-use signal an agent needs. It also equates itself with POST /api/outcomes and report_checkout on /api/mcp. What's missing is any explicit when-NOT-to-use or a named sibling alternative (e.g. why_blocked_and_fix) for agents that want diagnosis rather than reporting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources