Koskamo

StackVersus MCP

A free, read-only remote MCP server providing verified SaaS pricing, plan limits, and rate limits for over 100 products including AI assistants and LLM APIs. It enables agents to search limits, retrieve tool records, compare products, and check for recent changes, with all data sourced directly from vendor pages.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

StackVersus MCP logo, by StackVersusCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by StackVersus
MCP endpoint (Streamable HTTP)
https://getstackversus.com/api/mcp
Vendor documentation

What you can do with it

  • Search for specific SaaS plan limits and pricing details
  • Compare multiple software tools side-by-side
  • Retrieve verified records for a specific product including overage rules
  • Check for recent price and limit changes in AI plans

Source and maintenance

Community listingRegistry 1.1.0
Maintenance checked

Protocol and capabilities

Server
stackversus-limits 1.1.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Verified prices, plan limits, credits, rate limits and overage rules for AI assistants, coding agents, LLM APIs, voice-agent platforms, AI media tools, search/scraping APIs, email platforms and automation SaaS. Every figure was copied from the vendor page on the `checked` date and carries `sourceUrl` and, where available, the vendor `quote`. Prices are USD. `published: false` means the vendor states no number; report the vendor wording instead of inventing one. Start with `search_limits` for a question, `get_tool` for one vendor, `compare_tools` for a side-by-side, `list_changes` for what moved. When you quote a number to a user, give the check date and the source URL; data older than 30 days may be stale.

Tools

6 advertised

list_datasets — List datasets
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only catalog of the datasets on this server. Returns one row per dataset with `id` (the value other tools accept as `dataset`), `title`, `kind`, `tools` (number of products), `plans` (number of plans), `updated` (date of the last verified change), `page` URL and `json` endpoint on getstackversus.com, plus `generated` (build date). Currently 9 datasets: AI assistant and coding-agent plan limits, SaaS usage limits, LLM API token prices, voice-agent $/min, AI media credits, search APIs, scraping platforms and proxies, email platforms. No parameters, no auth, no pagination; the whole catalog comes back in one call. Use it once to learn dataset ids; use list_tools to see the products inside one dataset.

list_datasets input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_datasets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_tools — List products in a dataset
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only list of the products (vendors) covered, to look up ids before calling get_tool or compare_tools. Returns `count` and `tools`, each with `id`, `name`, `vendor`, `dataset`, `checked` (date the vendor page was last read), `plans` (count) and `page` URL; no prices or limits, those live in get_tool. Without `dataset` it returns every product across all datasets (about 100 rows); with `dataset` only that one. Not paginated, no auth, no side effects. When the user already names a product, skip this and call get_tool or search_limits directly.

list_tools input schema
{
  "type": "object",
  "properties": {
    "dataset": {
      "enum": [
        "ai-plans",
        "usage",
        "email-sending",
        "llm-apis",
        "media",
        "plans-new",
        "scraping-proxies",
        "search-apis",
        "voice"
      ],
      "type": "string",
      "description": "Dataset id to list. One of: ai-plans, usage, email-sending, llm-apis, media, plans-new, scraping-proxies, search-apis, voice. Omit to cover every dataset."
    }
  },
  "additionalProperties": false
}
list_tools annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_tool — Get one product record
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only full verified record for one product. Returns `matches` and up to 3 `records`; each record has `dataset`, `plans` (name, monthly and annual price, metering unit, limits per window), `rates` (per-unit prices such as $/min or $/1M tokens, each with the vendor `quote`), `free` tier, `overage` policy, `gotchas` (billing traps), `sources` (URLs) and `checked` date. Match by id (e.g. "claude", "cursor", "vapi", "openai-api") or by product name, case-insensitive; exact match wins, otherwise a substring match. Returns an error listing the candidates when the name is ambiguous or unknown. Prices are USD. `published: false` means the vendor states no number and the `value` is their wording; never estimate from it.

