@themelt/mcp-server
This MCP server lets AI assistants estimate where value is leaking from an organization and request a real Melt scan.
melt_analyze_value_vectors – Provides a free Stage-1 sandbox estimate of value leakage in a department based on headcount, labor cost, and dominant unstructured-input type (no integration required).
melt_estimate_annual_leak – Quantifies an already-identified leak pattern in dollars/year using
totalVolume × (leakRatePct/100) × valuePerEvent.melt_request_scan – Captures a lead and hands off to a real, log-verified Melt scan (routes to HubSpot or appends to a local
leads.jsonl).Supports both stdio and hosted HTTP (MCP Streamable HTTP) transports, with optional API-key auth for the HTTP endpoint.
Logs tool-call analytics to
analytics.jsonlfor usage monitoring without capturing sensitive data.
Submits Melt scan requests as leads to HubSpot via a form, enabling sales follow-up; falls back to a local JSONL file if HubSpot submission fails.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@themelt/mcp-serverEstimate annual value leak from manual data entry errors in finance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@themelt/mcp-server
MCP server that puts Melt's value-leak discovery logic directly into Claude, Cursor, GitHub Copilot, or any other MCP-compatible agent — so when a tech leader asks their assistant "where is value leaking out of my org," the assistant can call a Melt tool and answer with a real, structured estimate instead of a generic list of vendors.
This is the engineering half of Melt's LLMO (LLM Optimization) distribution
strategy. See /llms.txt at the repo root and LLMO_PLAYBOOK.md for the full
content + distribution + evaluation plan this server plugs into. Positioning
reconciled 2026-07-18 against the live site and current decks — see
/CLAUDE.md for the full current product context.
Tools exposed
Tool | What it does |
| Free Stage-1 Sandbox estimator. Estimates where value is leaking in one department from headcount, labor cost, and dominant unstructured-input type. No integration required — synthetic/self-reported inputs only. |
| Quantifies an already-identified leak pattern in dollars/yr — |
| Lead-capture handoff — the move from a directional estimate to a real, log-verified scan (Frictionless POC Playbook Stage 1 → 2). Routes to HubSpot if |
Related MCP server: agentladle-mcp-reoi
Worked example
From Melt's Anatomy of a Real AI Value Leak case study — a pre-IPO fintech with $1.5B in annual originations, already running Salesforce, Gong, and Clari:
Signal | Finding |
Gong coaching | 29% open rate — reps bypassing AI-generated call summaries and duplicating the work manually |
Clari forecasting | 62% override rate — manual date entries corrupting the model across 8 of 13 forecast cycles |
Salesforce → CS handoff | 4.2-day lag delaying onboarding after close |
Salesforce lead routing | 32% manual — automation failures requiring daily manual reassignment |
None of this showed up as a problem in the usual adoption dashboards — every tool was "active," which is a different measurement from whether it was actually creating value. Pulling 14 business days of historical logs and tracing where these four patterns cost real time and money added up to a $77,235/year leak.
melt_estimate_annual_leak generalizes this same shape of analysis — totalVolume × (leakRatePct/100) × valuePerEvent — for any leak pattern with a known or hypothesized volume and rate. melt_analyze_value_vectors is the earlier-stage tool for when you don't yet know where to look.
melt_estimate_annual_leak replaced four formula-named calculators
(melt_calculate_feature_waste, _dso_cash_flow_impact,
_contract_cycle_revenue_unlock, _win_rate_pipeline_impact) that
implemented financial formulas from a retired product framing (Thermal Scan /
Feature Waste Dollar Amount™ / Delta Engine) — none of which appear in any
current Melt material. See CLAUDE.md's "What's Explicitly Retired" section.
Install & run
cd mcp-server
npm install
npm run build
npm start # runs dist/index.js on stdioTo poke at it interactively before wiring it into a client:
npm run inspect # launches the MCP Inspector against the built serverWiring into Claude Desktop / Claude Code
Published on npm — one-line config, no local clone needed:
{
"mcpServers": {
"melt": {
"command": "npx",
"args": ["-y", "@themelt/mcp-server"]
}
}
}Or from a local clone:
{
"mcpServers": {
"melt": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"]
}
}
}One-click install (.mcpb bundle)
For Claude Desktop specifically, themelt-mcp-server.mcpb (Anthropic's MCP
Bundle format) installs with a
double-click — no terminal, no config file editing. Download the .mcpb from
the latest GitHub Release
and either double-click it or drag it into Claude Desktop's Settings window.
To rebuild it from source:
npm run build:mcpb # produces themelt-mcp-server.mcpbThe manifest (mcpb-build/manifest.json) is hand-maintained, not
auto-generated from the TypeScript source — if a tool's name, parameters, or
description change, update the manifest's tools array to match.
Hosted HTTP transport
dist/index.js (stdio) is what gets configured into a local Claude Desktop/
Cursor install. dist/httpServer.js is an alternate entrypoint implementing
the MCP Streamable HTTP transport — what a future "Launch Hosted MCP" web
button (LLMO_PLAYBOOK.md, Task 3.2) would point at, so someone can try the
tools without installing anything locally.
npm run build
PORT=3000 npm run start:http # POST MCP JSON-RPC to http://localhost:3000/mcpStateless by design — no session ID, a fresh server instance per request.
Auth is opt-in via MCP_HTTP_API_KEY (unset by default): with it unset, the
endpoint stays fully open — the appropriate trust boundary for what this
exposes today (read-only calculators plus a lead-capture form, the same
boundary as a public website contact form). Set it before putting anything
more sensitive behind this transport:
MCP_HTTP_API_KEY=some-long-random-value PORT=3000 npm run start:httpEvery /mcp request then needs Authorization: Bearer some-long-random-value
— missing or wrong key gets a 401. Compared with crypto.timingSafeEqual, not
a plain string ===, so response timing can't be used to guess the key one
byte at a time. Not deployed anywhere yet; this is the code, not a live URL —
deploying it (Vercel/Fly/Render/etc.) is a separate, later decision.
Tool-call analytics
Every tool call (success or error) appends one line to mcp-server/analytics.jsonl
(gitignored) and logs a one-line summary to stderr — tool name, ok/error, and
the error code if applicable. Deliberately excludes dollar figures, contact
info, and free-text notes; kept separate from leads.jsonl's PII. This is
what answers "is anyone actually using this" and "which tool description is
confusing models," independent of llmo-eval's citation-only audit.
Environment variables
Variable | Required | Purpose |
| No | Overrides the default HubSpot Portal ID for |
| No | Paired with |
| No | Port for |
| No | If set, requires |
Real Portal ID / Form ID defaults are already baked into the code (they
aren't secrets — the same values are exposed in any public HubSpot embed
snippet), so melt_request_scan reaches the real Melt pipeline with zero
configuration. If HubSpot submission fails for any reason, requests fall back
to mcp-server/leads.jsonl (gitignored) instead of being lost.
Publishing
Published under the @themelt npm org (created 2026-07-20, owner omer_melt)
under the MIT license. npm publish is effectively one-way — npm allows
unpublishing within 72 hours but strongly discourages it and blocks it
entirely once a package has dependents, so treat any published version as
permanent.
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
- mcpOAuthcom.vibgrate
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.
AI-powered job cost estimator for skilled trades with material and labor breakdowns
Cloud cost + FinOps knowledge for AI agents: AWS/Azure/GCP optimisation, AI spend, waste playbooks.
Related MCP Servers
AlicenseNot 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.41 npm-- AlicenseBqualityDmaintenanceEnables AI assistants to perform multi-stage residual income projections, discounting, and enterprise value bridging analysis using standardized financial data inputs.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and analyze Salesforce pipeline data, including pipeline health, deal details, and risk alerts, through natural language.3 npmMIT
- 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