Skip to main content
Glama
ugobe007
by ugobe007

Merlin Energy MCP

The only MCP server for commercial BESS (Battery Energy Storage) quoting. TrueQuote estimates, lead qualification, competitor battle cards, and proposals inside Claude or any MCP-compatible AI client.

Install

npx @merlinpro/mcp-agent

Related MCP server: swarmix-mcp

Claude Desktop Config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "merlin-energy": {
      "command": "npx",
      "args": ["-y", "@merlinpro/mcp-agent"],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "SUPABASE_URL": "https://xxxx.supabase.co",
        "SUPABASE_SERVICE_ROLE_KEY": "eyJ..."
      }
    }
  }
}

Restart Claude Desktop — the Merlin Energy tools appear in the ⚙ menu.


Tools (6)

Tool

Description

generate_truequote

47-variable BESS sizing + financial model (cost, savings, payback, NPV, IRR, CO2)

qualify_lead

Score leads 0-100 across 18 industry verticals: hot / warm / nurture

compare_competitor

Battle cards vs Homer Energy, EnerNOC, manual Excel

generate_proposal

Executive summary, detailed, or one-pager format

get_benchmarks

NREL and EIA benchmarks: cost curves, utility rates, ROI by sector

handle_objection

Data-backed responses to the 5 most common BESS sales objections

Resources (4)

URI

Content

merlin://product/overview

Full platform overview

merlin://product/differentiators

TrueQuote competitive advantages

merlin://data/benchmarks

Industry ROI benchmarks

merlin://sales/objections

Objection-handling playbook

Prompts (2)

Prompt

Modes

sales-call-opener

Cold opener for BESS sales conversations

executive-pitch

investor / EPC / SMB / manufacturer


Environment Variables

Variable

Required

Description

OPENAI_API_KEY

Yes

OpenAI key for proposal formatting

SUPABASE_URL

Optional

Supabase URL for analytics

SUPABASE_SERVICE_ROLE_KEY

Optional

Supabase service role key

RESEND_API_KEY

Optional

Resend key for email delivery

API_URL

Optional

Merlin Partner API base URL


Why Merlin

Merlin TrueQuote

Homer Energy

Manual Excel

Time per quote

Seconds

12-18 hours

90+ hours

Variables used

47

~12

~8

Accuracy vs. installs

95%+

~85%

~70%

Annual cost

$299/mo+

$3K-$15K/yr

Staff time

MCP integration

Yes

No

No


Partner API

REST API (OpenAPI 3.1.0) for programmatic quoting, leads, and benchmarks.

Plan

Price

Rate Limit

Starter

$299/mo

100 req/hr

Professional

$499/mo

500 req/hr

Enterprise

$999/mo

5,000 req/hr

Docs: merlinpro.energy/api


Development

git clone https://github.com/merlinpro/merlin-mcp-agent
cd merlin-mcp-agent
npm install
npm run dev    # hot reload via tsx
npm run build  # tsc -> dist/index.js

Local test (stdio):

{
  "mcpServers": {
    "merlin-energy-dev": {
      "command": "node",
      "args": ["/path/to/dist/index.js"],
      "env": { "OPENAI_API_KEY": "sk-..." }
    }
  }
}

License

MIT © Merlin Energy

Available Tools

6 tools
compare_competitorA

Get a competitive analysis comparing Merlin against a specific competitor. Use when handling objections or competitive situations.

ParametersJSON Schema
NameRequiredDescriptionDefault
competitorYesCompetitor to compare against
contextNoSpecific comparison context or objection being raised

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions the tool's purpose and usage context but lacks critical behavioral details: it doesn't specify what the analysis includes (e.g., features, pricing, strengths/weaknesses), whether it's read-only or has side effects, or any limitations (e.g., only covers listed competitors). For a tool with no annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded: two sentences that directly state purpose and usage guidelines with zero wasted words. Every sentence earns its place by providing essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (competitive analysis with 2 parameters) and no annotations or output schema, the description is minimally adequate. It covers purpose and usage but lacks details on behavioral traits, output format, or limitations. Without annotations to fill gaps, the description should do more to be complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('competitor' and 'context') well-documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain the 'other' enum option or provide examples for 'context'). Baseline 3 is appropriate since the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a competitive analysis comparing Merlin against a specific competitor.' This specifies the verb ('Get'), resource ('competitive analysis'), and scope ('Merlin against a specific competitor'). However, it doesn't explicitly differentiate from sibling tools like 'handle_objection' or 'get_benchmarks', which might have overlapping competitive analysis functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage: 'Use when handling objections or competitive situations.' This gives practical guidance on when to invoke the tool. However, it doesn't explicitly state when NOT to use it or name alternatives among sibling tools (e.g., 'handle_objection' might be for general objections, while this is specifically for competitive comparisons).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_proposalC

