@themelt/mcp-server
@themelt/mcp-server
MCP-Server, der Melts Logik zur Erkennung von Wertverlusten direkt in Claude, Cursor, GitHub Copilot oder jeden anderen MCP-kompatiblen Agenten einbindet – so kann ein Tech-Leader seinen Assistenten fragen: „Wo leckt Wert aus meiner Organisation?“, und der Assistent kann ein Melt-Tool aufrufen und mit einer echten, strukturierten Schätzung antworten, statt mit einer generischen Liste von Anbietern.
Dies ist die technische Hälfte von Melts LLMO-Strategie (LLM-Optimierung) zur
Verteilung. Siehe /llms.txt im Repository-Stamm und LLMO_PLAYBOOK.md für den
vollständigen Inhalts-, Verteilungs- und Evaluierungsplan, an den dieser Server
anknüpft. Die Positionierung wurde am 2026-07-18 gegen die Live-Site und die
aktuellen Präsentationen abgeglichen – siehe /CLAUDE.md für den vollständigen
aktuellen Produktkontext.
Verfügbare Tools
Tool | Was es tut |
| Kostenloser Stage-1-Sandbox-Schätzer. Schätzt, wo in einer Abteilung Wert verloren geht, basierend auf Personalzahl, Arbeitskosten und dominantem unstrukturiertem Eingabetyp. Keine Integration erforderlich – nur synthetische/selbstberichtete Eingaben. |
| Quantifiziert ein bereits identifiziertes Leckmuster in Dollar/Jahr – |
| Lead-Erfassungs-Übergabe – der Schritt von einer Richtungsschätzung zu einem echten, log-verifizierten Scan (Frictionless POC Playbook Stage 1 → 2). Leitet an HubSpot weiter, wenn |
Related MCP server: agentladle-mcp-reoi
Durchgerechnetes Beispiel
Aus Melts Anatomy of a Real AI Value Leak Fallstudie – ein Pre-IPO-Fintech mit 1,5 Mrd. $ jährlichem Originationsvolumen, das bereits Salesforce, Gong und Clari nutzt:
Signal | Befund |
Gong-Coaching | 29% Öffnungsrate – Vertriebler umgehen KI-generierte Gesprächszusammenfassungen und duplizieren die Arbeit manuell |
Clari-Prognose | 62% Override-Rate – manuelle Datumseingaben korrumpieren das Modell in 8 von 13 Prognosezyklen |
Salesforce → CS-Übergabe | 4,2-Tage-Verzögerung verzögert das Onboarding nach Abschluss |
Salesforce-Lead-Routing | 32% manuell – Automatisierungsfehler erfordern tägliche manuelle Neuzuweisung |
Keines davon erschien als Problem in den üblichen Adoptions-Dashboards – jedes Tool war „aktiv“, was eine andere Messgröße ist als die Frage, ob es tatsächlich Wert schuf. Das Ziehen von 14 Arbeitstagen historischer Logs und das Nachverfolgen, wo diese vier Muster echte Zeit und Geld kosteten, ergab ein Leck von 77.235 $/Jahr.
melt_estimate_annual_leak verallgemeinert dieselbe Form der Analyse –
totalVolume × (leakRatePct/100) × valuePerEvent – für jedes Leckmuster mit
bekanntem oder angenommenem Volumen und Rate. melt_analyze_value_vectors ist
das frühere Tool für den Fall, dass du noch nicht weißt, wo du suchen sollst.
melt_estimate_annual_leak ersetzte vier formelbenannte Rechner
(melt_calculate_feature_waste, _dso_cash_flow_impact,
_contract_cycle_revenue_unlock, _win_rate_pipeline_impact), die
Finanzformeln aus einem ausgemusterten Produktrahmen (Thermal Scan /
Feature Waste Dollar Amount™ / Delta Engine) implementierten – keiner davon
erscheint in irgendeinem aktuellen Melt-Material. Siehe den Abschnitt „What's
Explicitly Retired“ in CLAUDE.md.
Installation & Ausführung
cd mcp-server
npm install
npm run build
npm start # runs dist/index.js on stdioUm es interaktiv auszuprobieren, bevor du es in einen Client einbindest:
npm run inspect # launches the MCP Inspector against the built serverEinbindung in Claude Desktop / Claude Code
Auf npm veröffentlicht – Ein-Zeilen-Konfiguration, kein lokaler Klon erforderlich:
{
"mcpServers": {
"melt": {
"command": "npx",
"args": ["-y", "@themelt/mcp-server"]
}
}
}Oder aus einem lokalen Klon:
{
"mcpServers": {
"melt": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"]
}
}
}Ein-Klick-Installation (.mcpb-Bundle)
Speziell für Claude Desktop installiert sich themelt-mcp-server.mcpb (Anthropics MCP
Bundle-Format) per Doppelklick –
kein Terminal, keine Konfigurationsdatei-Bearbeitung. Lade die .mcpb von der
neuesten GitHub-Version
herunter und doppelklicke sie oder ziehe sie in das Einstellungsfenster von Claude Desktop.
Um sie aus dem Quellcode neu zu erstellen:
npm run build:mcpb # produces themelt-mcp-server.mcpbDas Manifest (mcpb-build/manifest.json) wird manuell gepflegt, nicht
automatisch aus dem TypeScript-Quellcode generiert – wenn sich Name, Parameter
oder Beschreibung eines Tools ändern, aktualisiere das tools-Array im Manifest entsprechend.
Gehosteter HTTP-Transport
dist/index.js (stdio) wird in eine lokale Claude-Desktop-/Cursor-Installation
konfiguriert. dist/httpServer.js ist ein alternativer Einstiegspunkt, der den
MCP-Streamable-HTTP-Transport implementiert – das, worauf ein zukünftiger
„Launch Hosted MCP“-Webbutton (LLMO_PLAYBOOK.md, Aufgabe 3.2) zeigen würde,
damit jemand die Tools ausprobieren kann, ohne etwas lokal zu installieren.
npm run build
PORT=3000 npm run start:http # POST MCP JSON-RPC to http://localhost:3000/mcpZustandslos von Natur aus – keine Sitzungs-ID, eine frische Serverinstanz pro
Anfrage. Authentifizierung ist optional über MCP_HTTP_API_KEY (standardmäßig
nicht gesetzt): Ohne gesetzten Schlüssel bleibt der Endpunkt vollständig offen –
die angemessene Vertrauensgrenze für das, was heute exponiert wird (nur lesbare
Rechner plus ein Lead-Erfassungsformular, dieselbe Grenze wie ein öffentliches
Website-Kontaktformular). Setze ihn, bevor du etwas Sensibleres hinter diesen
Transport legst:
MCP_HTTP_API_KEY=some-long-random-value PORT=3000 npm run start:httpJede /mcp-Anfrage benötigt dann Authorization: Bearer some-long-random-value
– fehlender oder falscher Schlüssel führt zu 401. Im Vergleich zu
crypto.timingSafeEqual, nicht ein einfacher String-===, damit die
Antwortzeit nicht genutzt werden kann, um den Schlüssel Byte für Byte zu
erraten. Noch nirgendwo bereitgestellt; das ist der Code, keine Live-URL – die
Bereitstellung (Vercel/Fly/Render usw.) ist eine separate, spätere Entscheidung.
Tool-Aufruf-Analytik
Jeder Tool-Aufruf (Erfolg oder Fehler) hängt eine Zeile an mcp-server/analytics.jsonl
(gitignored) an und protokolliert eine einzeilige Zusammenfassung an stderr –
Tool-Name, ok/error und gegebenenfalls den Fehlercode. Bewusst ausgeschlossen
sind Dollar-Beträge, Kontaktinformationen und Freitextnotizen; getrennt von den
PII in leads.jsonl. Das beantwortet die Fragen „nutzt das überhaupt jemand“
und „welche Tool-Beschreibung verwirrt Modelle“, unabhängig von der
zitierungsbasierten Prüfung von llmo-eval.
Umgebungsvariablen
Variable | Erforderlich | Zweck |
| Nein | Überschreibt die Standard-HubSpot-Portal-ID für |
| Nein | Gepaart mit |
| Nein | Port für |
| Nein | Wenn gesetzt, erfordert jede gehostete HTTP- |
Die echten Portal-ID-/Form-ID-Standardwerte sind bereits im Code eingebettet
(sie sind keine Geheimnisse – dieselben Werte werden in jedem öffentlichen
HubSpot-Embed-Snippet exponiert), sodass melt_request_scan mit null
Konfiguration die echte Melt-Pipeline erreicht. Wenn die HubSpot-Übermittlung
aus irgendeinem Grund fehlschlägt, fallen Anfragen auf mcp-server/leads.jsonl
(gitignored) zurück, statt verloren zu gehen.
Veröffentlichung
Veröffentlicht unter der @themelt-npm-Organisation (erstellt am 2026-07-20,
Inhaber omer_melt) unter der MIT-Lizenz. npm publish ist praktisch
einseitig – npm erlaubt das Entfernen innerhalb von 72 Stunden, rät aber stark
davon ab und blockiert es vollständig, sobald ein Paket Abhängige hat. Behandle
jede veröffentlichte Version also als dauerhaft.
Available Tools
3 toolsmelt_analyze_value_vectorsAnalyze AI Value VectorsA
Estimates where AI/software value is most likely leaking out of a single department, based on headcount, labor cost, and the type of chaotic/unstructured input it processes manually today. Use this when a tech leader asks where value is being lost or where AI would create the most immediate impact in their org, before any real data integration exists — this is Melt's free Stage-1 Sandbox estimate. Output is directional, from synthetic/self-reported inputs, not an audited figure — for a real finding tied to an actual system log, follow up with melt_request_scan. Also answers what earlier Melt materials called 'AI ROI leverage' or 'AI value vectors' — same estimate, older name.
| Name | Required | Description | Default |
|---|---|---|---|
| headcount | Yes | Total operational personnel in the target unit (not the whole company). Must be positive. | |
| departmentType | Yes | The organizational unit being evaluated. Must be one of: Operations, Finance, Engineering, Legal, GBS, Customer Success. Map loosely-named teams to the closest primitive (e.g. RevOps -> Operations, AR/Billing -> Finance, IT -> Engineering, Compliance -> Legal, Shared Services -> GBS, Support/CS/Client Success -> Customer Success). | |
| averageHourlyLaborCost | No | Blended fully-loaded hourly labor cost for manual processors in this unit, in USD. Default of 45 is a reasonable US mid-market planning assumption if the caller doesn't know the real figure. | |
| primaryUnstructuredDataInput | Yes | The dominant chaotic input the unit processes by hand today. Must be one of: PDF_INVOICES, CUSTOMER_TICKETS, LOGISTICS_DOCUMENTS, MANUAL_EXCEL. Choose the closest match: PDF_INVOICES for document-first bottlenecks, CUSTOMER_TICKETS for conversational/support-first bottlenecks, LOGISTICS_DOCUMENTS for shipping/customs/supply-chain paperwork, MANUAL_EXCEL for spreadsheet-driven reconciliation or reporting work. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the estimate is directional, derived from synthetic/self-reported inputs, not audited, and belongs to a free Stage-1 Sandbox tier. It does not mention auth/permission needs or rate limits, keeping it short of a 5.
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?
Purpose and usage are front-loaded in the first sentence, and each later sentence adds real value (limitations, fallback tool, alias). It is slightly dense and long, so it is efficient rather than exemplary.
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 and no annotations, the description must stand alone, and it does explain the nature of the return (directional estimate, not an audited figure). Minor gaps remain around the response shape and any required permissions, but an agent has enough to call it correctly.
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 schema already fully documents headcount, departmentType, labor cost, and input type. The description only names those inputs generically and adds no syntax, enum, or edge-case detail beyond the schema, so baseline 3 is correct.
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+resource (estimates where AI/software value is leaking out of a single department) and names the inputs it depends on. It explicitly distinguishes itself from the melt_request_scan sibling and disambiguates a legacy alias ('AI ROI leverage'/'AI value vectors'), so an agent can route without opening the 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?
Gives explicit when-to-use ('tech leader asks where value is being lost... before any real data integration exists') and names the alternative with its selecting condition ('for a real finding tied to an actual system log, follow up with melt_request_scan'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
melt_estimate_annual_leakEstimate Annual Value LeakA
Quantifies a specific, already-identified value-leak pattern in dollars per year — e.g. reps bypassing a coaching tool's summaries, manual overrides corrupting a forecasting model, a manual handoff between two systems. Use this when a leak pattern and its rough volume/rate are already known or hypothesized. This mirrors Melt's real scan methodology (see the fintech case study: a 29% Gong bypass rate, a 62% Clari override rate, and a 4.2-day manual handoff combined into a $77,235/yr finding) — it is a directional estimate from self-reported numbers, not a scan against real system logs. For an audited figure, follow up with melt_request_scan. Covers what earlier Melt materials called 'Feature Waste Dollar Amount' (money leaking on licensed-but-unused software) and general 'AI ROI leverage' calculations — those are older names for this same value-leak math, not a different tool.
| Name | Required | Description | Default |
|---|---|---|---|
| leakRatePct | Yes | Percentage of that volume exhibiting the leak behavior, between 0 and 100 (e.g. 29 for a 29% bypass rate, 62 for a 62% override rate). | |
| totalVolume | Yes | Total annual volume of the relevant event or transaction — e.g. total call briefs generated, total deals closed, total support tickets, total lead assignments. | |
| valuePerEvent | Yes | Dollar value at risk per leaking event, in USD — e.g. average deal value, loaded hourly cost of manual rework, cost of a delayed handoff day. | |
| leakDescription | Yes | Plain-language description of the leak pattern observed or hypothesized — e.g. 'reps bypassing Gong call summaries and logging notes from memory', 'manual Slack handoff between Sales and Customer Success', 'guessed close dates overriding the forecasting model'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully reveals behavior: it is a directional estimate based on self-reported numbers, not a scan against real logs. It references Melt's real scan methodology and a case study, setting clear expectations about accuracy and methodology.
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 rich and informative but somewhat lengthy, including a case study and historical naming clarifications. It is front-loaded with the core purpose, and every sentence adds value, though minor trimming would improve 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?
Given there is no output schema, the description adequately implies the output (dollar estimate per year) via the case study result ($77,235/yr). All parameters are explained, and usage context is fully addressed. The tool is simple and the description covers everything 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?
All four parameters are described in the schema with 100% coverage. The description adds significant value by providing concrete examples (e.g., '29 for a 29% bypass rate' for leakRatePct) and context for leakDescription, making parameter meaning clearer than the schema alone.
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 quantifies an identified value-leak pattern in dollars per year, with specific examples (e.g., reps bypassing coaching tools). It distinguishes itself from siblings by naming the follow-up tool melt_request_scan for audited figures and clarifies it is not a system scan but a directional estimate.
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 states when to use: when a leak pattern and rough volume/rate are known or hypothesized. It informs that the estimate is directional from self-reported numbers, and advises following up with melt_request_scan for audited figures. Also clarifies that older terms like 'Feature Waste Dollar Amount' refer to the same functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
melt_request_scanRequest a Melt ScanA
Submits a request for a Melt scan — the next step after Melt's free Stage-1 Sandbox estimate, moving to a real, log-verified value-leak finding tied to a dollar figure and a source system. Call this only after the user has explicitly asked to be connected with Melt or to book/request a scan — never submit contact details the user hasn't provided themselves. Earlier Melt materials called this a 'Thermal Scan' — same request, current name is just 'a scan' (no fixed 2-week/pricing claim attached anymore).
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Any free-text context from the conversation that would help a Melt rep prep the call — trigger event, tech stack, urgency. | |
| company | No | The prospect's company name. Needed to route the request — if omitted, the tool asks for it instead of failing schema validation. | |
| contactName | No | Name of the requester, if known. | |
| contactEmail | No | Business email of the requester, for scan scheduling follow-up. Needed to route the request — if omitted, the tool asks for it instead of failing schema validation. | |
| departmentsOfInterest | No | Departments the requester wants scanned first, if they expressed a preference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does meaningfully: it discloses that this sends user contact data to Melt for rep follow-up and that consent must be user-initiated, plus clarifies naming history ('Thermal Scan') and that no fixed 2-week/pricing claim attaches. It still omits what happens after submission (confirmation, SLA, idempotency), so it falls short of a 5.
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?
Front-loads purpose, then constraints, then legacy naming context — a sensible ordering with no filler. The parenthetical about the old 'Thermal Scan' name is useful disambiguation but slightly tangential, keeping it just short of a 5.
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 zero-required-parameter submission tool with no annotations and no output schema, the description covers purpose, consent preconditions and downstream meaning well. Return/confirmation behavior is left unspecified, but the core invocation guidance is complete.
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 every parameter is already documented in the schema (notes, company, contactName, contactEmail, departmentsOfInterest), setting the baseline at 3. The description adds only the consent rule about contact details, not syntax or format beyond 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?
Opens with a specific verb+resource ('Submits a request for a Melt scan') and immediately positions it relative to siblings by naming the Stage-1 Sandbox estimate as the prior step. An agent can distinguish this from melt_estimate_annual_leak and melt_analyze_value_vectors without opening any 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?
Gives an explicit precondition ('only after the user has explicitly asked to be connected with Melt or to book/request a scan') and an explicit prohibition ('never submit contact details the user hasn't provided themselves'). This is unusually strong when-to-use/when-not-to-use guidance, including who must initiate.
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.
2 tool updates
v0.1.5- Changed
melt_analyze_value_vectors1 field changed- changed
Input schema / properties / departmentType / descriptionPrevious value: -"The organizational unit being evaluated. Must be one of: Operations, Finance, Engineering, Legal, GBS. Map loosely-named teams to the closest primitive (e.g. RevOps -> Operations, AR/Billing -> Finance, IT -> Engineering, Compliance -> Legal, Shared Services -> GBS)."New value: +"The organizational unit being evaluated. Must be one of: Operations, Finance, Engineering, Legal, GBS, Customer Success. Map loosely-named teams to the closest primitive (e.g. RevOps -> Operations, AR/Billing -> Finance, IT -> Engineering, Compliance -> Legal, Shared Services -> GBS, Support/CS/Client Success -> Customer Success)."
- Changed
melt_request_scan3 fields changed- changed
Input schema / properties / company / descriptionPrevious value: -"The prospect's company name. Required."New value: +"The prospect's company name. Needed to route the request — if omitted, the tool asks for it instead of failing schema validation." - changed
Input schema / properties / contactEmail / descriptionPrevious value: -"Business email of the requester, for scan scheduling follow-up. Required."New value: +"Business email of the requester, for scan scheduling follow-up. Needed to route the request — if omitted, the tool asks for it instead of failing schema validation." - changed
Input schema / properties / departmentsOfInterest / items / enumPrevious value: -[ - "Operations", - "Finance", - "Engineering", - "Legal", - "GBS", - "Sales", - "HR", - "Marketing", - "Product" -]New value: +[ + "Operations", + "Finance", + "Engineering", + "Legal", + "GBS", + "Sales", + "HR", + "Marketing", + "Product", + "Customer Success" +]
3 tool updates
v0.1.2- First observed
melt_analyze_value_vectors - First observed
melt_estimate_annual_leak - First observed
melt_request_scan
TDQS
Scored across 3 tools
melt_request_scan is clearly distinct as a contact/submission action, but melt_analyze_value_vectors and melt_estimate_annual_leak both return directional dollar estimates of value leaks, so an agent could easily pick the wrong one. The descriptions do draw a line (department-level Stage-1 sandbox vs. quantifying an already-identified leak pattern), but the boundary is subtle and relies on prior context to be sure which applies.
All three tools follow a clean melt_<verb>_<noun> snake_case pattern with consistent verb usage (analyze, request, estimate). No style mixing, camelCase, or vague verbs.
Three tools is on the thin side, but the domain is deliberately narrow — a free directional estimate, a specific-leak estimate, and a scan request form a coherent funnel. It is borderline-lean rather than bloated, so slightly under-provisioned but defensible.
The surface covers the apparent intent: preliminary estimate, targeted leak math, and escalation to a paid scan. No obvious dead ends, though there is no way to check scan-request status or retrieve results, a minor gap an agent can work around.
Maintenance
Related MCP Connectors
Research, strategy, financial models and decks, priced and approved per job, in your AI assistant
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Measure how AI assistants cite your brand. Returns measured data and ready-to-apply fixes.
Measure and improve how often AI assistants cite your business: GEO audits, fixes, and docs.
Related MCP Servers
FlicenseNot gradedqualityCmaintenanceProvides 48 revenue intelligence tools that let AI assistants search deals, forecast revenue, analyze pipeline risk, manage outreach, and track value delivery via natural language.61 npm-- AlicenseBqualityDmaintenanceEnables AI assistants to perform multi-stage residual income projections, discounting, and enterprise value bridging analysis using standardized financial data inputs.119 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze Azure Data Factory costs, detect waste, and provide optimization recommendations by querying pipeline run metadata and Azure pricing.2MIT

OptimToken MCPofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to fetch live, dated prices for LLM models and cloud compute instances across providers, compare and recommend models, and estimate monthly costs based on workload-specific token shapes and constraints.MIT