Last Price
Compute and verify prices from an agent, metered per call. Works keyless on a demo tenant.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen verify_price
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"pricing": {
"url": "https://api.last-price.ai/api/mcp/rpc"
}
}
}Puntos de conexión remotos
https://api.last-price.ai/api/mcp/rpcstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {}
}⚪browse_catalog
Browse the public marketplace catalog of pricing functions.
Esquema de entrada
{
"type": "object",
"properties": {}
}Comunidad
Evidencia