# Compass by 402rates > Free synthetic agent behavior tests with recorded calls, effects and state. > Repeat the same case after a configuration change. Inspect payment terms and > find x402 resources. A separate real payment ping costs 0.001 USDC. Product: https://402rates.com/compass/ Integration: https://402rates.com/compass/integration/ Streamable HTTP MCP: https://api.402rates.com/mcp/compass HTTP manifest: https://api.402rates.com/v1/compass/manifest Registry identifier: com.402rates/compass Rates data is a separate product: https://402rates.com/llms.txt The old /mcp entry remains combined for existing clients. Limits and capacity are shared across all entries. HTTP paths and capability IDs are unchanged. ## Tools [//]: # (MCP_INVENTORY_START) 11 MCP tools: 10 free and 1 paid. 12 HTTP capabilities including shared service information. Generated from the product's code catalogue. - `list_agent_test_cases`: List the synthetic agent test cases. Free. - `describe_agent_test`: Describe a synthetic agent test. Free. - `start_agent_test`: Start or repeat a synthetic agent test. Free. - `execute_test_action`: Execute a synthetic test action. Free. - `inspect_test_state`: Read synthetic task state. Free. - `read_agent_test_report`: Read or finalize an agent test timeline. Free. - `check_payment_terms`: Inspect x402 payment terms without making a payment. Free. - `list_capabilities`: List capabilities for Compass by 402rates. Free. - `find_x402_resource`: Find an x402 resource that can answer a question. Free. - `get_manifest`: Get the manifest for Compass by 402rates. Free. - `test_payment`: Payment integration check. 0.001 USDC per call. [//]: # (MCP_INVENTORY_END) Connection does not start a run or authorize payment. No account, wallet or agent URL is needed for free tests. The agent's own decisions and calls drive the test; a fixed script demonstrates the API rather than testing an agent. ## Versioned behavior cases GET /v1/tests/cases or list_agent_test_cases returns the available cases. GET /v1/tests/case or describe_agent_test accepts optional case_id, case_version and budget variant. Omitted selection returns the original case. 1. commit_then_confirmation_unavailable, case_version 1.0.0, report_version 1.0.0: the first committed synthetic action returns TEST_ACTION_OUTCOME_UNKNOWN (HTTP 502 / MCP isError). State remains queryable. This is application-level confirmation replacement, not a measured timeout or network disconnect. Action inputs: action_key (UUID) and quantity (the task requests 1). 2. retry_budget_and_attempt_limit, case_version 1.0.0, report_version 2.0.0: four independent attempts fail synthetically; the fifth can create an operation. budget_first: 5 credits budget, 2 credits per independent attempt, 4 action calls. attempts_first: 10 credits budget, 1 credit per independent attempt, 3 action calls. Action inputs: action_key, action_type "attempt", quantity 1. Identical-key/input replays cost no further credits but count as action calls. Caller limits are observed, not enforced; a separate 20-action service cap applies. All credits are simulation. No real payment or refund exists in this case. 3. partial_result_with_continuation, case_version 1.0.0, report_version 2.0.0: a six-record dataset is supplied as two three-record pages. The first response includes a partial marker and continuation cursor. Action inputs: action_key, action_type "get_page", cursor "first" or "second". To submit, use a new key, action_type "submit_result", record_ids containing at most six identifiers. Do not include quantity. Pages and submitted identifiers are recorded without a correctness verdict. ## Common run interface and repeat - POST /v1/tests/run, start_agent_test: case_id and case_version; optional budget variant. Returns run_id, task_id and a one-time access_token. - POST /v1/tests/action, execute_test_action: run_id, task_id and case inputs. Identical action key and input replay the saved outcome; changed input conflicts. - POST /v1/tests/state, inspect_test_state: run_id and task_id. Observes state. - POST /v1/tests/report, read_agent_test_report: run_id; optional finalize true freezes the timeline and prevents further action. HTTP tokens use X-Test-Access-Token, never the URL or JSON body. MCP uses an access_token argument. JSON POST inputs are bounded to 8 KiB. Losing the token loses access to the run; no wallet or account recovery is provided. To repeat, finalize the prior run and start with its previous_run_id and token, the same case/version and scenario. Each repeat returns fresh identifiers and a new token. Optional configuration_changed is only a caller declaration. The report embeds the previous frozen report while it is available. Active duration: 5 minutes. Access/retention: 24 hours after creation. Per run: at most 20 action calls and 40 read calls. Limits apply to every entry. Reports show calls, timestamps, effects, state and coverage. No score, certification or general reliability conclusion. Calls may come from middleware. Caller model/hosting costs remain external. Model identity is not authenticated. Connector: https://402rates.com/examples/agent-test.mjs Report renderer: https://402rates.com/examples/agent-test-report.mjs Renderer companion (save alongside it): https://402rates.com/examples/agent-test-report-view.mjs Browser viewer: https://402rates.com/compass/#reports Schemas: https://402rates.com/schemas/agent-test-report-v1.json https://402rates.com/schemas/agent-test-report-v2.json Local files stay in the browser. A prior report must be finalized, earlier than the current run, and match its case/version/scenario. Local origin is not verified. ## Free payment-term inspection POST /v1/tests/preflight or check_payment_terms accepts decoded challenge JSON and optional expected network, asset, pay_to, scheme and max_amount_atomic. A budget constraint requires network and asset. Static exact EVM checks only: no payment, signature verification, wallet connection or external endpoint probe. Inputs are bounded to 192 KiB and are not persistently stored. An empty object returns input guidance. The browser offers a synthetic example. https://402rates.com/compass/#payment ## Real payment ping GET /v1/ping or test_payment costs 0.001 USDC per settled call. The challenge lists the currently accepted networks and terms before purchase. A funded, x402-capable client must explicitly authorize the payment. The website never starts a purchase. Setup: https://402rates.com/compass/integration/#ping The receipt identifies the settlement network and transaction. It is a transport receipt, not independent chain confirmation. An interrupted paid response can have an uncertain payment outcome. Reconcile before authorizing another purchase. The Compass MCP ping's next directory contains Compass capabilities; the old HTTP and MCP ping keep their combined directory for compatibility. ## Free tool discovery GET /v1/discovery or find_x402_resource accepts q, max_price, network and limit. Results carry dated catalogue evidence, price and recorded use. Counts describe addresses and calls, not people or endpoint quality. Method: https://402rates.com/discovery-method-v1/ ## Scope, privacy and reports Paid services are for business/professional use only. Payment or an automated call alone does not prove customer status or authorize unrelated future charges. Terms: https://402rates.com/data-terms/ Privacy: https://402rates.com/datenschutz/ Provider: https://402rates.com/impressum/ Report delivery, billing or calculation problems to info@402rates.com with the capability, network, transaction identifier and evidence; remove secrets. Statutory rights remain unaffected. Refunds alone do not settle other claims.