PromptSpend

LLM pricing where every rate carries its source and the date it was last confirmed.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~614Tokens (tool definitions)
~1.7 KBTypical response size
Minimal attention impact (0.48% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "promptspend": {
      "command": "npx",
      "args": [
        "@promptspend/mcp"
      ]
    }
  }
}

Runnable packages

npm@promptspend/mcp0.1.11stdio

Remote endpoints

https://promptspend.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒get_price(model_name, as_of)

List price for one LLM in USD per million tokens, with its source and last-confirmed date. Returns disputed=true when two sources disagree, and close matches when the model is unknown. To cost a workload, use estimate_cost.

Input Schema

{
  "type": "object",
  "properties": {
    "model_name": {
      "type": "string",
      "description": "Model id or name, e.g. gpt-5 or \"Claude Opus 5\"."
    },
    "as_of": {
      "type": "string",
      "description": "Past date YYYY-MM-DD: the rate published then."
    }
  },
  "required": [
    "model_name"
  ]
}
🟒estimate_cost(models, system_tokens, user_tokens, output_tokens, turns, ...)

Monthly cost of a described workload, or of measured usage, on each model. Accounts for history compounding, cache writes, long-context tiers and reasoning tokens. Use this instead of multiplying prices by hand.

Input Schema

{
  "type": "object",
  "properties": {
    "models": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Up to about 8."
    },
    "system_tokens": {
      "type": "number",
      "description": "System prompt size. Default 800."
    },
    "user_tokens": {
      "type": "number",
      "description": "Typical user message. Default 150."
    },
    "output_tokens": {
      "type": "number",
      "description": "Typical reply. Default 350."
    },
    "turns": {
      "type": "number",
      "description": "Turns per conversation. Default 4."
    },
    "conversations_per_day": {
      "type": "number",
      "description": "Default 1000."
    },
    "cached_input_share": {
      "type": "number",
      "description": "0-1. Default 0."
    },
    "reasoning_multiplier": {
      "type": "number",
      "description": "Bill output at this multiple. Default 1."
    },
    "use_batch_api": {
      "type": "boolean",
      "description": "Apply batch discounts."
    },
    "usage": {
      "type": "object",
      "description": "Measured totals to price instead: input, output, cache_read, cache_write tokens (input excludes cache reads).",
      "additionalProperties": {
        "type": "number"
      }
    }
  },
  "required": [
    "models"
  ]
}
🟒find_cheaper(model, min_capability, system_tokens, user_tokens, output_tokens, ...)

Cheaper models that score at or above the given one on capability, costed on the same workload. Returns candidates to test, not a recommendation.

Input Schema

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string",
      "description": "The model currently in use."
    },
    "min_capability": {
      "type": "number",
      "description": "0-100. Defaults to the given model’s score."
    },
    "system_tokens": {
      "type": "number",
      "description": "Default 800."
    },
    "user_tokens": {
      "type": "number",
      "description": "Default 150."
    },
    "output_tokens": {
      "type": "number",
      "description": "Default 350."
    },
    "turns": {
      "type": "number",
      "description": "Default 4."
    },
    "conversations_per_day": {
      "type": "number",
      "description": "Default 1000."
    }
  },
  "required": [
    "model"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools