{"schema_version":"2025-03-26","name":"last-price","title":"Last Price","description":"Compute the best price for any commerce action. OpenRouter for price computation.","version":"0.1.1","vendor":{"name":"Last Price","url":"https://last-price.ai","contact":"support@last-price.ai"},"transport":"streamable-http","transports":["streamable-http","http+jsonrpc"],"endpoint":"https://api.last-price.ai/api/mcp/rpc","protocol_version":"2025-11-25","sessions":"stateless","session":{"header":"Mcp-Session-Id","assigned_on":"initialize","issued":true,"required":false,"unknown_session_status":404,"bound_to":"principal","max_age_seconds":86400,"terminate":null},"streams":{"get":"text/event-stream","notifications":["notifications/lastprice/changelog"],"held_open":false,"retry_ms":300000,"resumable":false},"auth":{"type":"oauth2","required":false,"keyless":{"available":true,"methods":["initialize","tools/list","tools/call"],"tools":["compute_price","verify_price","pricing_conversation","browse_catalog"],"preparation":{"tool":"pricing_conversation","action":"prepare","note":"Asks for missing inputs without computing. Its compute action uses the regular authenticated or paid API, not the public demo."},"rate_limit":{"per_window":30,"window_seconds":3600,"scope":"ip"},"note":"Without a credential compute_price and verify_price answer from the public demo and say so in _lastprice_notice. pricing_conversation can prepare inputs without a credential; its compute action requires normal pricing access. browse_catalog lists the public catalog with or without a credential, rate limited per IP like the leaderboard."},"credentials_unlock":{"tools":["list_functions"],"note":"With a credential, compute_price and verify_price run on your own workspace, and list_functions lists your own functions."},"authorization_server":"https://api.last-price.ai","authorization_server_metadata":"https://api.last-price.ai/.well-known/oauth-authorization-server","registration_endpoint":"https://api.last-price.ai/api/oauth/register","token_endpoint":"https://api.last-price.ai/api/oauth/token","grant_types_supported":["client_credentials"],"token_endpoint_auth_methods_supported":["client_secret_basic","client_secret_post"],"headers":["Authorization","x-api-key"],"self_registration":"https://api.last-price.ai/api/agents/register","access_options":[{"id":"keyless_demo","choose_when":"Just trying it: no key at all, a demo tenant, 30 calls per IP per hour. MCP at /api/mcp/rpc works without a key the same way.","method":"POST","path":"/api/public/compute/demo","human_required":false,"account_required":false,"credential":"none"},{"id":"self_registration","choose_when":"A free API key right now with no human: a sandbox workspace (25 compute calls a day, a key valid for 30 days) and a claim link for a person. Past the daily limit the same key can pay per call with x402, or buy a day pass of extra calls.","method":"POST","path":"/api/agents/register","human_required":false,"account_required":false,"credential":"API key, sent as x-api-key (also usable as OAuth client credentials)"},{"id":"oauth_dcr","choose_when":"Your OAuth client-credentials framework expects to register its own client (RFC 7591 registration, then the client_credentials grant; there is no authorization code flow). Same sandbox and claim link as self_registration; an additional option, not a replacement.","method":"POST","path":"/api/oauth/register","then":{"method":"POST","path":"/api/oauth/token","note":"grant_type=client_credentials with the returned client_id and client_secret; send the access token as Authorization: Bearer"},"human_required":false,"account_required":false,"credential":"client_id and client_secret (the secret also works as x-api-key)"},{"id":"x402","choose_when":"No account and no key: pay 0.01 USDC per call with x402. A call with no credential answers 402 with the payment requirements (see payments.x402). A self-registered agent key can pay the same way past its daily limit, and the call runs on its own workspace.","method":"POST","path":"/api/compute/price","human_required":false,"account_required":false,"credential":"a signed payment per call in X-PAYMENT (v1) or PAYMENT-SIGNATURE (v2)"},{"id":"agentid","choose_when":"A full workspace of your own, signed in with AgentID and an inbox you control, where AgentID sign-in is offered. Then create an API key in Settings.","method":null,"path":null,"url":"https://app.last-price.ai/sign-up","human_required":false,"account_required":true,"credential":"API key created in the dashboard, sent as x-api-key"},{"id":"human_account","choose_when":"A person owns the account: they sign up and create an API key, or an agent-bound key, for the agent.","method":null,"path":null,"url":"https://app.last-price.ai/sign-up","human_required":true,"account_required":true,"credential":"API key or agent-bound key, sent as x-api-key"}]},"capabilities":{"tools":true,"resources":true,"prompts":false,"sampling":false},"changelog":{"feed_json":"https://last-price.ai/changelog/feed.json","feed_rss":"https://last-price.ai/changelog/feed.xml","page":"https://last-price.ai/changelog","audience_filter":"items[]._lastprice.audience includes \"agents\"","recommended":"Check at the start of a session and before changing integration code","latest_entry_date":"2026-10-02T00:00:00.000Z"},"discovery":{"agents_manifest":"/.well-known/agents.json","openapi":"/api/openapi","docs":"https://last-price.ai/docs"}}