Generate a professional BESS proposal document for a prospect. Formats: executive-summary, detailed-proposal, or one-pager.

ParametersJSON Schema
NameRequiredDescriptionDefault
prospectNameYesProspect company name
industryYesIndustry vertical
systemSizeMWYesRecommended BESS size in MW
durationHoursYesBESS duration in hours
totalCostDollarsYesTotal installed cost in USD
annualSavingsDollarsYesAnnual savings in USD
paybackYearsYesSimple payback period
npvDollarsYes25-year NPV in USD
irrPercentYesIRR as percentage
formatNoexecutive-summary

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions output formats but doesn't describe what the generated document contains, whether it's editable, how it's delivered, or any side effects. 'Generate' implies creation but lacks details about permissions, data persistence, or error handling that would help an agent understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - just one sentence that efficiently communicates the core purpose and output formats. Every word earns its place with no redundancy or unnecessary elaboration. It's front-loaded with the main purpose followed by format options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no annotations and no output schema, the description is inadequate. It doesn't explain what a 'BESS proposal document' contains, how the financial parameters relate to the output, what happens after generation, or any error conditions. The agent would struggle to understand the tool's full context and behavior from this minimal description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 90%, so the schema already documents most parameters well. The description adds minimal value beyond the schema - it mentions 'formats' which corresponds to the 'format' parameter with enum values, but doesn't explain the semantic differences between executive-summary, detailed-proposal, and one-pager formats. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a professional BESS proposal document for a prospect.' It specifies the verb ('generate'), resource ('proposal document'), and domain context ('BESS' - Battery Energy Storage System). However, it doesn't explicitly differentiate from sibling tools like 'generate_truequote' or 'compare_competitor' which might also generate documents or comparisons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance. It mentions three output formats but doesn't explain when to choose each format or when to use this tool versus alternatives like 'generate_truequote' or 'handle_objection'. There's no context about prerequisites, ideal scenarios, or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_truequoteA

Generate a TrueQuote™ BESS recommendation and ROI analysis for a prospect. Use this when a prospect wants to know if battery storage makes sense for their facility.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYesIndustry vertical of the prospect
peakDemandKwYesPeak electrical demand in kilowatts
monthlyBillDollarsYesAverage monthly utility bill in dollars
zipCodeYes5-digit US ZIP code
primaryUseCaseNoPrimary application for the BESSpeak-shaving
hasSolarNoDoes the facility have or plan solar?
solarMWNoExisting/planned solar size in MW
desiredPaybackYearsNoTarget payback period

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions generating a recommendation and ROI analysis, implying a read-only or analytical operation, but doesn't specify if this is a simulation, requires external data, has rate limits, or what the output format looks like. For a tool with 8 parameters and no annotations, this leaves significant gaps in understanding its behavior and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and followed by usage guidance. Every sentence earns its place by clearly stating what the tool does and when to use it, with no wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers purpose and usage well, but lacks details on behavioral aspects like output format, error handling, or dependencies. Without annotations or output schema, more context on what the tool returns or how it operates would improve completeness for this analytical tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description doesn't add any additional meaning or context about the parameters beyond what's in the schema, such as explaining relationships between fields like 'hasSolar' and 'solarMW'. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a TrueQuote™ BESS recommendation and ROI analysis for a prospect.' It specifies the verb ('generate') and resource ('TrueQuote™ BESS recommendation and ROI analysis'), but doesn't explicitly differentiate from sibling tools like 'generate_proposal' or 'compare_competitor', which might also involve generating analyses or comparisons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: 'Use this when a prospect wants to know if battery storage makes sense for their facility.' This gives a specific scenario, but it doesn't mention when not to use it or explicitly name alternatives among sibling tools, such as 'qualify_lead' for initial assessments or 'compare_competitor' for competitive analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_benchmarksB

Retrieve authoritative energy market benchmark data (BESS costs, solar costs, utility rates, ROI by industry, market size).

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesCategory of benchmark data
industryNoSpecific industry for industry-specific benchmarks

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool retrieves data but lacks details on behavioral traits such as data freshness, rate limits, authentication needs, or response format. This is inadequate for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and lists key data types. There is no wasted verbiage, and it directly communicates the tool's function without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It covers the purpose but misses critical behavioral context and output details. However, the schema is well-documented, and the tool's complexity is moderate, making it minimally viable but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with clear descriptions for both parameters. The description adds minimal value beyond the schema by listing benchmark categories, but it does not explain parameter interactions (e.g., how 'industry' relates to 'category') or provide usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and specifies the resource as 'authoritative energy market benchmark data', listing concrete examples (BESS costs, solar costs, etc.). It distinguishes this tool from siblings like 'compare_competitor' or 'generate_proposal' by focusing on data retrieval rather than analysis or generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or comparisons to sibling tools like 'compare_competitor' or 'generate_truequote', leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

