protogrid

Search / ai.last-price/pricing

Last Price

R0· no sign-in

Compute and verify prices from an agent, metered per call. Works keyless on a demo tenant.

v0.5.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73needs work
Trust83of 100
Uptime, 30 days100%
Latency p50878 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "pricing": {
      "type": "http",
      "url": "https://api.last-price.ai/api/mcp/rpc",
      "headers": {
        "x-api-key": "${X_API_KEY}"
      }
    }
  }
}
claude mcp add --transport http pricing https://api.last-price.ai/api/mcp/rpc --header "x-api-key: ${X_API_KEY}"
[mcp_servers.pricing]
url = "https://api.last-price.ai/api/mcp/rpc"
env_http_headers = { "x-api-key" = "X_API_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pricing": {
      "type": "remote",
      "url": "https://api.last-price.ai/api/mcp/rpc",
      "enabled": true,
      "headers": {
        "x-api-key": "{env:X_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "pricing": {
      "type": "http",
      "url": "https://api.last-price.ai/api/mcp/rpc",
      "headers": {
        "x-api-key": "${X_API_KEY}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=pricing&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmxhc3QtcHJpY2UuYWkvYXBpL21jcC9ycGMiLCJoZWFkZXJzIjp7IngtYXBpLWtleSI6IiR7WF9BUElfS0VZfSJ9fQ%3D%3D"
}
{
  "servers": {
    "pricing": {
      "type": "http",
      "url": "https://api.last-price.ai/api/mcp/rpc",
      "headers": {
        "x-api-key": "${X_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "pricing": {
      "httpUrl": "https://api.last-price.ai/api/mcp/rpc",
      "headers": {
        "x-api-key": "${X_API_KEY}"
      }
    }
  }
}
extensions:
  "pricing":
    enabled: true
    name: "pricing"
    type: streamable_http
    uri: "https://api.last-price.ai/api/mcp/rpc"
    headers:
      "x-api-key": "${X_API_KEY}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_API_KEY}. The registry never accepts secret values.

Quality 73 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: pricing_conversation (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_function (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); update_billing_settings (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 4,809 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes17 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

21 tools, about 4,809 tokens to load them all · tool set c7ecc88a6ce3 · tools last changed 2026-10-04 · checked 2026-10-20 17:02 UTC

Tool changes

  • read_my_inboxadded

    Read the newest messages in your own agent inbox: the inbox of the agent your key or token is bound to, and no other. Answers live from the mail provider when it is reachable, otherwise from the mail Last Price stored (source says which). Needs an agent key, or a token exchanged from one.

  • mark_notifications_readadded

    Mark your workspace's notifications read for this reader only (your agent, or your key), up to read_through (default now). Send the creation time of the newest item you handled so anything newer stays unread. Needs a Last Price credential with notifications write scope; the agent that owns the workspace needs none.

  • list_notificationsadded

    List your workspace's notifications, newest first, with the unread count: approval requests, disputes, price proposals, email to agent inboxes and, for the agent that owns the workspace, failed webhook deliveries. Pass the next cursor a page returns back as cursor for the next page. Unread is per reader: an agent has one read state for all its keys and tokens, a plain key has its own. Needs a Last Price credential with notifications read scope; the agent that owns the workspace needs none.

  • list_receiptsadded

    Get receipts for many of your workspace's priced calls at once, as one statement with totals: name up to 50 usage event ids, or a period (this calendar month by default, at most 366 days), optionally for one function or agent. A period statement also counts, for each agent, the value signals set up in Settings, Value receipts. Receipts are made only when you ask. For CSV or a printable page, call GET /api/receipts with format=csv or format=html. Needs a Last Price credential with price compute or billing read scope.

  • get_receiptadded

    Get the receipt for one of your workspace's priced calls, by its usage event id (the id list_usage_events returns and report_outcome takes): what was priced, by which function and agent, when, the amount, how it was paid, and the outcome if one was reported. Receipts are made only when you ask, never sent for every call. For CSV or a printable page, call GET /api/receipts/{id} with format=csv or format=html. Needs a Last Price credential with price compute or billing read scope.

  • list_usage_eventsadded

    List your workspace's priced calls, newest first: each one's id (what report_outcome takes to report it), function, cost, the price given and the inputs it was given for, and who sent it. Needs a Last Price credential.

  • get_usageadded

    Total your workspace's priced calls over a period, this calendar month by default: requests, units, compute time, cost, cached and prepaid calls, and the part of this month's cost still to be billed. Needs a Last Price credential.

  • list_outcomesadded

    Read your workspace's outcome pricing: whether it is on, its terms, counts of open, accepted and rejected windows with the total refunded, and the windows themselves, newest first. Needs a Last Price credential with price compute scope.

  • update_billing_settingsadded

    Change your workspace's billing settings. Only the settings you send change. outcome_pricing turns on paying in full only when a price is used: a rejection reported with report_outcome within its window gives part back. balance_billing makes every compute call draw on the prepaid balance, and a call the balance cannot cover is refused. auto_topup is an offer, not a charge: below the threshold, results carry a top-up hint and nothing is paid automatically. A self-registered agent workspace cannot change outcome_pricing or balance_billing until it is claimed. Needs a Last Price credential with price compute scope; a person also needs the owner, admin or billing role.

  • get_billing_settingsadded

    Read your workspace's prepaid balance and billing settings: the balance in USDC, whether balance billing and outcome pricing are on, the auto top-up offer, the latest ledger rows and the terms. Needs a Last Price credential with price compute scope.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-16d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.last-price.ai/api/mcp/rpc streamable-httpnoneyes100%878 ms2025-11-252026-10-20

Tools (21)

browse_catalogBrowse the public marketplace catalog of pricing functions.
compute_priceCompute a price for a product/context via the Last Price Pricing Compute Network. Returns the computed price, the function that produced it, token metering/cost, and a `trace` listing each stage the request passed through (cache, route, execute, fallback, constrain, meter). For a competitor offer, put competitor_price, competitor_currency and competitive_action in metadata, then supply min_price or unit_cost with target_margin_pct. Missing business inputs return an error naming them.
get_billing_settingsRead your workspace's prepaid balance and billing settings: the balance in USDC, whether balance billing and outcome pricing are on, the auto top-up offer, the latest ledger rows and the terms. Needs a Last Price credential with price compute scope.
get_functionRead one pricing function your workspace can use: its name, description, status, tags, cost per unit, cost multiplier, and input and output schemas. Its owner also sees whether a credential is saved for it. Needs a Last Price credential with function read scope.
get_price_guardrailsRead the price guardrails saved for your workspace, and the defaults set_price_guardrails fills in for an omitted field. saved is false when none are saved, and then no workspace limit applies. Needs a Last Price credential with routing read scope.
get_pricing_analysisRead what your workspace's own records say about its pricing, as findings, most urgent first: learned estimates ready while learned pricing is off, estimates that cannot be used yet and exactly what each needs, whether enough quotes have a reported outcome, how often your guardrails held prices back, and approvals waiting or about to expire. Each finding states its numbers and names the call that would act on it; nothing is changed. Free, and computed without an AI model. Needs a Last Price credential with routing read scope.
get_receiptGet the receipt for one of your workspace's priced calls, by its usage event id (the id list_usage_events returns and report_outcome takes): what was priced, by which function and agent, when, the amount, how it was paid, and the outcome if one was reported. Receipts are made only when you ask, never sent for every call. For CSV or a printable page, call GET /api/receipts/{id} with format=csv or format=html. Needs a Last Price credential with price compute or billing read scope.
get_usageTotal your workspace's priced calls over a period, this calendar month by default: requests, units, compute time, cost, cached and prepaid calls, and the part of this month's cost still to be billed. Needs a Last Price credential.
list_functionsList the pricing functions registered for the authenticated tenant.
list_notificationsList your workspace's notifications, newest first, with the unread count: approval requests, disputes, price proposals, email to agent inboxes and, for the agent that owns the workspace, failed webhook deliveries. Pass the next cursor a page returns back as cursor for the next page. Unread is per reader: an agent has one read state for all its keys and tokens, a plain key has its own. Needs a Last Price credential with notifications read scope; the agent that owns the workspace needs none.
list_outcomesRead your workspace's outcome pricing: whether it is on, its terms, counts of open, accepted and rejected windows with the total refunded, and the windows themselves, newest first. Needs a Last Price credential with price compute scope.
list_receiptsGet receipts for many of your workspace's priced calls at once, as one statement with totals: name up to 50 usage event ids, or a period (this calendar month by default, at most 366 days), optionally for one function or agent. A period statement also counts, for each agent, the value signals set up in Settings, Value receipts. Receipts are made only when you ask. For CSV or a printable page, call GET /api/receipts with format=csv or format=html. Needs a Last Price credential with price compute or billing read scope.
list_usage_eventsList your workspace's priced calls, newest first: each one's id (what report_outcome takes to report it), function, cost, the price given and the inputs it was given for, and who sent it. Needs a Last Price credential.
mark_notifications_readMark your workspace's notifications read for this reader only (your agent, or your key), up to read_through (default now). Send the creation time of the newest item you handled so anything newer stays unread. Needs a Last Price credential with notifications write scope; the agent that owns the workspace needs none.
pricing_conversationAsk Last Price what pricing inputs are missing. Start with request: {}, return its questions to the caller, then send continuation.request and answers. Prepare is free and does not compute. When ready, action compute uses the existing authenticated pricing API; configure a credential first. Never invent answers or treat a continuation as authorization.
read_my_inboxRead the newest messages in your own agent inbox: the inbox of the agent your key or token is bound to, and no other. Answers live from the mail provider when it is reachable, otherwise from the mail Last Price stored (source says which). Needs an agent key, or a token exchanged from one.
report_outcomeReport whether a price from compute_price was used. Pass receipt.id from that result as usage_event_id. Outcomes are what later routing and confidence learn from. With outcome pricing on, a rejection within the call's outcome window gives back part of what it cost; the result says what was refunded. Needs a Last Price credential. Report only what actually happened.
set_price_guardrailsSave the price guardrails for your workspace. max_change_pct, min_margin_pct and never_below_cost hold every final price your workspace is given, from compute_price and every other pricing call. band_lower_ratio and band_upper_ratio are only the range the optimizer and elasticity functions search when a call sends no minimum or maximum. This replaces the whole saved set: an omitted field takes its default, so read get_price_guardrails first and send every rule you want to keep. Needs a Last Price credential with routing write scope.
update_billing_settingsChange your workspace's billing settings. Only the settings you send change. outcome_pricing turns on paying in full only when a price is used: a rejection reported with report_outcome within its window gives part back. balance_billing makes every compute call draw on the prepaid balance, and a call the balance cannot cover is refused. auto_topup is an offer, not a charge: below the threshold, results carry a top-up hint and nothing is paid automatically. A self-registered agent workspace cannot change outcome_pricing or balance_billing until it is claimed. Needs a Last Price credential with price compute scope; a person also needs the owner, admin or billing role.
update_functionChange a pricing function your workspace owns: its display name, description, status, tags, cost per unit or cost multiplier. Only the fields you send change. Built-in functions and other workspaces' functions cannot be changed. The endpoint, its credential and the schemas are not changed here. Needs a Last Price credential with function publish scope.
verify_priceAsk whether a price makes sense for its context, rather than what the price should be. Returns a verdict (fair, too_high, too_low, or unknown), the band it was judged against, a signed deviation from the reference, a confidence, and the evidence behind it. A verdict of "unknown" means the price could not be judged, which is not the same as fair.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "ai.last-price/pricing",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "ai.last-price": {
        "stdio": {
          "cwd": "the repository root",
          "env": {
            "LASTPRICE_JWT": "JWT, sent as Authorization: Bearer. Takes precedence over the API key.",
            "LASTPRICE_API_KEY": "API key lp_..., sent as x-api-key.",
            "LASTPRICE_API_URL": "Base URL of the API. Set it to https://api.last-price.ai; the default is http://localhost:3000.",
            "LASTPRICE_TENANT_ID": "Tenant UUID, sent as x-tenant-id, only for local development against a server with AUTH_REQUIRED unset.",
            "LASTPRICE_TIMEOUT_MS": "Time limit for one tool call in milliseconds; past it the call answers a JSON-RPC timeout error (-32001). Default 30000."
          },
          "args": [
            "exec",
            "ts-node",
            "packages/mcp/index.ts"
          ],
          "status": "Runs from a checkout of the repository; not yet published as a package.",
          "command": "pnpm"
        },
        "tools": [
          "pricing_conversation",
          "compute_price",
          "verify_price",
          "list_functions",
          "browse_catalog",
          "report_outcome",
          "get_price_guardrails",
          "set_price_guardrails",
          "get_pricing_analysis",
          "get_function",
          "update_function",
          "get_billing_settings",
          "update_billing_settings",
          "list_outcomes",
          "get_usage",
          "list_usage_events",
          "get_receipt",
          "list_receipts",
          "list_notifications",
          "mark_notifications_read",
          "read_my_inbox"
        ],
        "license": "LicenseRef-Proprietary",
        "support": "[email protected]",
        "discovery": {
          "mcp_json": "https://api.last-price.ai/.well-known/mcp.json",
          "agents_json": "https://api.last-price.ai/.well-known/agents.json"
        },
        "license_note": "Hosted service. The source is not published under an open source licence; see LICENSE.",
        "keyless_tools": [
          "compute_price",
          "verify_price",
          "pricing_conversation",
          "browse_catalog"
        ]
      }
    }
  },
  "title": "Last Price",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.last-price.ai/api/mcp/rpc",
      "type": "streamable-http",
      "headers": [
        {
          "name": "x-api-key",
          "isSecret": true,
          "description": "Optional. A Last Price API key (lp_...). Without one, compute_price and verify_price answer from the public demo and say so, pricing_conversation can prepare inputs but not compute, and browse_catalog lists the public catalog; with one, compute_price and verify_price run on your workspace, list_functions and report_outcome work, get_price_guardrails and set_price_guardrails read and replace your workspace's price guardrails (routing read and write scopes), get_pricing_analysis says what your own records show about your pricing (routing read scope), and get_function, update_function, get_billing_settings, update_billing_settings, list_outcomes, get_usage and list_usage_events read and change one pricing function, the billing settings (outcome pricing, balance billing, auto top-up), outcomes and usage, get_receipt and list_receipts return receipts for your priced calls on request, list_notifications and mark_notifications_read read your workspace notifications and mark them read for your agent or key alone, and read_my_inbox reads your own agent inbox (with an agent key). An agent can get a sandbox key with POST https://api.last-price.ai/api/agents/register."
        }
      ]
    }
  ],
  "version": "0.5.0",
  "websiteUrl": "https://last-price.ai",
  "description": "Compute and verify prices from an agent, metered per call. Works keyless on a demo tenant."
}