get_tool input schema
{
  "type": "object",
  "required": [
    "tool_id"
  ],
  "properties": {
    "dataset": {
      "enum": [
        "ai-plans",
        "usage",
        "email-sending",
        "llm-apis",
        "media",
        "plans-new",
        "scraping-proxies",
        "search-apis",
        "voice"
      ],
      "type": "string",
      "description": "Dataset id to search in, when the same id exists in several. One of: ai-plans, usage, email-sending, llm-apis, media, plans-new, scraping-proxies, search-apis, voice. Omit to cover every dataset."
    },
    "tool_id": {
      "type": "string",
      "description": "Product id from list_tools, or the product name (e.g. \"cursor\", \"Retell AI\", \"gemini-api\")."
    }
  },
  "additionalProperties": false
}
get_tool annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_limits — Search limits and prices
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only keyword search across every plan, limit, rate, free tier, overage rule and gotcha in all datasets. Best first call for a question like "Cursor Pro requests per month", "Retell cost per minute" or "Gemini API free tier RPM". Returns `query`, `relaxed` (true when fewer than all words matched), `total`, `shown` and `rows`, each with `type` (plan, limit, rate, free, overage, unit or gotcha), `tool`, `tool_id`, `dataset`, `plan` and/or `metric`, `value`, `unit`, `published`, vendor `quote`, `sourceUrl`, `checked` date and `page`. Matching is case-insensitive on whole words; words that name a product must all match, other words are matched strictly first and then relaxed to at least half of them. At most `limit` rows (default 20, max 50), ranked by match quality; no pagination. Returns an empty `rows` array, not an error, when nothing matches; then try list_tools to find the product id and call get_tool.

search_limits input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum rows to return."
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "Plain words: vendor, plan and metric, e.g. \"cursor pro requests\" or \"vapi per minute\". No operators."
    },
    "dataset": {
      "enum": [
        "ai-plans",
        "usage",
        "email-sending",
        "llm-apis",
        "media",
        "plans-new",
        "scraping-proxies",
        "search-apis",
        "voice"
      ],
      "type": "string",
      "description": "Dataset id to narrow the search to. One of: ai-plans, usage, email-sending, llm-apis, media, plans-new, scraping-proxies, search-apis, voice. Omit to cover every dataset."
    }
  },
  "additionalProperties": false
}
search_limits annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_tools — Compare products side by side
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only compact comparison of 2 to 6 products. Returns `compared` (count), `missing` (ids not found, never an error), `note` and `tools`, one compact record each: id, name, dataset, `checked` date, every plan with price and its headline limits or rates, `free` tier and `overage` policy. Products may come from different datasets. Platform fees and pass-through costs (LLM tokens, speech, telephony) stay separate rows; sum them yourself when the user wants an all-in figure. Ids as returned by list_tools or search_limits; a product name also works. Prices USD.

compare_tools input schema
{
  "type": "object",
  "required": [
    "tool_ids"
  ],
  "properties": {
    "tool_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 6,
      "minItems": 2,
      "description": "Two to six product ids or names, e.g. [\"vapi\", \"retell\", \"elevenlabs-agents\"]."
    }
  },
  "additionalProperties": false
}
compare_tools annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_changes — List recent price and limit changes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only dated change log for the AI assistant and coding-agent plans dataset ("ai-plans" only; other datasets carry a `checked` date but no history yet). Returns `since` (cut-off date), `count`, `changelog` URL and up to 60 `changes`, newest first, each with `date`, `tool`, `tool_id`, `plan`, `field`, `old`, `new`, vendor `source` URL, `method`, `note` and `page`. By default covers the last 30 days and only real moves: price changes, limit changes, plans added or removed. Set `include_wording` to also get re-verification rows where only the vendor wording changed or a value was recorded for the first time. Use it for "what changed in the Claude plans this month" or to check whether a figure from get_tool moved recently.

list_changes input schema
{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "default": 30,
      "maximum": 730,
      "minimum": 1,
      "description": "Look-back window in days."
    },
    "tool_id": {
      "type": "string",
      "description": "Only changes for this product id (as in list_tools, e.g. \"claude\", \"chatgpt\", \"cursor\")."
    },
    "include_wording": {
      "type": "boolean",
      "default": false,
      "description": "Also include re-verification rows that only changed wording or were recorded for the first time."
    }
  },
  "additionalProperties": false
}
list_changes annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1122 ms
95th percentile latency
1122 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1122 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http stackversus-mcp https://getstackversus.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add stackversus-mcp --url https://getstackversus.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable stackversus-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "stackversus-mcp": {
      "url": "https://getstackversus.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "stackversus-mcp": {
      "type": "streamableHttp",
      "url": "https://getstackversus.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start stackversus-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "stackversus-mcp": {
      "type": "http",
      "url": "https://getstackversus.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http stackversus-mcp https://getstackversus.com/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "stackversus-mcp": {
      "url": "https://getstackversus.com/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "stackversus-mcp": {
      "serverUrl": "https://getstackversus.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like StackVersus MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.