Crosspeel

MCP

An MCP server an agent calls mid-run to ask whether the endpoints it is about to use are duplicates of each other.

MCP - Model Context Protocol - is the tool-calling standard. It is not a payment protocol. Payment for this server is handled by x402 at the transport layer, in USDC on Base. There is no package to install, no key to obtain, and no account to create.

Install

The server address is published here when the server is deployed. Nothing on this page is installable before then. The tool schemas, the response format, and the payment envelope below are final and can be read against now.

Tools

check_stack

The primary tool. Given 2 to 12 endpoint URLs, it returns the groups that returned identical responses, the endpoints that matched nothing, the observed price of each, and which member of each group is cheapest.

cached answers from the existing corpus only, costs less, and returns immediately. live triggers a probe run, costs more, takes longer, and adds to the corpus.

input:
  endpoints  string[]   2 to 12 URLs
  depth      string     "cached" | "live"   default "cached"

output:
  checked_at        string
  depth             string
  groups            [ { endpoint_ids: string[],
                        matched_fields: int,
                        compared_fields: int,
                        confidence: string } ]
  unmatched         string[]
  prices            [ { endpoint: string,
                        price_usd: number,
                        multiple_vs_cheapest: number,
                        observed_at: string } ]
  cheapest_in_group [ { group: int, endpoint: string } ]
  coverage          { known: int, unknown: int }
  limits            string[]

get_cluster

Given an endpoint URL, returns its cluster if it has one, with the member list, the price range, the spread multiple, the confidence, and the URL of the public evidence page.

cheapest_equivalent

Given an endpoint URL, returns the cheapest observed member of its cluster with the price difference and the date that price was observed. Where no cluster exists it returns nothing rather than a guess.

What the response guarantees

These hold on every call. An agent acts on the response without a human reading it, so they are enforced in the server rather than left to convention.

  • A match is never returned at confidence: low. The endpoints are returned as unmatched, with the reason.
  • Every price carries observed_at. A stale price acted on automatically is a real cost to the caller.
  • coverage is always present, so an absence of duplication can be told apart from an absence of data. An endpoint that has never been observed is reported as unknown rather than as clean.
  • limits is always present and carries the four things the method cannot see, in full, in every payload. They are also published at /method.

What it costs per call

The per-call price is quoted in the x402 payment challenge the server returns, so a caller reads it at the moment of the call rather than from this page. The cached depth is priced below the livedepth, which carries the cost of the probe run it triggers. Both figures are set from the measured price census rather than chosen.

Payment envelope

protocol   x402 over HTTP
asset      USDC
chain      Base mainnet
chain_id   eip155:8453

The facilitator is stated here once it is confirmed at deployment. The receiving address is published here once it is set. No payment is quoted against an address this page has not stated.

Payment is per call at the transport layer. A caller that does not pay receives a 402 with the quote and no data.

What is public and what is not

The client, the tool schemas, and the response format are in the public repository. The comparison engine and the corpus are not. The method is published at /method and the findings it produces are at /clusters.