Last Price

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

使うべきか

品質と安全性

A
説明の品質
94%
スキーマの完全性
67%
命名の品質
92%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'verify_price' description lacks action verbverify_price 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~1,249トークン数(ツール定義)
~2.5 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 0.98%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "pricing": {
      "url": "https://api.last-price.ai/api/mcp/rpc"
    }
  }
}

リモートエンドポイント

https://api.last-price.ai/api/mcp/rpcstreamable-http

できること

ツール一覧

ツール(5)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟡pricing_conversation(action, request, answers)

Ask 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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "prepare",
        "compute"
      ],
      "default": "prepare"
    },
    "request": {
      "type": "object",
      "description": "Partial REST PricingComputeRequest, including nested context, constraints, an explicit function selection and options. Reuse continuation.request on subsequent calls."
    },
    "answers": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        },
        "current_price": {
          "type": "number",
          "minimum": 0
        },
        "unit_cost": {
          "type": "number",
          "minimum": 0
        },
        "target_margin_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 95
        },
        "min_price": {
          "type": "number",
          "minimum": 0
        },
        "max_price": {
          "type": "number",
          "minimum": 0
        }
      }
    }
  },
  "additionalProperties": false
}
🟡compute_price(product_id, product_type, current_price, unit_cost, target_margin_pct, ...)

Compute 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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "Optional identifier of what is being priced."
    },
    "product_type": {
      "type": "string",
      "enum": [
        "saas",
        "ecommerce",
        "marketplace",
        "digital",
        "api",
        "custom"
      ],
      "description": "Optional category. Defaults to \"custom\"."
    },
    "current_price": {
      "type": "number",
      "minimum": 0,
      "description": "The current or reference price. Optional: functions that price relative to an incumbent need it, but lastprice/cost-plus prices from unit_cost instead."
    },
    "unit_cost": {
      "type": "number",
      "minimum": 0,
      "description": "What the work costs you. It lets lastprice/cost-plus price with no current_price, which is the usual case when pricing a task you are about to run. Routing picks a function that can use it; to require cost-plus, pass its UUID from list_functions as function_id."
    },
    "target_margin_pct": {
      "type": "number",
      "minimum": 0,
      "maximum": 95,
      "description": "Margin on price for cost-plus, not markup on cost: price = unit_cost / (1 - margin). Defaults to 30."
    },
    "min_price": {
      "type": "number",
      "minimum": 0,
      "description": "Optional minimum acceptable price. A competitive offer needs this or a declared unit_cost and target_margin_pct."
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Optional maximum acceptable price."
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Three-letter ISO currency code, e.g. USD."
    },
    "customer_segment": {
      "type": "string",
      "description": "Optional segment, e.g. enterprise."
    },
    "geo": {
      "type": "string",
      "description": "Optional geography hint, e.g. US."
    },
    "routing_preference": {
      "type": "string",
      "enum": [
        "cheapest",
        "fastest",
        "explicit",
        "round_robin",
        "weighted",
        "policy",
        "default"
      ],
      "description": "How to route across pricing functions. Defaults to \"default\"."
    },
    "function_id": {
      "type": "string",
      "format": "uuid",
      "description": "Optional explicit pricing function UUID to use."
    },
    "include_explanation": {
      "type": "boolean",
      "description": "If true, ask for an explanation and confidence with the price."
    },
    "metadata": {
      "type": "object",
      "description": "Optional context. For competitive pricing: competitor_price, competitor_currency and competitive_action (match or undercut); undercut requires undercut_pct. Confirm product comparability before calling."
    }
  },
  "required": [
    "currency"
  ]
}
⚪verify_price(proposed_price, currency, product_id, product_type, current_price, ...)

Ask 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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "proposed_price": {
      "type": "number",
      "minimum": 0,
      "description": "The price to judge. This is the subject of the call."
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Three-letter ISO currency code, e.g. USD. Defaults to USD."
    },
    "product_id": {
      "type": "string",
      "description": "Optional identifier of what is being priced."
    },
    "product_type": {
      "type": "string",
      "enum": [
        "saas",
        "ecommerce",
        "marketplace",
        "digital",
        "api",
        "custom"
      ],
      "description": "Optional category of what is being priced."
    },
    "current_price": {
      "type": "number",
      "minimum": 0,
      "description": "Optional incumbent price. Not required: asking whether a price is sensible does not presuppose an existing one."
    },
    "customer_segment": {
      "type": "string",
      "description": "Optional segment, e.g. enterprise."
    },
    "geo": {
      "type": "string",
      "description": "Optional geography hint, e.g. US."
    },
    "min_price": {
      "type": "number",
      "minimum": 0,
      "description": "Optional hard floor. Binding: a verdict will never relax it."
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Optional hard ceiling. Binding: a verdict will never relax it."
    },
    "metadata": {
      "type": "object",
      "description": "Optional free-form context."
    }
  },
  "required": [
    "proposed_price"
  ]
}
🟢list_functions

List the pricing functions registered for the authenticated tenant.

入力スキーマ

{
  "type": "object",
  "properties": {}
}
⚪browse_catalog

Browse the public marketplace catalog of pricing functions.

入力スキーマ

{
  "type": "object",
  "properties": {}
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 5 件