Skip to main content
Glama
aadilr

CostBench MCP Server

by aadilr

CostBench MCP Server

Verified software-pricing intelligence for any MCP client — true costs, hidden fees, negotiation data, price history, side-by-side comparisons, a dated price-change feed, and total cost of ownership for 3,390+ products. Read-only, free, no API key, no signup.

Powered by CostBench.com. Every figure the server returns carries its source and date — the data is only as trustworthy as its provenance, so CostBench publishes the provenance with each number. Responses include an attribution field and per-entity links back to the sourced page.

Tools

Tool

Description

get_pricing

Full sourced pricing record for a product: tiers, hidden costs, contract terms, market data, sentiment, negotiation tips, TCO scenarios, and price history — each claim with its sources. Args: slug, optional depth (summary|full).

get_hidden_costs

The documented hidden / implementation / add-on costs (uplifts, onboarding fees, overages), each with a sourced quote + date. Args: slug.

get_negotiation_tips

Sourced negotiation tactics with success-likelihood. Args: slug.

get_price_history

Per-quarter price snapshots + trend — has the price changed? Args: slug.

compare_software

Side-by-side pricing for 2–4 products (starting price, median annual cost, free tier, ratings). Args: slugs (array).

discover_software

Find products by category, maxPrice, hasFreeTier. Returns matching slugs to look up.

calculate_tco

Total cost of ownership for a product and team size: sourced line items, year-one + multi-year totals, effective per-seat cost. Args: slug, seats, optional tier, termYears.

estimate_llm_cost

Cost of an LLM/API workload (input + output tokens) for a usage-priced provider, from its real rate card. Args: slug, inputTokens, outputTokens, optional model.

get_price_changes

Recent pricing changes CostBench detected against vendor pricing pages — dated, before/after bands, source link. Args: optional slug, category, days (default 30), limit (default 25). Same data as the public feed at https://costbench.com/data/pricing-changes.json.

All tools are read-only (readOnlyHint: true). Products are addressed by slug (e.g. salesforce, microsoft-teams, openai-api); use discover_software if you don't know one.

Related MCP server: Shortlist Price Index MCP

The server is hosted at https://costbench.com/mcp using streamable HTTP transport (MCP spec 2025-03-26). If your client supports remote MCP servers, point it straight at the endpoint:

