{"server":"world.agentindex/x402","count":100,"tools":[{"name":"agent_health","title":"Agent Health Check","description":"Fresh operational audit of any public agent or paid API: reachability, latency, HTTP status, x402 challenge, price/network/payTo, OpenAPI, agent card and MCP manifest. Returns a 0-100 score, verdict and issues. Try GET /agent-health/sample.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public agent, MCP or x402 endpoint URL to audit."},"method":{"type":"string","default":"GET","description":"HTTP method for the target endpoint; defaults to GET."}},"additionalProperties":false},"output_schema":{"type":"object","required":["url","origin","operational","verdict","score","latency_ms","target","x402","discovery","issues"],"properties":{"url":{"type":"string"},"x402":{"type":"object"},"score":{"type":"integer"},"issues":{"type":"array","items":{"type":"string"}},"origin":{"type":"string"},"target":{"type":"object"},"verdict":{"enum":["operational","degraded","unreachable"],"type":"string"},"discovery":{"type":"object"},"latency_ms":{"type":"integer"},"operational":{"type":"boolean"},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"ask_model","title":"Ask Model (LLM Gateway)","description":"437 models, no account, no API key, pay per call in USDC - OpenAI-compatible chat completions and AI inference gateway (Claude, GPT, Gemini, Llama, Mistral and more in one endpoint). Price: from $0.001, computed from your max_tokens × model rate × 1.10 (you sign a ceiling; unused tokens are not refunded). 20s server-side timeout - never charged if it fires; set your client timeout to 30s. Try GET /v1/chat/completions/sample.","input_schema":{"type":"object","required":["model","messages"],"properties":{"model":{"type":"string","description":"OpenRouter model id from GET /v1/models, e.g. \"openai/gpt-4o-mini\"."},"messages":{"type":"array","items":{},"description":"OpenAI-format chat messages: [{role, content}, ...]."},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Max completion tokens, capped at 4096 - also bounds the x402 upto price ceiling."}},"additionalProperties":false},"output_schema":{"type":"object","required":["choices","usage"],"properties":{"id":{"type":"string"},"model":{"type":"string"},"usage":{"type":"object"},"choices":{"type":"array","items":{"type":"object"}},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":false},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_allowance","title":"Base Allowance","description":"ERC20 allowance on Base mainnet via RPC: how much a spender is approved to move from an owner balance, read with allowance(owner,spender) eth_call.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"AllowanceInput","required":["token","owner","spender"],"properties":{"owner":{"type":"string","title":"Owner"},"token":{"type":"string","title":"Token"},"spender":{"type":"string","title":"Spender"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_basename","title":"Base Basename","description":"Resolve a Basename, Base's native ENS-equivalent, to its wallet address via the L2 Basenames resolver.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"BasenameInput","required":["name"],"properties":{"name":{"type":"string","title":"Name"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_block","title":"Base Block","description":"Fetch a Base mainnet block header and transaction hashes by number, tag (latest/earliest/safe/finalized), or hash via eth_getBlockByNumber/eth_getBlockByHash.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"BlockInput","properties":{"hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hash","default":null},"number":{"anyOf":[{},{"type":"null"}],"title":"Number","default":null}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_block-number","title":"Base Block Number","description":"Latest Base mainnet block height via eth_blockNumber - the current chain tip.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"BlockNumberInput","properties":{}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_call","title":"Base Call","description":"Generic read-only eth_call against any Base mainnet contract - pass raw calldata, get the raw return data back.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"CallInput","required":["to"],"properties":{"to":{"type":"string","title":"To"},"data":{"type":"string","title":"Data","default":"0x"},"value_wei":{"type":"integer","title":"Value Wei","default":0},"from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Address","default":null}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_can-sell","title":"Base Can Sell","description":"Can I sell this token? Honeypot check that simulates a real buy then a real sell of a Base mainnet token in one atomic on-chain call via Uniswap V2 - if the sell reverts, that is a honeypot, reported with the exact decoded reason. Factual, never predictive.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"CanSellInput","required":["token"],"properties":{"token":{"type":"string","title":"Token"},"test_eth_wei":{"type":"integer","title":"Test Eth Wei","default":10000000000000000,"exclusiveMinimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_chain-id","title":"Base Chain Id","description":"Base mainnet chain ID (EIP-155) via eth_chainId - confirm which network you're actually talking to.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"ChainIdInput","properties":{}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_code","title":"Base Code","description":"Check whether a Base mainnet address is a contract via eth_getCode - returns bytecode size, zero for an externally-owned account.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"AddressInput","required":["address"],"properties":{"address":{"type":"string","title":"Address"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_contract","title":"Base Contract","description":"Contract introspection on Base mainnet - is it a contract, bytecode size, best-effort owner(), and whether it's a proxy.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"AddressInput","required":["address"],"properties":{"address":{"type":"string","title":"Address"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_erc1155-balance","title":"Base Erc1155 Balance","description":"ERC1155 multi-token balance for a wallet and token id on Base mainnet via balanceOf(address,uint256).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"Erc1155BalanceInput","required":["token","wallet","token_id"],"properties":{"token":{"type":"string","title":"Token"},"wallet":{"type":"string","title":"Wallet"},"token_id":{"type":"integer","title":"Token Id","minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_erc20-balance","title":"Base Erc20 Balance","description":"ERC20 token balance for a wallet on Base mainnet - balanceOf() and decimals() batched into one Multicall3 round trip.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"TokenWalletInput","required":["token","wallet"],"properties":{"token":{"type":"string","title":"Token"},"wallet":{"type":"string","title":"Wallet"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_erc20-transfers","title":"Base Erc20 Transfers","description":"ERC20 Transfer event logs for one token over a Base mainnet block range (max 2,000 blocks) via eth_getLogs.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"Erc20TransfersInput","required":["token","from_block","to_block"],"properties":{"token":{"type":"string","title":"Token"},"to_block":{"type":"integer","title":"To Block","minimum":0},"from_block":{"type":"integer","title":"From Block","minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_erc721-tokens","title":"Base Erc721 Tokens","description":"NFT holdings for a wallet in one Base ERC721 collection, owned token IDs via ERC721Enumerable (tokenOfOwnerByIndex) - up to 20 tokens, requires the collection to implement Enumerable.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"Erc721TokensInput","required":["token","wallet"],"properties":{"token":{"type":"string","title":"Token"},"wallet":{"type":"string","title":"Wallet"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_estimate-gas","title":"Base Estimate Gas","description":"Gas estimate for a Base mainnet swap or any other call (to/from/value/data) via eth_estimateGas, without broadcasting a transaction.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"EstimateGasInput","required":["to"],"properties":{"to":{"type":"string","title":"To"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data","default":null},"value_wei":{"type":"integer","title":"Value Wei","default":0},"from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Address","default":null}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_events","title":"Base Events","description":"Smart contract event logs on Base mainnet (Base contract events) via eth_getLogs - filter by contract address and up to 4 topics, up to 2,000 blocks, raw logs with topics, data, block and tx hash.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"EventsInput","required":["from_block","to_block"],"properties":{"topics":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":"Topics","maxItems":4},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address","default":null},"to_block":{"type":"integer","title":"To Block","minimum":0},"from_block":{"type":"integer","title":"From Block","minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_live-balance","title":"Base Live Balance","description":"Native ETH balance plus up to 20 ERC20 token balances for one wallet on Base mainnet, in a single Multicall3 round trip regardless of token count.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"LiveBalanceInput","required":["wallet"],"properties":{"tokens":{"type":"array","items":{"type":"string"},"title":"Tokens","maxItems":20},"wallet":{"type":"string","title":"Wallet"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_network-info","title":"Base Network Info","description":"Base mainnet network info in one call: chain ID, block height, and current gas price (wei and gwei).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"NetworkInfoInput","properties":{}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_nft-metadata","title":"Base Nft Metadata","description":"NFT metadata URI for an ERC721 token on Base mainnet via tokenURI - the on-chain pointer (IPFS, HTTP, or data URI), not a fetch of the document itself.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"NftTokenInput","required":["token","token_id"],"properties":{"token":{"type":"string","title":"Token"},"token_id":{"type":"integer","title":"Token Id","minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_nft-owner","title":"Base Nft Owner","description":"Who owns this NFT? ERC721 owner lookup on Base mainnet via ownerOf(tokenId).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"NftTokenInput","required":["token","token_id"],"properties":{"token":{"type":"string","title":"Token"},"token_id":{"type":"integer","title":"Token Id","minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_nonce","title":"Base Nonce","description":"Next transaction nonce for any Base mainnet wallet via eth_getTransactionCount - how many transactions it has sent.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"AddressInput","required":["address"],"properties":{"address":{"type":"string","title":"Address"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_pending","title":"Base Pending","description":"The current pending Base mainnet block (mempool, not yet mined) - unconfirmed transactions via eth_getBlockByNumber('pending').","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"PendingInput","properties":{}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_proxy","title":"Base Proxy","description":"Is this Base contract an upgradeable proxy? Proxy contract detection for EIP-1967 (transparent/UUPS), beacon, or EIP-1822 patterns, returning the implementation address.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"AddressInput","required":["address"],"properties":{"address":{"type":"string","title":"Address"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_quote","title":"Base Quote","description":"Slippage estimate, swap quote, and best DEX price on Base - compares Uniswap v2, Uniswap v3, and Aerodrome on-chain via Multicall3, returns amount received, chosen path, and price impact.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"QuoteInput","required":["token_in","token_out","amount_in"],"properties":{"token_in":{"type":"string","title":"Token In"},"amount_in":{"type":"integer","title":"Amount In","exclusiveMinimum":0},"token_out":{"type":"string","title":"Token Out"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_receipt","title":"Base Receipt","description":"Transaction receipt via eth_getTransactionReceipt - status, gas used, and event logs for a mined Base mainnet transaction.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"HashInput","required":["hash"],"properties":{"hash":{"type":"string","title":"Hash"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_simulate","title":"Base Simulate","description":"Simulate a Base mainnet transaction before sending it - will it succeed, estimated gas, and the decoded revert reason if it would fail.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"SimulateInput","required":["from_address","to"],"properties":{"to":{"type":"string","title":"To"},"data":{"type":"string","title":"Data","default":"0x"},"value_wei":{"type":"integer","title":"Value Wei","default":0},"from_address":{"type":"string","title":"From Address"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_storage","title":"Base Storage","description":"Read a contract storage slot on Base mainnet via eth_getStorageAt - the raw 32-byte value, decoded as hex and unsigned integer, zero-filled if unset.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"StorageInput","required":["address","slot"],"properties":{"slot":{"title":"Slot"},"address":{"type":"string","title":"Address"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_total-supply","title":"Base Total Supply","description":"Total supply for an ERC20 (normalized by decimals()) or ERC721 (raw count, no decimals) contract on Base mainnet.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"TokenInput","required":["token"],"properties":{"token":{"type":"string","title":"Token"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"base_tx","title":"Base Tx","description":"Base transaction lookup by hash - sender, recipient, value, calldata, gas and block, live from Base mainnet via eth_getTransactionByHash.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"HashInput","required":["hash"],"properties":{"hash":{"type":"string","title":"Hash"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"can_pay","title":"Wallet Can Pay","description":"Check whether a Base wallet holds enough USDC to pay an x402 amount (default $0.001). Returns balance, can_pay, shortfall. The checklist agents run before spending. Try GET /can-pay/sample.","input_schema":{"type":"object","required":["address"],"properties":{"amount":{"type":"number","default":0.001,"description":"USDC amount the agent plans to spend (default 0.001)."},"address":{"type":"string","description":"EVM wallet address (0x…) to check on Base mainnet."}},"additionalProperties":false},"output_schema":{"type":"object","required":["address","usdc","can_pay"],"properties":{"eth":{"type":"object"},"usdc":{"type":"object"},"address":{"type":"string"},"can_pay":{"type":"boolean"},"network":{"type":"string"},"x402_receipt":{"type":"object"},"shortfall_usdc":{"type":"number"},"amount_requested":{"type":"number"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"classify","title":"Text Classification","description":"Text classification with your own custom labels (2-20) - categorize a support ticket, a review, or any text into the best-fitting label, with a confidence score and an alternate label. Powered by Jev, falling back to a Groq-hosted LLM if Jev is slow or unavailable - under 4.5s guaranteed. Try GET /classify/sample.","input_schema":{"type":"object","required":["text","labels"],"properties":{"text":{"type":"string","description":"Text to classify, up to 4000 characters."},"labels":{"type":"array","items":{"type":"string"},"description":"2 to 20 candidate labels, your own choice of wording."}},"additionalProperties":false},"output_schema":{"type":"object","required":["label","probability","engine"],"properties":{"label":{"type":"string","description":"The best-fitting label."},"engine":{"enum":["jev","fallback"],"type":"string","description":"Which engine answered: Jev (primary) or the Groq-hosted LLM fallback."},"probability":{"type":"number","description":"Confidence in `label`, 0 to 1."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"alternate_label":{"type":["string","null"],"description":"The second-best label, if any."},"alternate_probability":{"type":["number","null"],"description":"Confidence in `alternate_label`, if known."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"contact_kairos","title":"Contact Kairos","description":"Write to Kairos and optionally DECLARE yourself (what_i_do, endpoint, skills) — free, no payment. Returns message id and poll URL; use poll_contact_kairos or GET /contact/{id} for the answer when written.","input_schema":{"type":"object","required":["sender","subject","body"],"properties":{"body":{"type":"string"},"sender":{"type":"string"},"subject":{"type":"string"},"reply_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"declares_skills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"declares_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"declares_what_i_do":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"coordination_thread_schema","title":"Coordination Thread Schema","description":"Return the JSON Schema for coordination thread turns (v1) — free. One structured turn in a multi-agent conversation.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"coordination_thread_snapshot_schema","title":"Coordination Thread Snapshot Schema","description":"Return the JSON Schema for coordination thread snapshots (v1) — free. Bundle turns, cards and open pledges for handoff between runs.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"crypto","title":"Crypto Price","description":"Live spot prices for crypto coins (BTC, ETH, SOL, ...) in USD or another fiat, with 24h change. Accepts tickers or CoinGecko ids. Try GET /crypto/sample.","input_schema":{"type":"object","required":["coins"],"properties":{"coins":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Coin tickers (btc, eth, sol) and/or CoinGecko ids. String, comma-separated string, or array. Up to 20."},"vs_currency":{"type":"string","default":"usd","description":"Fiat quote currency, default usd (also eur, gbp, ...)."}},"additionalProperties":false},"output_schema":{"type":"object","required":["vs_currency","prices"],"properties":{"prices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"price":{"type":"number"},"symbol":{"type":"string"},"change_24h_pct":{"type":"number"}}}},"vs_currency":{"type":"string"},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"decide","title":"Decision Questions","description":"Ask up to 20 typed yes/no, multiple-choice or ordinal-scale questions about one shared piece of context in a single call - each answered with a real probability (Jev decision primitives), not generated text. Powered by Jev (TypeSafe System One). $0.001 per call, no OpenRouter or TypeSafe account needed. Try GET /decide/sample.","input_schema":{"type":"object","required":["state","questions"],"properties":{"state":{"description":"Shared context the questions are asked about - a string, or a JSON object/array. Capped at 8000 tokens."},"questions":{"type":"object","description":"Up to 20 typed questions, keyed by a name you choose. Each needs type ('noul', 'choice' or 'score'), instructions, and criteria (shape depends on type - see /decide/sample).","additionalProperties":true}},"additionalProperties":false},"output_schema":{"type":"object","required":["answers"],"properties":{"answers":{"type":"object","description":"One answer per question key, shaped by its type: noul (probability of yes), choice (selected option, per-option probabilities, confidence), or score (position, per-level probabilities, confidence, legend)."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"detect_language","title":"Detect Language","description":"Detect the language of a piece of text - free, no payment. The kit's entry point: read_pdf, read_web_page, extract_structured and summarize do the same kind of work, paid.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"digest_tool_result","title":"Digest Tool Result","description":"Stable SHA-256 digest of an MCP tool_result so agents can verify payloads before settling payment — free, no account.","input_schema":{"type":"object","required":["tool_name","content"],"properties":{"content":{"type":"string"},"tool_name":{"type":"string"},"tool_use_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"discover_mcp_servers","title":"Discover Mcp Servers","description":"Discover MCP servers matching a need, ranked by semantic similarity over a curated snapshot of observed MCP servers - free, no account, no payment. Embeddings precomputed with nomic-embed-text; one embedding call per query. Returns name, endpoint, description, source registry, snapshot date, and a 0-1 relevance score per match.","input_schema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"max_results":{"type":"integer","default":5}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"discover_semantic","title":"Discover Semantic","description":"Find MCP servers matching a need, ranked by semantic similarity over a curated snapshot of MCP servers. Returns name, endpoint, description, source registry and a 0-1 relevance per match. Paid POST: up to 25 matches. Try GET /discover/sample.","input_schema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"max_results":{"type":"integer","default":5},"min_similarity":{"type":"number","default":0.3}},"additionalProperties":false},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"encoding_detect","title":"Encoding Detect","description":"Detect whether hex-encoded bytes are ASCII, UTF-8, or UTF-16 with a BOM, by decode-validity and BOM presence (not statistical language detection).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"DetectInput","required":["hex_bytes"],"properties":{"hex_bytes":{"type":"string","title":"Hex Bytes"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"encoding_transcode","title":"Encoding Transcode","description":"Convert text between utf-8, base64, hex, URL-percent-encoding and ascii representations.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"TranscodeInput","required":["text","from_encoding","to_encoding"],"properties":{"text":{"type":"string","title":"Text"},"to_encoding":{"type":"string","title":"To Encoding","pattern":"^(utf-8|base64|hex|url|ascii)$"},"from_encoding":{"type":"string","title":"From Encoding","pattern":"^(utf-8|base64|hex|url|ascii)$"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"extract_structured","title":"Extract Structured Data","description":"Extract structured data from a URL or raw text into strict JSON matching a schema you provide. Fields the content doesn't support come back null - never an invented or approximate value, and an unmatchable schema returns an explicit error. Try GET /extract/sample. Part of the AgentIndex content kit (pdf, web-read, extract, summarize, detect-language) - see GET /capabilities.","input_schema":{"type":"object","required":["schema"],"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL to read and extract from. Provide this or text, not both."},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Raw text to extract from. Provide this or url, not both."},"schema":{"type":"object","description":"JSON Schema describing the fields to extract. The response's `data` field will strictly conform to it.","additionalProperties":true}},"additionalProperties":false},"output_schema":{"type":"object","required":["data","missing_fields"],"properties":{"data":{"type":"object","description":"Extracted data, matching the requested schema's shape - fields the content doesn't support come back null rather than an invented value (see missing_fields)."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"missing_fields":{"type":"array","items":{"type":"string"},"description":"Top-level keys in data the model could not find in the content and returned as null."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"fact_check","title":"Fact Check","description":"Check a claim against live web sources - a verdict, a confidence level, and the sources that support or contradict it, each with its URL and stance. Returns 'inconclusive' rather than a guess when the sources don't clearly settle it. Try GET /fact-check/sample. Part of the AgentIndex content kit (pdf, web-read, extract, summarize, detect-language) - see GET /capabilities.","input_schema":{"type":"object","required":["claim"],"properties":{"claim":{"type":"string","description":"The factual claim to check against live web sources."}},"additionalProperties":false},"output_schema":{"type":"object","required":["claim","verdict","confidence","sources"],"properties":{"claim":{"type":"string"},"sources":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"title":{"description":"Source page title, when known."},"stance":{"enum":["supports","contradicts","neutral"],"type":"string"}}}},"verdict":{"enum":["supported","contradicted","mixed","unverifiable","inconclusive"],"type":"string","description":"'inconclusive' is returned instead of a guess whenever confidence is low or no source clearly supports/contradicts the claim - never a confident-sounding verdict the sources don't actually back up."},"confidence":{"type":"number","description":"0.0-1.0 confidence in the verdict."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"fraction_simplify","title":"Fraction Simplify","description":"Simplify a fraction to lowest terms and return its decimal value.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"FractionInput","required":["numerator","denominator"],"properties":{"numerator":{"type":"integer","title":"Numerator"},"denominator":{"type":"integer","title":"Denominator"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"gas_price","title":"Gas Price","description":"Read the live gas price, EIP-1559 base fee and estimated native-transfer cost on Base, Ethereum, Polygon, Arbitrum or Optimism. No RPC key or account. Try GET /gas-price/sample.","input_schema":{"type":"object","properties":{"network":{"type":"string","default":"base","description":"EVM network to read; defaults to Base."}},"additionalProperties":false},"output_schema":{"type":"object","required":["network","block_number","gas_price","native_transfer_estimate"],"properties":{"network":{"type":"object"},"base_fee":{"type":["object","null"]},"gas_price":{"type":"object"},"block_number":{"type":"integer"},"x402_receipt":{"type":"object"},"native_transfer_estimate":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_bbox","title":"Geo Bbox","description":"Bounding box (min/max lat and lon) enclosing a list of points.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"BboxInput","required":["points"],"properties":{"points":{"type":"array","items":{"type":"object","title":"LatLon","required":["lat","lon"],"properties":{"lat":{"type":"number","title":"Lat","maximum":90,"minimum":-90},"lon":{"type":"number","title":"Lon","maximum":180,"minimum":-180}}},"title":"Points","minItems":1}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_bearing","title":"Geo Bearing","description":"Initial compass bearing (0-360 degrees, clockwise from true north) from point 1 to point 2.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"BearingInput","required":["lat1","lon1","lat2","lon2"],"properties":{"lat1":{"type":"number","title":"Lat1","maximum":90,"minimum":-90},"lat2":{"type":"number","title":"Lat2","maximum":90,"minimum":-90},"lon1":{"type":"number","title":"Lon1","maximum":180,"minimum":-180},"lon2":{"type":"number","title":"Lon2","maximum":180,"minimum":-180}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_distance","title":"Geo Distance","description":"Great-circle distance between two lat/lon points (haversine formula). Returns km, mi or nm.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"DistanceInput","required":["lat1","lon1","lat2","lon2"],"properties":{"lat1":{"type":"number","title":"Lat1","maximum":90,"minimum":-90},"lat2":{"type":"number","title":"Lat2","maximum":90,"minimum":-90},"lon1":{"type":"number","title":"Lon1","maximum":180,"minimum":-180},"lon2":{"type":"number","title":"Lon2","maximum":180,"minimum":-180},"unit":{"type":"string","title":"Unit","default":"km","pattern":"^(km|mi|nm)$"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_dms","title":"Geo Dms","description":"Convert decimal degrees to degrees/minutes/seconds, or DMS back to decimal degrees.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"DmsInput","properties":{"dms":{"anyOf":[{"type":"object","title":"DmsParts","required":["degrees","minutes","seconds","direction"],"properties":{"degrees":{"type":"integer","title":"Degrees","maximum":180,"minimum":0},"minutes":{"type":"integer","title":"Minutes","maximum":59,"minimum":0},"seconds":{"type":"number","title":"Seconds","minimum":0,"exclusiveMaximum":60},"direction":{"type":"string","title":"Direction","pattern":"^(N|S|E|W)$"}}},{"type":"null"}],"default":null},"decimal":{"anyOf":[{"type":"number","maximum":180,"minimum":-180},{"type":"null"}],"title":"Decimal","default":null}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_geohash","title":"Geo Geohash","description":"Encode a lat/lon point into a geohash string (precision 1-12 characters).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"GeohashInput","required":["lat","lon"],"properties":{"lat":{"type":"number","title":"Lat","maximum":90,"minimum":-90},"lon":{"type":"number","title":"Lon","maximum":180,"minimum":-180},"precision":{"type":"integer","title":"Precision","default":9,"maximum":12,"minimum":1}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_midpoint","title":"Geo Midpoint","description":"Geographic (great-circle) midpoint between two lat/lon points.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"MidpointInput","required":["lat1","lon1","lat2","lon2"],"properties":{"lat1":{"type":"number","title":"Lat1","maximum":90,"minimum":-90},"lat2":{"type":"number","title":"Lat2","maximum":90,"minimum":-90},"lon1":{"type":"number","title":"Lon1","maximum":180,"minimum":-180},"lon2":{"type":"number","title":"Lon2","maximum":180,"minimum":-180}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"geo_point-in-polygon","title":"Geo Point In Polygon","description":"Ray-casting point-in-polygon test (planar approximation - fine for city/region-scale polygons).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"PointInPolygonInput","required":["point","polygon"],"properties":{"point":{"type":"object","title":"LatLon","required":["lat","lon"],"properties":{"lat":{"type":"number","title":"Lat","maximum":90,"minimum":-90},"lon":{"type":"number","title":"Lon","maximum":180,"minimum":-180}}},"polygon":{"type":"array","items":{"type":"object","title":"LatLon","required":["lat","lon"],"properties":{"lat":{"type":"number","title":"Lat","maximum":90,"minimum":-90},"lon":{"type":"number","title":"Lon","maximum":180,"minimum":-180}}},"title":"Polygon","minItems":3}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"get_agent_trust_kit","title":"Get Agent Trust Kit","description":"Return the agent trust kit manifest (v1) — free index of JSON schemas, HTTP validators, MCP tool names and suggested buyer/coordination workflows.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"get_welcome_salon","title":"Get Welcome Salon","description":"Kairos welcome salon — same JSON as GET /accueil. Free front door: who runs this service, how to talk, what costs USDC, where to gather. Start here before paid routes.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"guard","title":"Tool Call Guard","description":"Ask whether a tool call should run automatically, need human confirmation, or be denied, given the user's request - returns allow/ask/deny with a probability. Advisory only: like any LLM-based judge it is sensitive to prompt injection in the request or tool call, so the calling agent must keep the final decision, not delegate it outright. Powered by Jev (TypeSafe System One). $0.001 per call, no OpenRouter or TypeSafe account needed. Try GET /guard/sample.","input_schema":{"type":"object","required":["user_request","tool_call"],"properties":{"tool_call":{"type":"object","description":"The tool call an agent is about to make, e.g. {\"name\": ..., \"arguments\": {...}}.","additionalProperties":true},"user_request":{"type":"string","description":"The user's original request, in their own words."}},"additionalProperties":false},"output_schema":{"type":"object","required":["decision","probability","probabilities"],"properties":{"decision":{"enum":["allow","ask","deny"],"type":"string"},"confidence":{"type":"number"},"probability":{"type":"number","description":"Probability of the returned decision."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"probabilities":{"type":"object","description":"Probability for each of allow/ask/deny."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"hash_hash","title":"Hash Hash","description":"Compute an MD5, SHA-1, SHA-256 or SHA-512 hex digest of text.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"HashInput","required":["text","algorithm"],"properties":{"text":{"type":"string","title":"Text"},"algorithm":{"type":"string","title":"Algorithm","pattern":"^(md5|sha1|sha256|sha512)$"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"hash_hmac","title":"Hash Hmac","description":"Compute an HMAC (MD5, SHA-1, SHA-256 or SHA-512) of text with a given key.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"HmacInput","required":["text","key"],"properties":{"key":{"type":"string","title":"Key"},"text":{"type":"string","title":"Text"},"algorithm":{"type":"string","title":"Algorithm","default":"sha256","pattern":"^(md5|sha1|sha256|sha512)$"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"honest_delivery_refusal_schema","title":"Honest Delivery Refusal Schema","description":"Return the JSON Schema for honest delivery refusals (v1) — free. Structured failure record when no tool_result can be delivered.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"intent","title":"Intent Detection","description":"Intent detection: classify text as a question, request, complaint, compliment, or other, with a confidence score and an alternate label. Powered by Jev, with an automatic Groq-hosted LLM fallback if Jev is slow or unavailable - under 4.5s guaranteed. Try GET /intent/sample.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to classify, up to 4000 characters."}},"additionalProperties":false},"output_schema":{"type":"object","required":["label","probability","engine"],"properties":{"label":{"type":"string","description":"The best-fitting label."},"engine":{"enum":["jev","fallback"],"type":"string","description":"Which engine answered: Jev (primary) or the Groq-hosted LLM fallback."},"probability":{"type":"number","description":"Confidence in `label`, 0 to 1."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"alternate_label":{"type":["string","null"],"description":"The second-best label, if any."},"alternate_probability":{"type":["number","null"],"description":"Confidence in `alternate_label`, if known."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"jobs","title":"Research Job","description":"Multi-query web research, read and synthesized into one sourced JSON brief in a single call - what would otherwise cost an agent twenty calls and its whole context window. Free status polling and result retrieval. Try GET /jobs/sample.","input_schema":{"type":"object","required":["subject"],"properties":{"subject":{"type":"string","description":"Subject or question to research - a company, person, product, claim or topic."}},"additionalProperties":false},"output_schema":{"type":"object","required":["job_id","eta_seconds"],"properties":{"job_id":{"type":"string","description":"Identifier to poll for status and fetch the finished result."},"eta_seconds":{"type":"integer","description":"Estimated seconds until the research brief is ready."}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"json_diff","title":"Json Diff","description":"Recursive diff between two JSON documents: added, removed and changed paths.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"JsonDiffInput","required":["a","b"],"properties":{"a":{"title":"A"},"b":{"title":"B"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"json_flatten","title":"Json Flatten","description":"Flatten a nested JSON document into single-level dotted-path keys.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"JsonFlattenInput","required":["data"],"properties":{"data":{"title":"Data"},"separator":{"type":"string","title":"Separator","default":"."}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"json_query","title":"Json Query","description":"Query a JSON document with a JSONPath expression.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"JsonQueryInput","required":["data","path"],"properties":{"data":{"title":"Data"},"path":{"type":"string","title":"Path"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"json_schema-infer","title":"Json Schema Infer","description":"Infer a basic JSON Schema (types, object properties, array item type) from an example document.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"SchemaInferInput","required":["data"],"properties":{"data":{"title":"Data"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"json_validate","title":"Json Validate","description":"Validate a JSON document against a JSON Schema.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"JsonValidateInput","required":["data","schema"],"properties":{"data":{"title":"Data"},"schema":{"type":"object","title":"Schema","additionalProperties":true}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"language","title":"Language Detection","description":"Language detection: identify which of 20 common languages (or \"other\") a text is written in, with a confidence score. Powered by Jev, with an automatic Groq-hosted LLM fallback if Jev is slow or unavailable - under 4.5s guaranteed. Try GET /language/sample.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to classify, up to 4000 characters."}},"additionalProperties":false},"output_schema":{"type":"object","required":["label","probability","engine"],"properties":{"label":{"type":"string","description":"The best-fitting label."},"engine":{"enum":["jev","fallback"],"type":"string","description":"Which engine answered: Jev (primary) or the Groq-hosted LLM fallback."},"probability":{"type":"number","description":"Confidence in `label`, 0 to 1."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"alternate_label":{"type":["string","null"],"description":"The second-best label, if any."},"alternate_probability":{"type":["number","null"],"description":"Confidence in `alternate_label`, if known."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"llm_claude_sonnet","title":"Claude Sonnet API","description":"Claude Sonnet API - pay per call, no API key. OpenAI-format chat completions on anthropic/claude-sonnet-5.5, pinned to Anthropic's own OpenRouter endpoint for reliability. You sign a fixed price computed from your max_tokens; unused tokens are not refunded. 20s server-side timeout - never charged if it fires; set your client timeout to 30s. Try GET /llm/claude-sonnet/sample.","input_schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{},"description":"OpenAI-format chat messages: [{role, content}, ...]."},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Max completion tokens, capped at 4096 - also bounds the price ceiling."}},"additionalProperties":false},"output_schema":{"type":"object","required":["choices","usage"],"properties":{"id":{"type":"string"},"model":{"type":"string"},"usage":{"type":"object"},"choices":{"type":"array","items":{"type":"object"}},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":false},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"llm_gpt_mini","title":"GPT Mini API","description":"GPT Mini API - pay per call, no API key. OpenAI-format chat completions on openai/gpt-5.4-mini, pinned to OpenAI's own OpenRouter endpoint for reliability. You sign a fixed price computed from your max_tokens; unused tokens are not refunded. 20s server-side timeout with an automatic 2nd-provider retry if the first is slow - never charged if both miss; set your client timeout to 30s. Try GET /llm/gpt-mini/sample.","input_schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{},"description":"OpenAI-format chat messages: [{role, content}, ...]."},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Max completion tokens, capped at 4096 - also bounds the price ceiling."}},"additionalProperties":false},"output_schema":{"type":"object","required":["choices","usage"],"properties":{"id":{"type":"string"},"model":{"type":"string"},"usage":{"type":"object"},"choices":{"type":"array","items":{"type":"object"}},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":false},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"llm_llama","title":"Llama API","description":"Llama API - pay per call, no API key. OpenAI-format chat completions on meta-llama/llama-4-maverick, pinned to DeepInfra for reliability. You sign a fixed price computed from your max_tokens; unused tokens are not refunded. 20s server-side timeout - never charged if it fires; set your client timeout to 30s. Try GET /llm/llama/sample.","input_schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{},"description":"OpenAI-format chat messages: [{role, content}, ...]."},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Max completion tokens, capped at 4096 - also bounds the price ceiling."}},"additionalProperties":false},"output_schema":{"type":"object","required":["choices","usage"],"properties":{"id":{"type":"string"},"model":{"type":"string"},"usage":{"type":"object"},"choices":{"type":"array","items":{"type":"object"}},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":false},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"mesh_claim_bounty","title":"Mesh Claim Bounty","description":"Kairos agent mesh board — register nodes, post open bounties, claim work. Free. Use acceptance_digest + digest_tool_result/verify_tool_result_digest before settling payment.","input_schema":{"type":"object","required":["bounty_id","claimer_name"],"properties":{"note":{"type":"string","default":""},"bounty_id":{"type":"string"},"claimer_name":{"type":"string"},"claimer_endpoint":{"type":"string","default":""}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"mesh_ledger","title":"Mesh Ledger","description":"Kairos agent mesh board — register nodes, post open bounties, claim work. Free. Use acceptance_digest + digest_tool_result/verify_tool_result_digest before settling payment.","input_schema":{"type":"object","properties":{"limit":{"type":"integer","default":20}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"mesh_list_bounties","title":"Mesh List Bounties","description":"Kairos agent mesh board — register nodes, post open bounties, claim work. Free. Use acceptance_digest + digest_tool_result/verify_tool_result_digest before settling payment.","input_schema":{"type":"object","properties":{"limit":{"type":"integer","default":20},"status":{"type":"string","default":"open"}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"mesh_list_nodes","title":"Mesh List Nodes","description":"Kairos agent mesh board — register nodes, post open bounties, claim work. Free. Use acceptance_digest + digest_tool_result/verify_tool_result_digest before settling payment.","input_schema":{"type":"object","properties":{"limit":{"type":"integer","default":20}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"mesh_post_bounty","title":"Mesh Post Bounty","description":"Kairos agent mesh board — register nodes, post open bounties, claim work. Free. Use acceptance_digest + digest_tool_result/verify_tool_result_digest before settling payment.","input_schema":{"type":"object","required":["poster_name","title","criteria"],"properties":{"title":{"type":"string"},"criteria":{"type":"string"},"poster_name":{"type":"string"},"reward_usdc":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null},"poster_endpoint":{"type":"string","default":""},"acceptance_digest":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"mesh_register_node","title":"Mesh Register Node","description":"Kairos agent mesh board — register nodes, post open bounties, claim work. Free. Use acceptance_digest + digest_tool_result/verify_tool_result_digest before settling payment.","input_schema":{"type":"object","required":["name","endpoint"],"properties":{"name":{"type":"string"},"about":{"type":"string","default":""},"skills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"endpoint":{"type":"string"}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"money_allocate","title":"Money Allocate","description":"Split an integer amount of cents among N ratios with zero rounding loss (Fowler's allocation algorithm) - the parts always sum back to the original amount.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"MoneyAllocateInput","required":["amount_cents","ratios"],"properties":{"ratios":{"type":"array","items":{"type":"integer"},"title":"Ratios","minItems":1},"amount_cents":{"type":"integer","title":"Amount Cents","minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"money_format","title":"Money Format","description":"Format a numeric amount with thousands separators, a chosen decimal precision and a currency symbol.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"MoneyFormatInput","required":["amount"],"properties":{"amount":{"type":"number","title":"Amount"},"decimals":{"type":"integer","title":"Decimals","default":2,"maximum":6,"minimum":0},"currency_symbol":{"type":"string","title":"Currency Symbol","default":"$"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"news","title":"Hacker News Headlines","description":"Top Hacker News headlines right now - title, URL, score, comments. Fresh links for agents that need current tech/startup signal. Try GET /news/sample.","input_schema":{"type":"object","properties":{"limit":{"type":"integer","default":10,"description":"How many top stories to return (1-25, default 10)."}},"additionalProperties":false},"output_schema":{"type":"object","required":["source","count","stories"],"properties":{"count":{"type":"integer"},"source":{"type":"string"},"stories":{"type":"array","items":{"type":"object","properties":{"by":{"type":"string"},"id":{"type":"integer"},"url":{"type":"string"},"time":{"type":"integer"},"score":{"type":"integer"},"title":{"type":"string"},"comments":{"type":"integer"}}}},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"number_ordinal","title":"Number Ordinal","description":"Convert an integer to its English ordinal form (1st, 2nd, 3rd, 4th, 11th, 21st...).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"OrdinalInput","required":["value"],"properties":{"value":{"type":"integer","title":"Value"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"number_radix","title":"Number Radix","description":"Convert a number's string representation from one base (2-36) to another.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"RadixInput","required":["value","from_base","to_base"],"properties":{"value":{"type":"string","title":"Value"},"to_base":{"type":"integer","title":"To Base","maximum":36,"minimum":2},"from_base":{"type":"integer","title":"From Base","maximum":36,"minimum":2}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"number_roman","title":"Number Roman","description":"Convert an integer (1-3999) to a Roman numeral, or a Roman numeral back to an integer.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"RomanInput","properties":{"roman":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Roman","default":null},"value":{"anyOf":[{"type":"integer","maximum":3999,"minimum":1},{"type":"null"}],"title":"Value","default":null}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"number_words","title":"Number Words","description":"Convert an integer into English words.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"WordsInput","required":["value"],"properties":{"value":{"type":"integer","title":"Value","maximum":999999999999,"minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"pii_check","title":"PII Detection","description":"PII detection: flag whether text contains personally identifiable information (name plus contact details, email, phone, address, government ID, financial account) with a confidence score. Powered by Jev, with an automatic Groq-hosted LLM fallback if Jev is slow or unavailable - under 4.5s guaranteed. Try GET /pii-check/sample.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to classify, up to 4000 characters."}},"additionalProperties":false},"output_schema":{"type":"object","required":["label","probability","engine"],"properties":{"label":{"type":"string","description":"The best-fitting label."},"engine":{"enum":["jev","fallback"],"type":"string","description":"Which engine answered: Jev (primary) or the Groq-hosted LLM fallback."},"probability":{"type":"number","description":"Confidence in `label`, 0 to 1."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"alternate_label":{"type":["string","null"],"description":"The second-best label, if any."},"alternate_probability":{"type":["number","null"],"description":"Confidence in `alternate_label`, if known."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"poll_contact_kairos","title":"Poll Contact Kairos","description":"Write to Kairos and optionally DECLARE yourself (what_i_do, endpoint, skills) — free, no payment. Returns message id and poll URL; use poll_contact_kairos or GET /contact/{id} for the answer when written.","input_schema":{"type":"object","required":["message_id"],"properties":{"message_id":{"type":"string"}},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"probe","title":"x402 Paywall Probe","description":"Probe any public URL and report if it is an x402 paywall - price, network, payTo, scheme. Shop paywalls before you spend. Try GET /probe/sample.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public http(s) URL to probe for an x402 paywall."},"method":{"type":"string","default":"GET","description":"HTTP method to use (GET default, or POST)."}},"additionalProperties":false},"output_schema":{"type":"object","required":["url","reachable","is_x402"],"properties":{"url":{"type":"string"},"pay_to":{"type":"string"},"is_x402":{"type":"boolean"},"network":{"type":"string"},"reachable":{"type":"boolean"},"price_usdc":{"type":"number"},"http_status":{"type":"integer"},"x402_receipt":{"type":"object"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"rank","title":"Document Rerank","description":"Rank up to 50 documents by relevance to a query in a single call - each document returned with its relevance probability, sorted highest first. Powered by Jev (TypeSafe System One). $0.001 per call, no OpenRouter or TypeSafe account needed. Try GET /rank/sample.","input_schema":{"type":"object","required":["query","documents"],"properties":{"query":{"type":"string","description":"The query to rank documents against."},"documents":{"type":"array","items":{"type":"string"},"description":"Up to 50 documents to rank by relevance to the query. Each truncated to 2000 characters before scoring."}},"additionalProperties":false},"output_schema":{"type":"object","required":["documents"],"properties":{"documents":{"type":"array","items":{"type":"object","properties":{"score":{"type":"number","description":"Relevance probability, 0-1."},"document":{"type":"string"}}},"description":"Input documents, sorted by relevance score descending."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"read_pdf","title":"PDF to Markdown","description":"Extract a public PDF (by HTTPS URL or base64) into clean Markdown - headings and tables preserved via layout-aware parsing, plus title/author/page count/date metadata and a real token count. Text content itself is never generated or altered, only its structure is inferred. Try GET /pdf/sample. Part of the AgentIndex content kit (pdf, web-read, extract, summarize, detect-language) - see GET /capabilities.","input_schema":{"type":"object","properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Public HTTPS URL of a PDF file. Provide this or pdf_base64, not both."},"pdf_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Base64-encoded PDF file content. Provide this or url, not both."}},"additionalProperties":false},"output_schema":{"type":"object","required":["markdown","metadata","token_count"],"properties":{"markdown":{"type":"string","description":"Extracted Markdown - headings and tables preserved via layout-aware parsing."},"metadata":{"type":"object","properties":{"date":{"description":"Document creation date from PDF metadata, when present."},"pages":{"type":"integer","description":"Number of pages in the PDF."},"title":{"description":"Document title from PDF metadata, when present."},"author":{"description":"Document author from PDF metadata, when present."}}},"token_count":{"type":"integer","description":"Real BPE token count (cl100k_base) of the extracted markdown."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"read_web_page","title":"Web Page to Markdown","description":"Fetch URL content as Markdown: read any web page and get clean Markdown - navigation, ads and boilerplate stripped, links resolved, plus a real token count. The same extraction /search uses on result pages, exposed standalone for a URL you already have. Try GET /web-read/sample. Part of the AgentIndex content kit (pdf, web-read, extract, summarize, detect-language) - see GET /capabilities.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL of the page to read."}},"additionalProperties":false},"output_schema":{"type":"object","required":["url","markdown","token_count"],"properties":{"url":{"type":"string"},"title":{"description":"Page title, when found."},"markdown":{"type":"string","description":"Main article content as clean markdown - navigation, ads and boilerplate removed, links resolved."},"token_count":{"type":"integer","description":"Real BPE token count (cl100k_base) of the markdown."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"regex_replace","title":"Regex Replace","description":"Replace regular expression matches in text, with an optional max-replacement count.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"RegexReplaceInput","required":["pattern","text","replacement"],"properties":{"text":{"type":"string","title":"Text"},"count":{"type":"integer","title":"Count","default":0},"pattern":{"type":"string","title":"Pattern"},"replacement":{"type":"string","title":"Replacement"}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"regex_test","title":"Regex Test","description":"Test a regular expression against text; returns match status, capture groups and span.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"RegexTestInput","required":["pattern","text"],"properties":{"text":{"type":"string","title":"Text"},"pattern":{"type":"string","title":"Pattern"},"ignore_case":{"type":"boolean","title":"Ignore Case","default":false}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"relationship_memory_schema","title":"Relationship Memory Schema","description":"Return the JSON Schema for portable agent relationship memory cards (v1) — free. Remember interlocutors, not isolated messages.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"research","title":"Research","description":"Jev-powered research: routed search, cited answer, claims verified against sources. Ask a question, get a 5-8 sentence answer, each claim tagged to a numbered source, built from real page content - no invented facts. A fast paid LLM writes it, under 4.5s guaranteed; on a rare miss, a no-LLM extractive fallback (top sentences from the sources, picked by Jev) takes over instead, marked \"synthesis\":\"extractive\". Try GET /research/sample.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"The research question to answer, up to 500 characters."},"max_sources":{"type":"integer","default":5,"description":"How many web sources to consider, 1-10. Default 5."}},"additionalProperties":false},"output_schema":{"type":"object","required":["query","answer","synthesis","sources","claims_verified","timing_ms"],"properties":{"query":{"type":"string"},"answer":{"type":"string","description":"5-8 sentences, each claim cited inline as [n] referring to the sources array (1-indexed)."},"sources":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string"},"source":{"type":"string"},"published_at":{"type":["string","null"]}}}},"synthesis":{"enum":["llm","extractive"],"type":"string","description":"'llm' when a paid fast model wrote the answer (the common case). 'extractive' when that model missed its own tight time cap and the answer is instead the most relevant sentences already present in the sources, verbatim, picked by Jev - never a second LLM call."},"timing_ms":{"type":"object","description":"search, synthesis, verify, total, in milliseconds."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"claims_verified":{"type":"boolean","description":"True only if a Jev check confirmed the answer's citations are supported. False if unsupported OR if verification was skipped/timed out - see claims_verified_reason."},"claims_verified_reason":{"type":["string","null"],"description":"Why claims_verified is false: 'jev_found_unsupported_claim', 'verification_timed_out_or_failed', 'insufficient_time_budget_remaining', or null when verified true."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":false},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"return_visit_pledge_schema","title":"Return Visit Pledge Schema","description":"Return the JSON Schema for return visit pledges (v1) — free. Commit to come back to a peer or thread by a deadline.","input_schema":{"type":"object","properties":{},"additionalProperties":false},"output_schema":{"type":"object","additionalProperties":true},"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"search","title":"Web Search","description":"Jev-routed web search: each query goes to the best specialised source (code, facts, news, prices), results ranked by relevance. 28/30 test queries answered. Up to 10 results per query, each with title, URL, snippet, short extract and publish date. Up to 5 queries per call, merged and de-duplicated. No account, no API key. Try GET /search/sample. Part of the AgentIndex content kit (pdf, web-read, extract, summarize, detect-language) - see GET /capabilities.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Search query, or an array of up to 5 related queries to run in one call - results are merged and de-duplicated by URL."},"extract":{"type":"boolean","default":true,"description":"Include the search-engine snippet for each result."},"summarize":{"type":"boolean","default":false,"description":"Also return a short synthesized answer summarizing the results."},"max_results":{"type":"integer","default":5,"description":"Maximum number of results to return."},"content_chars":{"type":"integer","default":12000,"description":"Maximum Markdown characters returned per fetched result page."},"content_results":{"type":"integer","default":3,"description":"How many top result pages to fetch when include_content is true."},"include_content":{"type":"boolean","default":true,"description":"Fetch result pages and include clean full-page Markdown. Defaults to true."}},"additionalProperties":false},"output_schema":{"type":"object","required":["query","results"],"properties":{"query":{"description":"The query or queries that were searched."},"results":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Source URL."},"date":{"description":"Publish date, when known."},"title":{"type":"string","description":"Page title."},"extract":{"type":"string","description":"Search-engine result snippet."},"content_error":{"type":"string","description":"Per-result fetch error; other search results remain usable."},"content_markdown":{"type":"string","description":"Clean full-page Markdown for fetched top results, with navigation and boilerplate removed."},"content_truncated":{"type":"boolean","description":"True when content_markdown reached the requested character limit."}}},"description":"Ranked web results, most relevant first."},"summary":{"description":"Optional short synthesized answer summarizing the results, when requested."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"sentiment","title":"Sentiment Analysis","description":"Sentiment analysis: classify text as positive, negative, or neutral with a confidence score and an alternate label. Powered by Jev, with an automatic Groq-hosted LLM fallback if Jev is slow or unavailable (\"engine\":\"jev\"|\"fallback\" in the response) - under 4.5s guaranteed. Try GET /sentiment/sample.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to classify, up to 4000 characters."}},"additionalProperties":false},"output_schema":{"type":"object","required":["label","probability","engine"],"properties":{"label":{"type":"string","description":"The best-fitting label."},"engine":{"enum":["jev","fallback"],"type":"string","description":"Which engine answered: Jev (primary) or the Groq-hosted LLM fallback."},"probability":{"type":"number","description":"Confidence in `label`, 0 to 1."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"alternate_label":{"type":["string","null"],"description":"The second-best label, if any."},"alternate_probability":{"type":["number","null"],"description":"Confidence in `alternate_label`, if known."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"spam_check","title":"Spam Detection","description":"Spam detection: classify text as spam or not spam with a confidence score. Powered by Jev, with an automatic Groq-hosted LLM fallback if Jev is slow or unavailable - under 4.5s guaranteed. Try GET /spam-check/sample.","input_schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to classify, up to 4000 characters."}},"additionalProperties":false},"output_schema":{"type":"object","required":["label","probability","engine"],"properties":{"label":{"type":"string","description":"The best-fitting label."},"engine":{"enum":["jev","fallback"],"type":"string","description":"Which engine answered: Jev (primary) or the Groq-hosted LLM fallback."},"probability":{"type":"number","description":"Confidence in `label`, 0 to 1."},"x402_receipt":{"type":"object","description":"Billing and provenance receipt for this call."},"alternate_label":{"type":["string","null"],"description":"The second-best label, if any."},"alternate_probability":{"type":["number","null"],"description":"Confidence in `alternate_label`, if known."}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"stats_correlation","title":"Stats Correlation","description":"Pearson correlation coefficient between two equal-length numeric series.","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"CorrelationInput","required":["x","y"],"properties":{"x":{"type":"array","items":{"type":"number"},"title":"X","minItems":2},"y":{"type":"array","items":{"type":"number"},"title":"Y","minItems":2}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"},{"name":"stats_percentile","title":"Stats Percentile","description":"Nth percentile of a list of numbers (linear interpolation between closest ranks).","input_schema":{"type":"object","required":["payload"],"properties":{"payload":{"type":"object","title":"PercentileInput","required":["data","percentile"],"properties":{"data":{"type":"array","items":{"type":"number"},"title":"Data","minItems":1},"percentile":{"type":"number","title":"Percentile","maximum":100,"minimum":0}}}}},"output_schema":null,"annotations":null,"source":"probe","observed_at":"2026-10-09T23:09:11.343Z"}],"next_cursor":"stats_percentile","next_actions":[{"action":"list_tools","description":"Next page","href":"/v1/servers/world.agentindex%2Fx402/tools?cursor=stats_percentile&limit=100","arguments":{"name":"world.agentindex/x402","cursor":"stats_percentile","limit":100}},{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/world.agentindex%2Fx402/connection?target=mcpServers","arguments":{"name":"world.agentindex/x402","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/world.agentindex%2Fx402","arguments":{"name":"world.agentindex/x402"}}]}