handle_objectionC

Get the best Merlin response to a common sales objection.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectionYesThe objection raised by the prospect

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns 'the best Merlin response,' but doesn't explain what 'best' means (e.g., based on criteria like effectiveness or data), whether it's a read-only operation, if there are rate limits, or what the output format looks like. For a tool with no annotations, this is insufficient to understand its behavior beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'Get the best Merlin response to a common sales objection.' It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple tool. Every part of the sentence contributes directly to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like how responses are generated, potential limitations, or what the output contains. For a tool that likely involves AI or data processing, more context is needed to ensure the agent can use it effectively without structured output information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the parameter 'objection' described as 'The objection raised by the prospect.' The description doesn't add any meaning beyond this, such as examples of common objections or formatting tips. Since schema coverage is high, the baseline score of 3 is appropriate, as the schema adequately documents the parameter without extra help from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the best Merlin response to a common sales objection.' It specifies the action ('Get') and the resource ('Merlin response'), though it doesn't explicitly differentiate from sibling tools like 'compare_competitor' or 'qualify_lead', which might also handle sales-related queries. The purpose is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios where it's appropriate, prerequisites, or exclusions. For example, it doesn't clarify if it's for common objections only or all objections, or how it differs from other sales tools in the sibling list. This leaves usage ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qualify_leadC

Qualify a sales lead and determine urgency tier (hot/warm/nurture). Returns a score, recommended actions, and routing decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany name
industryYesIndustry type
annualRevenueNoApproximate annual revenue in USD
numberOfLocationsNoNumber of facilities
decisionTimelineYesPurchasing timeline
currentPainYesPrimary energy challenge they are trying to solve
contactInfoNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool returns a score, recommended actions, and routing decision, which gives some output context. However, it lacks critical details: whether this is a read-only analysis or triggers follow-ups, permission requirements, rate limits, or how the urgency tier is calculated. For a tool with 7 parameters and no annotations, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and outputs. There's no wasted text, but it could be slightly more structured (e.g., separating purpose from return values). Overall, it's appropriately concise for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (7 parameters, nested objects) and lack of annotations or output schema, the description is partially complete. It covers the purpose and return types, which helps, but misses behavioral context and parameter guidance. This is adequate for a basic understanding but leaves gaps for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (86%), so the baseline is 3. The description adds no specific parameter information beyond what the schema provides—it doesn't explain how inputs like 'annualRevenue' or 'decisionTimeline' influence the qualification. This meets the minimum viable standard but doesn't compensate for the 14% coverage gap (e.g., nested 'contactInfo' object details).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Qualify a sales lead and determine urgency tier (hot/warm/nurture).' It specifies the verb ('qualify') and resource ('sales lead') with concrete outputs (score, actions, routing). However, it doesn't explicitly differentiate from sibling tools like 'generate_proposal' or 'handle_objection', which might also involve lead processing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing in the sales process, or how it differs from sibling tools such as 'compare_competitor' or 'generate_truequote'. The agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: compare_competitor for competitive analysis, generate_proposal for proposal documents, generate_truequote for ROI analysis, get_benchmarks for market data, handle_objection for sales responses, and qualify_lead for lead assessment. The descriptions explicitly differentiate when to use each tool, preventing misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as compare_competitor, generate_proposal, and qualify_lead. This predictable naming convention makes the tool set easy to navigate and understand, with no deviations in style or structure.

Tool Count5/5

With 6 tools, the server is well-scoped for its sales and energy domain, covering competitive analysis, proposal generation, ROI analysis, market data, objection handling, and lead qualification. Each tool earns its place without feeling excessive or insufficient for the apparent purpose.

Completeness4/5

The tool set provides strong coverage for sales workflows in the energy sector, including lead qualification, proposal generation, and competitive responses. A minor gap exists in follow-up or closing tools, such as scheduling meetings or contract management, but agents can work around this with the available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables conversational power system analysis by connecting Claude AI with EPRI's OpenDSS simulator. Allows distribution planning engineers to perform sophisticated electrical grid studies through natural language instead of complex scripting.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A powerful MCP server that enables AI assistants like Claude to access, analyze, and optimize solar energy data from FoxESS inverters.
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ugobe007/merlin-mcp-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server