kardashev-mcp
OfficialClick on "Install 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., "@kardashev-mcpWhat's the current RT-DA spread forecast for ERCOT?"
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.
kardashev-mcp
MCP server for Kardashev Labs US grid data. Gives agents live LMP, carbon intensity, load, curtailment, interconnection queues, ERCOT large loads, and the public RT−DA spread forecast track record. No API key required.
Data comes from the public API at data.kardashevlabs.org.
Install
npx -y kardashev-mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"kardashev": {
"command": "npx",
"args": ["-y", "kardashev-mcp"]
}
}
}Claude Code
claude mcp add kardashev -- npx -y kardashev-mcpRelated MCP server: GridPulse Energy
Tools
Tool | What it returns |
| Covered ISOs/RTOs and live ingest status |
| Generation by fuel type (MW) |
| Carbon intensity (lbs CO₂/MWh) |
| Locational marginal prices (RT/DA) |
| Actual grid load (MW) |
| Near-term load forecast |
| Solar/wind curtailment |
| Interconnection queue projects |
| ERCOT large-load interconnection snapshot |
| Live ERCOT RT−DA spread forecast (issued before delivery) |
| Scored public track record for the spread models |
Row-returning tools default to limit=50 (hard max 500) so agents stay within context budgets.
Optional env
Variable | Default | Purpose |
|
| Override API base (local data plane) |
|
| Per-request timeout |
Develop
npm install
npm run build
npm start # stdio
npm run inspect # MCP InspectorLinks
Website: kardashevlabs.org
Forecast track record: kardashevlabs.org/forecast
API docs: data.kardashevlabs.org/docs
Python client:
kardashevJS/TS client:
kardashev
License
MIT
Available Tools
11 toolsget_carbonGet carbon intensityA
Grid carbon intensity in lbs CO₂/MWh. Omit iso with latest=true for all balancing authorities; pass iso for one region. Prefer this over raw fuel-mix when the question is about emissions intensity.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date YYYY-MM-DD for history. | |
| iso | No | ISO/BA code. Optional when latest=true (returns all). | |
| hours | No | Trailing hours of history. | |
| limit | No | Max rows (default 50, max 500). | |
| start | No | Start date YYYY-MM-DD for history. | |
| latest | No | If true, return latest snapshot(s). Default true when no history window. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself. It adds the unit and the all-vs-single-region behavior, but does not explicitly state that it's read-only, describe the response format, or mention pagination, leaving some transparency gaps.
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 two sentences, front-loaded with the core purpose and unit, and contains no redundant information.
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?
The tool has 6 parameters, no annotations, and no output schema. The description covers the purpose, unit, primary usage modes, and relationship to a sibling tool. It does not describe the return shape, but the parameter schema covers usage details, making it sufficiently complete for an agent.
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?
The schema already provides descriptions for all 6 parameters, so the baseline is 3. The description enriches the semantics for 'iso' and 'latest' by explaining how omitting iso with latest=true retrieves all balancing authorities and passing iso returns one region.
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 explicitly states the tool returns grid carbon intensity in lbs CO₂/MWh, which is a specific resource and unit. It also distinguishes from the sibling get_fuel_mix by advising preference for emissions intensity questions.
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?
It provides explicit guidance on when to use this tool over alternatives ('Prefer this over raw fuel-mix when the question is about emissions intensity') and instructs how to query all regions versus one by toggling iso and latest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_curtailmentGet renewable curtailmentA
Solar and wind curtailment (MWh) by ISO. Strongest coverage for CAISO, ERCOT, SPP.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date YYYY-MM-DD. | |
| iso | No | ISO code filter, e.g. CAISO or ERCOT. | |
| days | No | Trailing days if start/end omitted. | |
| limit | No | Max rows after fetch (default 50, max 500). | |
| start | No | Start date YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds a useful caveat about coverage strength, implying weaker coverage elsewhere. However, it does not mention output format, pagination, or other behavioral quirks. The added coverage note earns a mid-range score.
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 two sentences, front-loaded with the core purpose and then a concise caveat. No wasted words, clear structure, and immediately informative.
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 data retrieval tool with 5 optional parameters but no output schema, the description is adequate but not complete. It states the data type, unit, and coverage, but leaves out specifics like default time range, return format, or field details. The coverage caveat adds context, yet gaps remain.
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% since every parameter has a description. The tool description adds minimal parameter meaning beyond the schema—'by ISO' repeats the iso parameter description. Baseline 3 is appropriate because the schema already documents all parameters adequately.
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 identifies the resource: 'Solar and wind curtailment (MWh)' and specifies the scope 'by ISO'. It distinguishes itself from sibling tools (load, fuel mix, etc.) by naming a unique metric. The verb is implicit in the tool name but the action is unmistakable.
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 description gives a clear context for when to use the tool (for curtailment data by ISO) but does not explicitly mention alternatives or exclusions. The note about strongest coverage for CAISO, ERCOT, SPP implies a preference for those ISOs, but it does not tell the agent when to choose another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecast_track_recordGet spread forecast track recordA
Public scored track record for Kardashev Labs ERCOT RT−DA spread models (MAE/RMSE/coverage/DART PnL). Use this to evaluate forecast quality; use get_spread_forecast for the live forward issuance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses public read-only nature via 'Public', and adds context on the kind of data (MAE/RMSE/coverage/DART PnL). It doesn't describe return format or update frequency, but for a 0-param read-only tool this is adequate.
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 concise sentences, front-loaded with the core purpose, no filler. Each sentence earns its place.
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 parameterless tool, the description is complete: it names the resource, its scope, the metrics, and the alternative. Missing specifics about return shape or historical range, but these are minor gaps for such a tool.
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?
There are zero parameters, so the baseline is 4. The description doesn't need to explain any parameters and adds richness by stating the specific metrics included.
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 states exactly what the tool does: exposes a scored track record of specific models (Kardashev Labs ERCOT RT-DA spread) with metrics. It explicitly names the resource and differentiates from get_spread_forecast.
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?
It explicitly says 'Use this to evaluate forecast quality' and provides the alternative 'use get_spread_forecast for the live forward issuance', giving clear when-to-use vs alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fuel_mixGet fuel mixA
Generation by fuel type (MW) for a US ISO. Use latest=true for the newest snapshot; otherwise returns recent history (row-capped).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date YYYY-MM-DD. | |
| iso | Yes | ISO/RTO code, e.g. CAISO, ERCOT, MISO, NYISO, ISONE, SPP, PJM. | |
| limit | No | Max rows (default 50, max 500). | |
| start | No | Start date YYYY-MM-DD. | |
| latest | No | If true, return only the latest fuel-mix snapshot. Default false. | |
| fuel_type | No | Optional fuel filter, e.g. solar, wind, gas. |
TDQS
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 adds useful context such as 'row-capped' and the latest/history behavior, but it does not disclose the return format, error conditions, or timezone conventions. For a read-only tool, the safety profile is implicitly benign, but behavioral details remain incomplete.
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 two sentences, front-loaded with the main purpose, and contains zero redundant or filler content. Every word contributes to understanding the tool's function and primary usage.
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 the tool has six parameters, no output schema, and no annotations, the description covers the core functionality and the main behavioral switch (latest vs history). It leaves the exact return shape and row-limit interpretation to the schema, which is adequate for a tool of this complexity but not exhaustive.
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 documents all six parameters and their details. The description adds a small amount of behavioral context for the 'latest' parameter and row-capping, but it does not materially extend understanding beyond the schema's property descriptions.
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 states 'Generation by fuel type (MW) for a US ISO' which clearly identifies the resource and data returned, though it lacks an explicit verb like 'returns' or 'retrieves'. It distinguishes get_fuel_mix from sibling tools by specifying fuel mix, which is a unique data type among the listed siblings.
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 description provides explicit usage guidance: 'Use latest=true for the newest snapshot; otherwise returns recent history (row-capped)'. This clarifies the primary decision point for using the tool. It does not explicitly contrast with sibling tools, but the unique data type makes the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_large_loadGet ERCOT large loadsA
ERCOT large-load interconnection queue snapshot and summary (data centers, crypto, industrial). ERCOT-only. Use summary=true for aggregates; default returns latest rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows when summary=false (default 50, max 500). | |
| summary | No | If true, return aggregate summary instead of project rows. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: returns latest rows by default, summary aggregates with summary=true. However, it does not describe the output structure, update frequency, or explicitly state that it is read-only.
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 three concise sentences, front-loaded with the core purpose and scope, then adding the most relevant usage tip. No unnecessary words.
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 two-parameter getter with no annotations or output schema, the description provides the essential purpose and scope. It lacks detail on the exact fields returned in rows/summary, but is adequate for basic invocation.
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 covers both parameters fully with descriptions, so baseline is 3. The description adds minimal extra semantic value by pointing to the summary toggle, but no additional syntax or format details.
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 identifies the tool as an ERCOT large-load interconnection queue snapshot, specifying the domain (ERCOT) and content (data centers, crypto, industrial). It distinguishes from sibling tools by noting ERCOT-only and the large-load focus, and mentions the summary option.
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?
Provides context that it is ERCOT-only and explains summary versus row output, but does not explicitly state when to use this tool over sibling tools like get_load or get_queue. No exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lmpGet LMP pricesA
Locational marginal prices (LMP) for a US ISO. market=RT (real-time) or DA (day-ahead). Optionally filter by node_id. This is settled/observed prices — for Kardashev's forward RT−DA spread forecast use get_spread_forecast instead.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date YYYY-MM-DD. | |
| iso | Yes | ISO/RTO code, e.g. CAISO, ERCOT, MISO, NYISO, ISONE, SPP, PJM. | |
| limit | No | Max rows (default 50, max 500). | |
| start | No | Start date YYYY-MM-DD. | |
| market | No | RT (real-time) or DA (day-ahead). Default RT. | |
| node_id | No | Optional price node / hub id. |
TDQS
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 adds important context that this is 'settled/observed prices,' clarifying the data is historical/actual, not a forecast. It also implies a read-only operation. However, it does not mention potential rate limits, pagination, or response structure, but those are less critical for a simple data-retrieval tool. The key behavioral trait (observed vs. forecast) is disclosed.
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 compact and front-loaded: the first sentence states the core purpose, the second adds key parameter details and an alternative tool. Every sentence contributes actionable information with no filler. The structure is clear and easy to parse, earning a top score.
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 tool with 6 parameters, 1 required, and no output schema, the description covers the main use case, key parameter choices, and tool alternatives. It does not explicitly describe the return format, but given the tool's simplicity and the fact that no output schema exists, the description is sufficiently complete. A slight gap is the lack of guidance on date ranges or limits, but these are documented in the schema.
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% with detailed descriptions for all six parameters. The description adds no new semantic meaning beyond the schema: it repeats market values (RT/DA) and node_id optionality, which are already documented in the schema. Per the baseline rule, a score of 3 is appropriate when schema does the heavy lifting and description offers minimal additional parameter insight.
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 returns 'Locational marginal prices (LMP) for a US ISO,' using a specific resource (LMP) and scope (US ISO). It distinguishes itself from sibling tools by explicitly noting it provides 'settled/observed prices' and directing to get_spread_forecast for forward forecasts, eliminating ambiguity.
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 description explains the primary use (retrieving LMP) and key parameters (market=RT or DA, optional node_id). It provides an explicit alternative: 'for Kardashev's forward RT−DA spread forecast use get_spread_forecast instead,' which clearly tells the agent when to use a different tool. This is excellent usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_loadGet grid loadC
Actual electricity demand (MW) for a US ISO or zone.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End date YYYY-MM-DD. | |
| iso | Yes | ISO/RTO code, e.g. CAISO, ERCOT, MISO, NYISO, ISONE, SPP, PJM. | |
| zone | No | Optional zone/load zone filter. | |
| hours | No | Trailing hours. | |
| limit | No | Max rows (default 50, max 500). | |
| start | No | Start date YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure, but it only provides a factual label. It does not explain return format, pagination, date handling, or any operational constraints like rate limits or data availability.
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 a single, concise sentence with no filler or redundancy. It is front-loaded with the key concept, though it could be slightly more informative without becoming long.
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 the tool has 6 parameters, no output schema, and no annotations, the description is far too minimal to be complete. It does not describe the response structure, how date ranges work, or what differentiates this from the load forecast sibling, leaving significant gaps for the agent.
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%—all six parameters have descriptions in the input schema. The tool description adds no additional semantic meaning beyond the schema, so the 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?
The description clearly identifies the resource (electricity demand in MW) and scope (US ISO or zone), and the word 'Actual' distinguishes it from sibling get_load_forecast. However, it lacks an explicit verb, instead using a noun phrase, which costs one point.
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?
No guidance is provided on when to use this tool versus alternatives like get_load_forecast or list_isos. The description neither states usage context nor mentions exclusions, so it receives the 'no guidance' score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_load_forecastGet load forecastA
Near-term ISO load forecast (MW). Not the ERCOT RT−DA price-spread forecast — use get_spread_forecast for that.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO code. Optional for default coverage. | |
| hours | No | Forecast horizon in hours. Default 24. | |
| include_recent | No | Include recent actuals alongside the forecast. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the unit (MW) and timeframe (near-term), but does not describe return format, pagination, or other behavioral details. This is adequate but not rich; the description adds some context beyond the schema but lacks depth.
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 two sentences, with the purpose front-loaded in the first sentence and the exclusion in the second. Every word earns its place; no fluff.
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, read-only forecast tool with zero required parameters and full schema coverage, the description is mostly complete. It doesn't explain return values (no output schema), but it does clarify the main source of confusion with the sibling spread forecast. Minor gap: no mention of ISO coverage or default behavior beyond what schema implies.
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 baseline is 3. The description itself does not add parameter-specific semantics; it only gives general context about MW and near-term. The schema already covers each parameter, so no significant penalty.
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 states the tool returns a near-term ISO load forecast in MW, using a specific noun phrase that clearly identifies the resource. It also explicitly distinguishes it from the ERCOT RT−DA price-spread forecast, which differentiates it from a key sibling tool.
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 description explicitly tells the agent when NOT to use this tool: 'Not the ERCOT RT−DA price-spread forecast — use get_spread_forecast for that.' This provides an explicit alternative and exclusion, which is the highest level of guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_queueGet interconnection queueA
Search generator interconnection queue projects across US ISOs/RTOs — projects waiting to connect to the grid. Filter by iso, fuel_type, status, state, or min_mw.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO filter, e.g. ERCOT, MISO, PJM. | |
| limit | No | Max rows (default 50, max 500). | |
| state | No | US state code filter, e.g. TX. | |
| min_mw | No | Minimum capacity MW. | |
| status | No | Queue status filter. | |
| fuel_type | No | Fuel/technology filter, e.g. Solar, Wind, Storage. |
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 of behavioral disclosure. It explains what the tool searches and filters but does not mention response format, pagination, default limits, or any side effects. There is no annotation to confirm it is a safe read operation, making the behavioral transparency incomplete.
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 a single, front-loaded sentence that immediately states the tool's purpose, then efficiently lists the filterable fields. The parenthetical clarification 'projects waiting to connect to the grid' is concise and adds useful context without waste.
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 the tool has six optional parameters, full schema coverage, and no output schema, the description covers the domain and filter options well. However, it does not mention what fields are returned or how results are structured, which is a notable gap in the absence of an output schema and annotations. It is adequate but not comprehensive.
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 each parameter is already documented. The description adds modest value by grouping the key filter fields (iso, fuel_type, status, state, min_mw), but it does not provide additional semantics beyond what the schema already states. Baseline of 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?
The description uses a specific verb ('Search') and clearly identifies the resource ('generator interconnection queue projects') across US ISOs/RTOs. It also clarifies the domain with 'projects waiting to connect to the grid,' which distinguishes it from sibling tools like get_load or get_fuel_mix.
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 description implies when to use the tool—when you need interconnection queue data—and lists applicable filters. However, it does not explicitly state when not to use it or mention any alternative tools, so the guidance is implicit rather than directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spread_forecastGet ERCOT RT−DA spread forecastA
Kardashev Labs live ERCOT day-ahead RT−DA price spread forecast (p10/p50/p90), issued before delivery and never revised. spread = RT − DA. Optional node_id filter (e.g. HB_BUSAVG, HB_NORTH). For scored historical performance use get_forecast_track_record.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50, max 500). | |
| node_id | No | ERCOT hub/node id filter, e.g. HB_BUSAVG. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It adds valuable context: the forecast is issued before delivery and never revised, indicating a stable, non-mutating read operation. However, it does not explicitly state whether the tool is read-only, but that is implied by its nature.
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 two sentences, densely packed with essential information (provider, market, metric, forecast percentiles, immutability, and alternative tool). No wasted words, and the structure flows logically from definition to filter to alternative.
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?
No output schema exists, so the description should clarify return values; it mentions p10/p50/p90, which conveys the key output fields. Parameters are fully documented in the schema, and the alternative tool is named. It lacks an explicit response structure but is adequate for a forecast query tool.
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. The description adds semantic value beyond the schema by providing concrete examples for node_id (HB_BUSAVG, HB_NORTH) and explaining the spread definition, which helps interpret the filter's purpose.
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 provides a live ERCOT day-ahead RT−DA price spread forecast with p10/p50/p90 percentiles, and defines spread = RT − DA. It explicitly distinguishes itself from get_forecast_track_record by noting that tool is for scored historical performance.
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 description explicitly directs when to use an alternative: 'For scored historical performance use get_forecast_track_record.' It also clarifies the optional node_id filter with examples, indicating the intended use case for querying specific hubs or nodes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_isosList covered ISOsA
List US ISOs/RTOs covered by Kardashev Labs and their live ingest status. Call this first to discover valid iso codes for other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| include_bas | No | Include smaller balancing authorities. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It adds useful behavioral context by noting the tool returns 'live ingest status' and is a prerequisite for other tools ('Call this first'), but it doesn't detail response format, edge cases, or the effect of the include_bas parameter. This is adequate but not rich.
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, both purposeful: the first states the core function and output, the second gives critical usage ordering. No filler or redundancy.
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, one-parameter list tool, the description covers what it lists (ISOs/RTOs and ingest status) and when to call it. Since there is no output schema, it doesn't need to enumerate return fields. It could mention more about include_bas behavior, but the schema already handles that, so the description is complete enough.
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?
The input schema already provides a complete description of the lone parameter 'include_bas' ('Include smaller balancing authorities. Default false.'), so schema coverage is 100%. The tool description adds no additional parameter information, meriting the baseline score of 3.
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 uses the specific verb 'List' and identifies the resource as 'US ISOs/RTOs covered by Kardashev Labs' with additional detail 'live ingest status'. This clearly distinguishes it from sibling data-retrieval tools like get_load or get_lmp, making the purpose unambiguous.
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?
It explicitly instructs 'Call this first to discover valid iso codes for other tools,' providing clear contextual guidance on when to use this tool. It doesn't name alternative tools or state exclusions, so it stops short of full alternative differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct data type or service. Potential overlaps like get_lmp vs get_spread_forecast or get_queue vs get_large_load are clearly differentiated by descriptions, leaving little ambiguity.
The vast majority follow a get_<noun> pattern with clear, descriptive nouns. One exception is list_isos, which uses 'list' instead of 'get', but this is a minor deviation and the set remains highly consistent.
With 11 tools, the server covers a broad energy-domain surface without excessive fragmentation. Each tool appears necessary for a distinct type of grid data, fitting well within the typical well-scoped range.
The tool set provides a comprehensive view of ISO load, generation, pricing, emissions, curtailment, and interconnection queues, plus specialized forecasts and track records. Minor gaps like a dedicated wind/solar forecast or historical load export exist, but core workflows are fully supported.
Maintenance
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
US ISO Grid MCP — real-time electricity generation, fuel mix, demand,
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for the Australian Energy Market Operator (AEMO) National Electricity Market. Plain-English access to 5-min dispatch prices, regional demand, interconnector flows, generation by fuel, rooftop PV.5MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for real-time electricity prices, carbon intensity, and energy analytics across 41+ zones in Europe, Great Britain, the United States, and Australia. Query live prices, compare zones, check gas storage levels, get green scores, find optimal charging windows, and access advanced analytics. Free Basic tier requires no API key. Install via npx gridpulse-mcp or connect directly via Streamab
- AlicenseAqualityAmaintenanceDescription: Data-center, power & gas intelligence MCP server. 33 tools covering 21,000+ data-center facilities (170+ countries), 232 US power markets scored by the DC Hub Power Index (DCPI), 2,000+ tracked M\&A deals, ISO grid telemetry (PJM, ERCOT, CAISO, MISO, SPP, NYISO), fiber routes, energy pricing. License: Free to cite (CC-BY-4.0). Existing distribution: In the official MCP registry; indexe6832MIT
- FlicenseNot gradedqualityBmaintenanceA read-only MCP server that exposes European day-ahead electricity prices for ~41 bidding zones via tools like hourly prices, cheapest hours, current price, and cross-zone summary, enabling AI agents to query energy market data.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kardashev-lab/kardashev-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server