{
  "mcpServers": {
    "costbench": {
      "type": "streamable-http",
      "url": "https://costbench.com/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http costbench https://costbench.com/mcp

Option 2 — Local stdio server (this package)

For clients that only speak stdio, this package bridges stdio ↔ the hosted endpoint:

{
  "mcpServers": {
    "costbench": {
      "command": "npx",
      "args": ["-y", "github:aadilr/costbench-mcp"]
    }
  }
}

Or clone and run directly:

git clone https://github.com/aadilr/costbench-mcp.git
cd costbench-mcp
npm install
node index.js

Option 3 — Agent Skill / Claude Code plugin

This repo doubles as an Agent Skill and Claude Code plugin.

Any skills-capable agent (Claude Code, Codex CLI, Cursor, Gemini CLI, Copilot, and more):

npx skills add aadilr/costbench-mcp

Claude Code plugin (bundles the MCP server + the skill):

/plugin marketplace add aadilr/costbench-mcp
/plugin install costbench@costbench

The software-pricing skill prefers the MCP tools when connected and otherwise falls back to a bundled script (skills/software-pricing/scripts/pricing.sh) that talks to the hosted endpoint over plain HTTPS — no MCP client required.

Option 4 — Docker

docker build -t costbench-mcp .
docker run -i --rm costbench-mcp

Quick test

# List the tools
curl -X POST https://costbench.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# Get pricing for a product
curl -X POST https://costbench.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_pricing","arguments":{"slug":"salesforce","depth":"summary"}}}'

The get_pricing call above returns a record like:

{
  "slug": "salesforce",
  "name": "Salesforce",
  "category": { "slug": "crm", "name": "CRM" },
  "priceRange": { "low": 0, "median": 100, "high": 550, "currency": "USD" },
  "priceUnit": "user/month",
  "tiers": [
    { "name": "Starter Suite", "priceMonthly": 25, "priceAnnual": 300, "priceUnit": "user/month" },
    { "name": "Pro Suite", "priceMonthly": 100, "priceAnnual": 1200, "priceUnit": "user/month" }
  ],
  "attribution": "Source: CostBench (https://costbench.com) — verified, sourced software pricing intelligence."
}

What's in the data

Products

3,390+

Categories

255

Comparisons

5,850+

Coverage

Tiers, hidden costs, contract terms, negotiation data, price history, TCO, LLM rate cards

Each field carries a license marker (owned | restricted): CostBench's own sourced research is owned; a small number of third-party market-data medians are restricted — surfaceable to a user but not licensed for commercial redistribution.

Environment variables

Variable

Default

Purpose

COSTBENCH_MCP_URL

https://costbench.com/mcp

Override the upstream endpoint

Privacy & limits

  • No authentication or account required. All tools are read-only — the server never writes anything.

  • Per-IP rate limiting: 60 requests/minute.

  • Data is sourced and dated; cite the links.page URL a response returns, not the bare number.

License

MIT

Available Tools

2 tools
get_hidden_costsA
Read-only
Inspect

The documented hidden/implementation/add-on costs of a product (uplifts, onboarding fees, overages), each with a sourced quote + date. The "what they don't tell you" answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the description is not required to restate that. The description adds value by specifying the output includes sourced quotes and dates, which goes beyond the structured annotations. No contradictions with annotations. However, it could mention that results are limited to documented costs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences totaling ~160 characters. It is front-loaded with the key purpose and output details, with no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema, one sibling), the description omits crucial information: what 'slug' means, how to obtain it, and whether results are paginated or limited. The agent cannot reliably invoke the tool without understanding the input parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'slug' with no description and 0% schema coverage. The tool description does not explain what 'slug' represents (e.g., product identifier, URL slug). The agent has no guidance on how to determine the correct value, making effective use difficult.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns hidden/implementation/add-on costs of a product, each with a sourced quote and date. It uses a specific verb ('get') and resource ('hidden costs'), and the phrase 'what they don't tell you' answer adds clarity. It distinguishes from the sibling tool 'get_negotiation_tips' by focusing on costs rather than tips.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or compare to 'get_negotiation_tips'. The agent must infer usage solely from the tool name and brief description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_tipsB
Read-only
Inspect

Sourced negotiation tactics for a product with success-likelihood (how to get a discount).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description confirms the tool is for retrieving tips. Additionally, it adds behavioral context by mentioning 'success-likelihood', which hints at probabilistic or scoring output, going beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that quickly conveys the purpose. It is front-loaded and free of fluff, though it could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimal. It fails to clarify the 'slug' parameter or the format of 'success-likelihood', but the overall purpose is understandable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'slug' has no description in the schema (0% coverage) and the tool description does not explain what it represents (e.g., product identifier). This leaves the agent uncertain about how to provide input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides negotiation tactics for a product, specifically how to get a discount. However, it does not explicitly differentiate from the sibling tool 'get_hidden_costs', leaving some ambiguity about when to choose one over the other.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_hidden_costs'. The agent must infer usage from the description alone, which lacks explicit when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.1.0
    • First observedget_hidden_costs
    • First observedget_negotiation_tips

TDQS

A3.5/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one surfaces hidden costs, the other provides negotiation tactics. There is no overlap in functionality.

Naming Consistency5/5

Both tools follow a consistent 'get_' prefix with descriptive noun phrases ('hidden_costs', 'negotiation_tips'), forming a clear and predictable pattern.

Tool Count3/5

Only two tools is minimalist but reasonable for a highly specialized server focused on cost revelation and negotiation tips. However, the narrow scope may limit usability in broader cost analysis workflows.

Completeness3/5

The tools cover two key aspects of cost benchmarking—hidden costs and negotiation—but lack potentially important operations like listing products, comparing prices, or tracking cost changes over time.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Inject real-time leaked B2B SaaS pricing, historical discounts, and aggressive negotiation playbooks directly into AI agents.
    1
    10
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A dated log of SaaS price changes across 494 tools: old price, new price and verification date for every move, plus category-level pulse and the biggest recorded increases.
    53
    2
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Sourced product prices, dated price history, specs and independent-test coverage across 4,764 hardware products and 2,064 software vendors — every figure returned with its source URL and the date it was captured. Unknown values come back as null rather than a guess, so an agent can cite what it surfaces.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aadilr/costbench-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server