Agent workflows
This is the public integration overview. For machine-readable instructions, point the agent at:
https://docs.locus.report/skill.md
For Codex-style agents, install the Locus skill directly:
npx @velinussage/locus-agent-skill addWhat an agent can do
- Check what works for a location before spending. The free
locus_lane_availabilitytool is the know-before-you-pay preflight: give it a ZIP or address and it returns which lanes work there — national, local, varies, or not covered — plus, per paid tool, a price, manifest URL, and a buy signal. Works for any geocodable US address. - Pull property context such as taxes, flood, zoning, environmental records, permits, development cases, policy artifacts, and transportation projects.
- Ask for a focused report or brief instead of a broad crawl.
- Keep a property picture current through recurring monitoring.
- Return verification questions instead of unsupported conclusions.
MCP
{ "mcpServers": { "locus": { "type": "http", "url": "https://mcp.locus.report/mcp" } }}Transport is streamable HTTP at https://mcp.locus.report/mcp — point any MCP client at that URL. Discovery and the free coverage tools need no auth. Running a paid tool requires an x402 payment in the same locus_execute call (see Paying for paid tools below).
The MCP server exposes:
locus_search_tools— search the live catalog.locus_execute— run one selected tool by name (free tools run immediately; paid tools return an x402 challenge until payment is attached).
The free coverage/availability tools an agent should call first:
locus_lane_availability— the per-address preflight: which lanes return data for a ZIP/address (national / local / varies / not covered), with a per-paid-tool price, manifest, and buy signal. Know before you pay.locus_coverage_check— a single place’s trend / parcel / policy coverage.locus_coverage_map— the whole registry: every lane and where it is covered.
A2A and REST
- Agent Card: https://api.locus.report/.well-known/agent-card.json
- A2A message send:
POST https://api.locus.report/a2a/v1/message:send - Free tool catalog: https://api.locus.report/tools/list
- Paid tool index: https://api.locus.report/.well-known/ai-tool/index.json
Live catalogs are the source of truth for tool names, schemas, and prices.
Paying for paid tools (x402)
Discovery, coverage, and the free /tools/call façade never charge. The compiled paid tools — the place report (locus-place-report), the local trend brief, the local policy brief, before-you-sign, and the environmental-context brief — are gated with x402 micropayments in USDC on Base. Prices and the recipient are authoritative in the live paid-tool manifest — read them from there, never hardcode them.
The flow is the standard x402 challenge-and-repeat, and it is the same whether you call over REST, MCP, or A2A:
-
Call the paid tool without payment. REST:
POST https://api.locus.report/api/<tool-slug>(the place report also answers atPOST /api/analyze). MCP:locus_execute. A2A:POST /a2a/v1/message:send. -
Read the 402 challenge. A covered place returns HTTP 402 with a JSON body whose
accepts[]carries the payment requirements:{"x402Version": 2,"accepts": [{"scheme": "exact","network": "eip155:8453","maxAmountRequired": "<amount in USDC base units>","payTo": "0x… (Locus recipient)","asset": "0x… (Base USDC)","resource": "https://api.locus.report/api/locus-place-report","extra": { "assetTransferMethod": "eip3009", "name": "USD Coin", "version": "2" }}]}Use the values from the live challenge — not these placeholders — to build the payment.
-
Pay and repeat. Sign an EIP-3009 USDC transfer authorization for
maxAmountRequiredtopayToonnetwork(an x402 client such asx402-fetch/x402-axios, or the Coinbase x402 SDK, does this), put it in theX-PAYMENTrequest header, and resend the identical request. -
Receive the artifact. On settlement Locus returns the paid result plus an
X-PAYMENT-RESPONSEheader with the settlement reference.
Always surface the price, network, and recipient to the user before paying, and only retry after authorization. Coverage comes before charge: unsupported or discovery-only places return a free diagnostic, never a 402. Payment binds to the tool and a canonical hash of the arguments (not the raw address), so a replayed or redelivered payment for the same call is idempotent and never double-charges.
Request shape
place + user goal-> discover the smallest useful tool-> check coverage/source fit (locus_lane_availability)-> execute one selected tool-> answer only from returned artifacts-> show limits and verify-next stepsCoverage comes before payment. Unsupported or partially covered paid requests return diagnostics instead of silent charges.
Data-center awareness
For a data center, compute campus, server farm, or crypto-mining concern, call locus_data_center_watch. It returns a bounded official-source search plan plus water, grid, land-use, hearing, incentive, ordinance, and local-decision paths to verify. It does not run web search or claim a match/no-match by itself; a search-capable agent must execute the query pack and cite official sources before reporting any finding.
Boundary
Locus is a property-context tool, not a decision engine. If a user asks for a score, ranking, screening decision, valuation, or safe/unsafe label, return the relevant records and verification questions instead. See Accuracy and boundaries.