melt-ai

@themelt/mcp-server

Community melt-ai
Updated

Melt MCP server — value-leak discovery and lead capture for Claude, Cursor, and any MCP-compatible agent

@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 techleader asks their assistant "where is value leaking out of my org," theassistant can call a Melt tool and answer with a real, structured estimateinstead of a generic list of vendors.

This is the engineering half of Melt's LLMO (LLM Optimization) distributionstrategy. See /llms.txt at the repo root and LLMO_PLAYBOOK.md for the fullcontent + distribution + evaluation plan this server plugs into. Positioningreconciled 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
melt_analyze_value_vectors 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.
melt_estimate_annual_leak Quantifies an already-identified leak pattern in dollars/yr — totalVolume x (leakRatePct/100) x valuePerEvent, generalizing Melt's real "Anatomy of a Scan" methodology (a 29% Gong bypass rate, a 62% Clari override rate, etc., combined into a real $77,235/yr finding).
melt_request_scan 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 HUBSPOT_PORTAL_ID/HUBSPOT_FORM_ID are set, otherwise appends to a local leads.jsonl.

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) thatimplemented financial formulas from a retired product framing (Thermal Scan /Feature Waste Dollar Amount™ / Delta Engine) — none of which appear in anycurrent 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 stdio

To poke at it interactively before wiring it into a client:

npm run inspect     # launches the MCP Inspector against the built server

Wiring 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 MCPBundle format) installs with adouble-click — no terminal, no config file editing. Download the .mcpb fromthe latest GitHub Releaseand 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.mcpb

The manifest (mcpb-build/manifest.json) is hand-maintained, notauto-generated from the TypeScript source — if a tool's name, parameters, ordescription 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 implementingthe MCP Streamable HTTP transport — what a future "Launch Hosted MCP" webbutton (LLMO_PLAYBOOK.md, Task 3.2) would point at, so someone can try thetools without installing anything locally.

npm run build
PORT=3000 npm run start:http   # POST MCP JSON-RPC to http://localhost:3000/mcp

Stateless 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, theendpoint stays fully open — the appropriate trust boundary for what thisexposes today (read-only calculators plus a lead-capture form, the sameboundary as a public website contact form). Set it before putting anythingmore sensitive behind this transport:

MCP_HTTP_API_KEY=some-long-random-value PORT=3000 npm run start:http

Every /mcp request then needs Authorization: Bearer some-long-random-value— missing or wrong key gets a 401. Compared with crypto.timingSafeEqual, nota plain string ===, so response timing can't be used to guess the key onebyte 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, andthe error code if applicable. Deliberately excludes dollar figures, contactinfo, and free-text notes; kept separate from leads.jsonl's PII. This iswhat answers "is anyone actually using this" and "which tool description isconfusing models," independent of llmo-eval's citation-only audit.

Environment variables

Variable Required Purpose
HUBSPOT_PORTAL_ID No Overrides the default HubSpot Portal ID for melt_request_scan (e.g. to test against a sandbox form).
HUBSPOT_FORM_ID No Paired with HUBSPOT_PORTAL_ID.
PORT No Port for start:http (default 3000).
MCP_HTTP_API_KEY No If set, requires Authorization: Bearer <key> on every hosted-HTTP /mcp request. Unset by default — stdio transport is unaffected either way (no HTTP surface to gate).

Real Portal ID / Form ID defaults are already baked into the code (theyaren't secrets — the same values are exposed in any public HubSpot embedsnippet), so melt_request_scan reaches the real Melt pipeline with zeroconfiguration. If HubSpot submission fails for any reason, requests fall backto 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 allowsunpublishing within 72 hours but strongly discourages it and blocks itentirely once a package has dependents, so treat any published version aspermanent.

MCP Server · Populars

MCP Server · New