MCPSpend
Server Details
Track cost, latency, and usage of every MCP tool call from any client (Claude, Cursor, Windsurf). Free 25K calls/month — open-source proxy, EU-hosted.
- Status
- Healthy
- Uptime
- 99.6% over 37 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct analytics slice: pre-call estimates, session details, daily totals, monthly projections, session lists, and top-tool rankings. get_today_cost and get_usage_this_month differ clearly by time window and output, and try_demo is explicitly a preview mode. There is no realistic risk of selecting the wrong tool.
All names follow a lowercase imperative verb_noun pattern, with get_ and list_ used for reads and estimate_/try_ for special actions. The verb choice maps predictably to resource cardinality, but the mix of verbs is slightly less uniform than a single get/list convention.
Seven tools cover the core read, analytics, and demo flows without redundancy or padding. This is an appropriate size for a focused spend-observability server.
The surface supports the main workflows: checking current spend, forecasting monthly usage, identifying expensive tools, drilling into sessions, and estimating a call before invoking it. It lacks arbitrary historical date-range queries, but agents can work around that using list_top_tools and current-period summaries.
Available Tools
7 toolsestimate_costARead-onlyIdempotentInspect
Estimate the USD cost of an MCP tool call BEFORE invoking it. Returns median + P90 + average cost from the org's last-30-day history for this exact (server, tool) combo. Use this to make spend-aware decisions in your agent — e.g. confirm with the user before invoking tools where the estimate exceeds your budget. Returns isUnknown=true with zero cost when no baseline exists yet.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional model identifier. Falls back to the historical median across all models when omitted. | |
| toolName | Yes | Tool name within the server, e.g. "browser_navigate". | |
| serverName | Yes | MCP server name, e.g. "playwright" or "github". |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| toolName | Yes | |
| isUnknown | Yes | |
| avgCostUsd | No | |
| p90CostUsd | No | 90th percentile cost — worst-case reasonable estimate. |
| sampleSize | Yes | |
| serverName | Yes | |
| successRate | No | 0-1, fraction of historical calls that succeeded. |
| avgLatencyMs | No | |
| avgInputTokens | No | |
| avgOutputTokens | No | |
| estimatedCostUsd | Yes | Median cost from sample. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently details the output: 'Returns median + P90 + average cost from the org's last-30-day history' and 'Returns isUnknown=true with zero cost when no baseline exists yet.' This adds significant value beyond the annotations (readOnlyHint, idempotentHint) by explaining the specific data returned and edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: three sentences that state purpose, usage, and edge case. Every sentence adds value with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context signals indicate 'Has output schema: true'), the description adequately explains the return values and edge case. It covers all aspects needed for a pre-call estimation tool, and sibling tools are sufficiently differentiated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the tool's context (exact server/tool combo) but does not add new semantics beyond the schema descriptions. The parameters are clearly documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Estimate the USD cost of an MCP tool call BEFORE invoking it.' It specifies the exact verb (estimate), resource (USD cost), and timing, distinguishing it from sibling tools like 'get_today_cost' or 'list_top_tools' which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this to make spend-aware decisions in your agent — e.g. confirm with the user before invoking tools where the estimate exceeds your budget.' It also implies when not to use (when cost is irrelevant) and differentiates from siblings by focusing on per-call cost estimation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_detailsARead-onlyIdempotentInspect
Drill into a single session by ID. Returns the session header plus every tool call within it (capped at 500 to bound payload size).
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID from list_recent_sessions. Must belong to the caller's organization. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| model | Yes | |
| startedAt | Yes | |
| toolCalls | Yes | |
| totalCostUsd | Yes | |
| toolCallCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds behavioral context: returns header + tool calls, capped at 500. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, front-loaded with action verb. Every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter, no nested objects, and existing output schema, the description fully explains what the tool returns and its limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with description. Description adds extra context: 'Must belong to the caller's organization.' Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it drills into a single session by ID, returns header and tool calls (capped at 500). Distinguishes from sibling list_recent_sessions which lists sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly guides to use when needing session details. Mentions payload cap (500) as a usage constraint. Does not explicitly exclude other tools but context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_today_costARead-onlyIdempotentInspect
Total tool-call cost and call count for the current day (UTC), for the organization behind the caller's API key. Returns a human-readable summary line plus raw numbers in a structured field.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| costUsd | Yes | Sum of estimated costs in USD. |
| callCount | Yes | Tool calls observed since 00:00 UTC. |
| errorCount | Yes | Tool calls that returned an error. |
| inputTokens | Yes | Sum of input tokens. |
| outputTokens | Yes | Sum of output tokens. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by detailing the output format (human-readable summary plus raw numbers in a structured field), which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, well-structured sentence that front-loads the key information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, read-only annotations, and an output schema, the description fully covers what the tool does and returns. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description is sufficient and does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns today's total cost and call count, with specific scope (UTC, organization behind API key). It distinguishes from sibling tools like estimate_cost and get_usage_this_month.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving today's cost but does not explicitly state when to use it versus alternatives like estimate_cost or get_usage_this_month. No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usage_this_monthARead-onlyIdempotentInspect
Calls used this calendar month, the plan limit, percentage used, and a linear end-of-month projection based on the current daily average. Use to spot when an org will hit its cap.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | Yes | Current plan tier. |
| callsLimit | Yes | Plan's monthly call cap. |
| percentUsed | Yes | callsThisMonth / callsLimit * 100. |
| callsThisMonth | Yes | Tool calls used since the billing cycle start. |
| organizationName | Yes | Name of the org owning this API key. |
| projectedEndOfMonth | Yes | Linear projection of total calls by end of UTC month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description needs to add context beyond that. It explains the tool returns a linear end-of-month projection based on daily average, which is valuable behavioral detail. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first lists what the tool returns, the second provides the recommended use case. No unnecessary words, information is front-loaded. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what the tool does and its output. An output schema exists (though not shown), so return values are covered. The tool is simple with no parameters, and the description is complete enough for an agent to understand its usage without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%. Per the rubric, baseline is 4 for 0 params. The description doesn't need to explain parameters, but it does explain the output fields (usage, limit, percentage, projection), which adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns monthly call usage data, plan limit, percentage used, and a linear projection. It specifies the resource (calls) and the action (get usage), making the purpose unmistakable. While it doesn't explicitly distinguish from siblings, the unique combination of usage data and projection sets it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Use to spot when an org will hit its cap.' It does not explicitly state when not to use or list alternatives, but the use case is concrete and helpful. Sibling tools like 'get_today_cost' or 'estimate_cost' serve different purposes, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_sessionsARead-onlyIdempotentInspect
Recent agent sessions for this organization, ordered by start time. Each row has the model, total cost, tool-call count, and duration in seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum sessions to return. Defaults to 20. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sessions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, indicating safe, non-destructive behavior. The description adds value by specifying the output fields (model, cost, tool-call count, duration) and ordering by start time, which annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the key purpose, and contains 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and an output schema (implied), the description is complete: it explains what is returned and the ordering. No further details are needed for basic usage, though it could mention that it only returns the most recent sessions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the single 'limit' parameter fully described (type, default, min, max). The description does not add additional parameter semantics beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists recent agent sessions for the organization, ordered by start time, and specifies the fields per row (model, cost, tool-call count, duration). This distinguishes it from sibling tools like get_session_details or get_today_cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing recent sessions but does not explicitly state when to use this tool versus alternatives like get_session_details for a single session or get_today_cost for aggregate cost. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_top_toolsARead-onlyIdempotentInspect
Top MCP tools by cost over the past N days. Answers "what is the most expensive thing my agents do" — useful before tightening prompts or swapping a server.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days. Defaults to 7. | |
| limit | No | Maximum entries to return. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | |
| tools | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, making safety clear. The description adds context about answering a specific question, but no behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one states purpose clearly, the other adds context. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations cover safety, description is complete for a simple list tool. Lacks explicit mention of ordering direction (descending by cost implied).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented in schema. Description adds no additional meaning beyond schema, earning baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists top MCP tools by cost over N days, answering a specific question. Distinguishes from sibling cost tools by focusing on ranking tools by cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete use case ('useful before tightening prompts or swapping a server'), but does not explicitly mention when not to use or alternatives. Sibling names provide some context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
try_demoARead-onlyIdempotentInspect
Run this WITHOUT an API key to see what MCPSpend output looks like. Returns a synthetic cost snapshot identical in shape to get_today_cost + list_top_tools + get_usage_this_month. Use this to preview the product before signing up.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| demo | Yes | Always true — this is sample data. |
| plan | Yes | |
| month | Yes | |
| today | Yes | |
| signUp | Yes | URL where the caller can create a real account. |
| topTools | Yes | |
| organizationName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds that it returns synthetic data identical in shape to three specific tools. No contradictions; adds valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key action ('Run this WITHOUT an API key'), zero wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, existing output schema, and annotations covering safety, the description fully explains what the tool does, when to use it, and what it returns. Complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, schema coverage is 100%, so the description need not add parameter info. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run this') and resource ('synthetic cost snapshot'), and clearly distinguishes it from siblings by specifying it mimics three other tools and requires no API key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use without an API key and to preview before signing up, implying use when you lack authentication. Does not state when not to use (e.g., for real data), but context is clear.
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.
7 tool updates
- First observed
estimate_cost - First observed
get_session_details - First observed
get_today_cost - First observed
get_usage_this_month - First observed
list_recent_sessions - First observed
list_top_tools - First observed
try_demo
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.167 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm49 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.