Mode VC LLM Token Economics & Model Release Velocity
Server Details
Query empirical frontier LLM release velocity, inference token deflation, and enterprise AI spend.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- harrybuild/modevc-ai-charts-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
The calculator is clearly distinct from the three chart-retrieval tools. Within the chart group, get_chart_data (by slug/title), get_venture_chart_of_the_day (latest), and search_charts (keyword) have distinguishable access patterns, though all three return overlapping chart payloads and an agent may occasionally pick search when a direct lookup was intended.
All four tools use a snake_case verb_noun convention (calc_llm_inference_cost, get_chart_data, get_venture_chart_of_the_day, search_charts). The only nit is the long 'get_venture_chart_of_the_day', but it still follows the same pattern.
Four tools is lean but defensible: one calculator plus three complementary archive-access modes. It sits at the low end of the typical 3-15 range and nothing feels redundant enough to cut.
The surface covers cost modeling and chart discovery/lookup, which are the core operations. Minor gaps exist — no date-range browsing, no way to enumerate the archive beyond 'latest' or keyword hits, and 'model release velocity' is only reachable indirectly through charts rather than a dedicated query.
Available Tools
4 toolscalc_llm_inference_costLLM Inference Cost and Gross Margin CalculatorARead-onlyIdempotentInspect
Estimates monthly LLM spend, cost per user and per request, prompt-cache savings, savings from routing a share of requests to a cheaper model, and gross margin against a target, for an AI product on any current Claude, GPT, Gemini, DeepSeek or Grok model at list price. Compares 9 common models. Same math and the same dated price file as https://modevc.com/tools/llm-inference-calculator.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Main model. Web default claude-sonnet-5-5. | |
| route_model | No | Cheaper model for routed requests. Web default claude-haiku-5-5. | |
| cache_hit_pct | No | Share of input tokens served from the prompt cache, in percent. Web default 40. | |
| route_share_pct | No | Share of requests sent to the cheaper model, in percent. Web default 0. | |
| requests_per_user | No | Requests per user per month. Web default 40. | |
| target_margin_pct | No | Target gross margin after model costs, in percent. Web default 80. | |
| price_per_user_usd | No | Monthly revenue per user in USD. Web default 20. | |
| monthly_active_users | No | Web default 5,000. | |
| input_tokens_per_request | No | Web default 1,200. | |
| output_tokens_per_request | No | Include thinking tokens. Web default 400. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description contributes real behavioral context beyond that: results are computed at list price, and the math plus a dated price file match the public modevc.com calculator, signalling deterministic parity rather than live market pricing. It does not state what the returned object looks like, but with no output schema an enumeration of computed figures partially covers that.
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 the verb and the headline outputs, mapping closely to what the tool returns. The output enumeration is long but each item earns its place; the trailing "compares 9 common models" fragment is the only weakly justified clause and is arguably inconsistent with the enum.
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 10 optional parameters and no output schema, the description carries the burden of telling an agent what comes back, and it does so by listing all five result families. What's missing is shape-level detail, such as whether margin output includes a break-even price per user or how savings are broken out, which matters for a calculator with no declared return type.
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 the baseline is 3 and the schema already explains each parameter, including defaults. The description adds directional meaning by naming prompt-cache savings and routing a share of requests to a cheaper model, but it does not clarify inputs the schema leaves thin, such as the interaction between route_model and route_share_pct or how target_margin_pct changes the output. The odd claim "compares 9 common models" against a 20-value enum adds no usable parameter guidance.
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?
Opens with a specific verb ("Estimates") and enumerates the exact quantities produced: monthly LLM spend, cost per user and per request, prompt-cache savings, routing savings, and gross margin. It also scopes the domain to models from Claude, GPT, Gemini, DeepSeek and Grok, which cleanly separates it from the equity, dilution and SaaS-metric calculators in the sibling list.
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 phrase "for an AI product on any current Claude, GPT, Gemini, DeepSeek or Grok model at list price" gives a clear condition for reaching for this tool. It stops short of naming when not to use it or pointing at a sibling (e.g., a generic burn/SaaS calculator), so it sits just below the explicit routing seen in the strongest definitions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chart_dataGet the Data Table and Sources for One ChartARead-onlyIdempotentInspect
Returns one chart from the Chart of the Day archive: the data table behind it (rows as published), claim, takeaway, note and the sources it cites. Look up by slug or title. Data is as published on the chart page; follow source_urls for the original data.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Chart slug or title, e.g. "pre-seed-valuation-dispersion", "ai-inference-cost-comparison" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description's job is lighter. It adds genuine context beyond them: the data is 'as published' on the chart page and original data must be fetched via source_urls — a useful fidelity caveat that tells the agent the returned table is a snapshot, not a live source.
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 tight sentences: the return payload first, then the lookup mechanism and the data-fidelity caveat. No filler, no restatement of the title, and the most important information is front-loaded.
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 output schema, the description carries the burden of describing returns — and it does so explicitly, naming every returned field plus the source_urls follow-up. For a single-parameter, read-only lookup already covered by annotations, nothing an agent needs to invoke it correctly is missing.
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% and there is only one parameter, so the schema already documents that slug accepts a slug or title. The description's 'Look up by slug or title' largely restates the schema description rather than adding format, normalization, or failure-mode details (e.g., what happens on an ambiguous title match). Baseline 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?
States a specific verb and resource — 'Returns one chart from the Chart of the Day archive' — and enumerates exactly what comes back (data table, claim, takeaway, note, sources). The single-chart, slug-or-title lookup framing distinguishes it from the search_charts sibling, so an agent can route correctly without opening either schema.
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?
'Look up by slug or title' implies the usage context (you already know which chart you want), which is a reasonable implicit contrast to search_charts. However, no sibling is named and no condition is stated for choosing this over search_charts when only a title fragment is known. Usage is implied, not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_venture_chart_of_the_dayLatest Charts from the Mode VC Chart of the DayARead-onlyIdempotentInspect
Returns the most recent charts from Mode VC's Chart of the Day archive (one new chart per day, mostly AI model, adoption, developer-package and pricing data), newest first, each with its claim, takeaway, URL and cited sources.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent charts. Default 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds genuine context beyond that: the one-new-chart-per-day cadence, the topic mix (AI model, adoption, developer-package, pricing data), and the exact fields included per chart.
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?
One sentence that front-loads the resource and recency, then packs cadence, ordering, scope and return fields without a wasted word.
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 no-required-parameter read tool with no output schema, the description covers what the tool returns and how results are ordered, which is the essential missing structured information. It does not mention pagination beyond the limit or error/empty-archive behavior, but little else is needed.
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% and the single limit parameter is fully documented in the schema, including its default of 3 and 1-10 bounds. The description adds no additional meaning about the parameter, so the baseline 3 applies.
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 names a specific verb and resource (returns the most recent charts from the Mode VC Chart of the Day archive), states ordering (newest first), and enumerates returned fields (claim, takeaway, URL, sources). It implicitly separates itself from search_charts by emphasizing recency rather than querying, but never names a sibling explicitly.
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?
Usage is implied by 'most recent charts' and the default limit of 3, so an agent can infer this is the browse-latest entry point. However, there is no explicit statement of when to prefer this over get_chart_data or search_charts, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_chartsSearch the Chart of the Day ArchiveARead-onlyIdempotentInspect
Searches every chart in the Mode VC Chart of the Day archive by keyword over title, claim, takeaway and keywords. Returns claims, takeaways, canonical URLs, markdown endpoints and cited sources. The archive grows by one chart a day; the response states its current size.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum charts to return. Default 10. | |
| query | No | Search term, e.g. "pricing", "claude", "inference", "sdk" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuine context beyond them: what the result contains (claims, takeaways, canonical URLs, markdown endpoints, cited sources) and that the archive grows daily with the response reporting its current size.
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?
Three compact sentences, front-loaded with the action and scope, then return contents, then freshness. No filler and nothing repeated from the structured fields.
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 read-only search tool with no output schema, the description covers scope, matching fields, returned artifacts, and data freshness. An agent has everything needed to call it and interpret the result.
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 the baseline is 3, but the description earns a bump by clarifying what the free-text query actually matches against (title, claim, takeaway, keywords), which the schema alone does not say. The limit parameter is left entirely to 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?
States a specific verb (Searches) and resource (every chart in the Mode VC Chart of the Day archive) plus the exact fields matched (title, claim, takeaway, keywords). The read/search framing implicitly separates it from the get_* siblings, but no sibling is named explicitly, so it stops short of a 5.
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?
Usage is implied: reach for this when you want to find charts by keyword rather than fetch a known one. However, it never says when to prefer it over get_chart_data or get_venture_chart_of_the_day, and there are no stated exclusions or prerequisites.
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.
1 tool update
- Changed
calc_llm_inference_cost19 fields changed- removed
Input schema / properties / input_tokens_per_request / exclusiveMinimumRemoved value: -0 - changed
Input schema / properties / input_tokens_per_request / minimumPrevious value: -1New value: +0 - removed
Input schema / properties / input_tokens_per_request / zeroNoteRemoved value: -"the web calculator replaces 0 with its default" - changed
Input schema / properties / model / descriptionPrevious value: -"Primary model. Web default claude-3-7-sonnet."New value: +"Main model. Web default claude-sonnet-5-5." - changed
Input schema / properties / model / enumPrevious value: -[ - "claude-3-7-sonnet", - "gpt-4o", - "gemini-2-5-pro", - "deepseek-v4", - "claude-3-5-haiku", - "gpt-4o-mini", - "gemini-2-5-flash", - "groq-lpu-qwen" -]New value: +[ + "claude-fable-5-1", + "claude-opus-5-5", + "claude-sonnet-5-5", + "claude-haiku-5-5", + "gpt-6-astra", + "gpt-6.1-sol", + "gpt-6.1-terra", + "gpt-6-luna", + "gpt-5.6-sol", + "gpt-5.3-codex", + "gemini-4-argon", + "gemini-3.8-flash", + "gemini-3.1-pro-preview", + "deepseek-flash", + "deepseek-v4-pro", + "grok-4.7", + "grok-4.6", + "grok-4.5", + "grok-4.3", + "grok-build-0.1" +] - removed
Input schema / properties / monthly_active_users / exclusiveMinimumRemoved value: -0 - changed
Input schema / properties / monthly_active_users / zeroNotePrevious value: -"the web calculator replaces 0 with its default"New value: +"the web calculator clamps this to at least 1" - changed
Input schema / properties / output_tokens_per_request / descriptionPrevious value: -"Web default 400."New value: +"Include thinking tokens. Web default 400." - removed
Input schema / properties / output_tokens_per_request / exclusiveMinimumRemoved value: -0 - changed
Input schema / properties / output_tokens_per_request / minimumPrevious value: -1New value: +0 - removed
Input schema / properties / output_tokens_per_request / zeroNoteRemoved value: -"the web calculator replaces 0 with its default" - removed
Input schema / properties / price_per_user_usd / exclusiveMinimumRemoved value: -0 - added
Input schema / properties / price_per_user_usd / minimumAdded value: +0 - removed
Input schema / properties / price_per_user_usd / zeroNoteRemoved value: -"the web calculator replaces 0 with its default" - removed
Input schema / properties / requests_per_user / exclusiveMinimumRemoved value: -0 - changed
Input schema / properties / requests_per_user / zeroNotePrevious value: -"the web calculator replaces 0 with its default"New value: +"the web calculator clamps this to at least 1" - added
Input schema / properties / route_modelAdded value: +{ + "description": "Cheaper model for routed requests. Web default claude-haiku-5-5.", + "enum": [ + "claude-fable-5-1", + "claude-opus-5-5", + "claude-sonnet-5-5", + "claude-haiku-5-5", + "gpt-6-astra", + "gpt-6.1-sol", + "gpt-6.1-terra", + "gpt-6-luna", + "gpt-5.6-sol", + "gpt-5.3-codex", + "gemini-4-argon", + "gemini-3.8-flash", + "gemini-3.1-pro-preview", + "deepseek-flash", + "deepseek-v4-pro", + "grok-4.7", + "grok-4.6", + "grok-4.5", + "grok-4.3", + "grok-build-0.1" + ], + "type": "string" +} - added
Input schema / properties / route_share_pctAdded value: +{ + "description": "Share of requests sent to the cheaper model, in percent. Web default 0.", + "maximum": 100, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / target_margin_pctAdded value: +{ + "description": "Target gross margin after model costs, in percent. Web default 80.", + "maximum": 99, + "minimum": 0, + "type": "number" +}
4 tool updates
- Added
calc_llm_inference_cost - Changed
get_chart_data1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"Chart slug or identifier (e.g. \"pre-seed-valuation-dispersion\", \"ai-inference-cost-comparison\", \"open-source-vs-closed-ai-models-gap\")"New value: +"Chart slug or title, e.g. \"pre-seed-valuation-dispersion\", \"ai-inference-cost-comparison\""
- Changed
get_venture_chart_of_the_day2 fields changed- removed
Input schema / properties / limit / defaultRemoved value: -3 - changed
Input schema / properties / limit / descriptionPrevious value: -"Number of recent charts to retrieve"New value: +"Number of recent charts. Default 3."
- Changed
search_charts4 fields changed- removed
Input schema / properties / limit / defaultRemoved value: -10 - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of charts to return"New value: +"Maximum charts to return. Default 10." - changed
Input schema / properties / limit / maximumPrevious value: -38New value: +100 - changed
Input schema / properties / query / descriptionPrevious value: -"Search term matching title, claim, key takeaway, or keywords (e.g. \"pre-seed\", \"pricing\", \"claude\", \"inference\", \"sdk\")"New value: +"Search term, e.g. \"pricing\", \"claude\", \"inference\", \"sdk\""
3 tool updates
- First observed
get_chart_data - First observed
get_venture_chart_of_the_day - First observed
search_charts
Related MCP Connectors
Query 38 empirical AI market charts, evaluate distribution defensibility, and search 3,650+ VCs.
Live GPU rental and LLM inference prices across dozens of providers, plus GPU price forecasts.
Search and retrieve time-series data across 38 empirical AI adoption and venture research charts.
Time-series nobody else archives: LLM price history, prediction markets, gas, perp funding.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to look up facts about notable machine-learning models — organization, release date, parameter count, training-compute (FLOP) estimate, hardware and accessibility — by name, and to search or aggregate them by organization, domain, year, or compute threshold. Supports filtering the dataset newest-first and producing per-year training-compute trends, keylessly and without authentication.489 npmMIT
- AlicenseBqualityBmaintenanceEnables natural-language queries about AI startup metrics like ARR and funding, with sourced, confidence-scored answers and contradiction detection.820 PyPI11MIT

Modelmeterofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to query model pricing, deprecations, and cost estimates via a machine-readable changelog of the AI stack.1MIT- AlicenseAqualityBmaintenanceAnswers questions about public tech companies’ AI-infrastructure spending using real SEC EDGAR filings, returning traceable values with sources and derivations. It also detects filing inconsistencies and can draft or file data-quality GitHub issues with supporting evidence.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.