octopus-mcp
Click 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., "@octopus-mcpcompare my current tariff with Octopus Go"
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.
octopus-mcp
Unofficial. Not affiliated with Octopus Energy. Uses the public REST API and the community-known Kraken GraphQL endpoint; the latter is unofficial and may break without notice.
A Model Context Protocol server that lets Claude analyse your Octopus Energy account: usage, costs, tariff comparisons, Saving Sessions, Octoplus rewards.
Works with Claude Code, Claude Desktop, and any MCP-compatible client.
Prerequisites
Python 3.11 or newer
An Octopus Energy account in the UK
A smart meter sending half-hourly readings (so consumption data is available via the API)
Related MCP server: Enphase Solar MCP Server
Install
The server is published on PyPI as octopus-mcp. You can install it with uv (recommended) or plain pip.
With uv (recommended)
If you don't have uv yet:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Then install the MCP server and save credentials:
uv tool install octopus-mcp
octopus-mcp configure # interactive; writes to your OS keychainWith pip
pip install octopus-mcp
octopus-mcp configureWire it into your MCP client
Claude Code
In Claude Code, register this repo as a plugin marketplace and install the octopus plugin from it:
/plugin marketplace add DanielChicot/octopus-mcp
/plugin install octopus@octopus-mcpThe plugin auto-registers the MCP server (no manual config-file edits needed) and adds four slash commands (/octopus:bill, /octopus:compare, /octopus:peaks, /octopus:saving-sessions) plus an analysis skill that Claude triggers automatically on energy-related questions.
Claude Desktop, Cursor, and other MCP clients
Add this entry to your client's MCP config:
{
"mcpServers": {
"octopus": {
"command": "uvx",
"args": ["octopus-mcp"]
}
}
}(If you installed with pip instead of uv, replace "command": "uvx", "args": ["octopus-mcp"] with "command": "octopus-mcp", "args": ["serve"].)
The config file lives at:
Platform | Path |
macOS |
|
Linux |
|
Windows |
|
Restart your MCP client after editing the config.
Credentials
You need:
OCTOPUS_API_KEY— find at octopus.energy → My account → Personal details → Developer settingsOCTOPUS_ACCOUNT_NUMBER—A-XXXXXXXX, on any bill or in your account
Optional (only some Kraken queries):
OCTOPUS_EMAIL/OCTOPUS_PASSWORD
Resolution order: shell env > .env > OS keyring > error. The recommended path is octopus-mcp configure which writes to the OS keyring so secrets never sit in plaintext config.
Tools
Tool | What it does |
| Total kWh and £ per fuel for a period |
| Aggregated kWh by hour/day/week/month |
| Top-N highest-usage half-hours |
| Replay your usage against another Octopus tariff |
| What you're on now: unit rate, standing charge |
| Octoplus saving sessions joined and rewards earned |
| Thin getters / escape hatches |
Slash commands (Claude Code plugin)
/octopus:bill [period]— bill summary as a markdown table/octopus:compare <product-code> [period]— tariff comparison with caveats/octopus:peaks [period] [top_n]— highest-usage half-hours/octopus:saving-sessions— Octoplus history
How it works
A SQLite cache at
~/Library/Caches/octopus-mcp/(or your platform's equivalent) holds your historical consumption and tariff data, refreshed incrementally.All cost figures are in integer pence inc-VAT (no float drift), with a derived pounds string for display.
Tariff comparison is a pure tariff swap model — caveats list what it does and doesn't model. See the design doc.
Known limitations (v0.1)
Gas SMETS2 m³ vs kWh: if your gas meter reports in m³, values won't be normalised — expect implausibly small numbers and multiply by ~11.18 to convert. v0.2 will detect and apply calorific conversion automatically.
Region-aware tariff lookup:
compare_tariffcurrently picks the first region's tariff variant from a target product. v0.2 will use your postcode-derived region.TTLs are hardcoded: no
config.tomlsupport yet.No background sync: consumption is fetched lazily on demand.
Privacy
The MCP runs on your machine. No data leaves your computer except direct calls to api.octopus.energy. Credentials live in your OS keychain. Logs at ~/Library/Logs/octopus-mcp/server.log redact secrets.
Contributing
See CONTRIBUTING.md. Run pre-commit run --all-files before pushing.
License
MIT — see LICENSE.
Available Tools
11 toolsbill_summaryC
Total cost (£/pence) per fuel for a period
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states what the tool returns, not data freshness, idempotency, authentication requirements, or error handling. For a data retrieval tool, more transparency is needed.
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 sentence, which is brief but not overly concise given the lack of detail. It front-loads the core purpose but could benefit from additional context without being verbose.
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?
Despite having an output schema, the description is too sparse. It does not explain what 'per fuel' entails (e.g., electricity, gas), nor does it provide guidance on typical use cases or examples. The overall context is incomplete for a tool with a single complex parameter.
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 0%, so the description must compensate but fails to mention the period parameter at all. The parameter semantics are entirely dependent on the schema, which provides only structural definitions without usage hints.
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?
Description clearly states the tool returns total cost per fuel for a period. It implies a breakdown by fuel type, distinguishing it from siblings like get_consumption_raw or compare_tariff. However, it does not specify the output format, which is mitigated by the existence of an output 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?
No guidance is provided on when to use this tool versus alternatives such as get_consumption_raw or usage_breakdown. The description lacks any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_tariffC
Replay actual usage against another Octopus tariff
| Name | Required | Description | Default |
|---|---|---|---|
| target_product_code | Yes | ||
| period | Yes | ||
| fuel | No | both |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It fails to mention whether the tool is read-only, what side effects (if any) occur, or what the output contains. The term 'replay' is vague and doesn't clarify if results are returned or stored.
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 sentence, technically concise, but lacks structure. It does not front-load the most critical information (e.g., required parameters) and omits necessary details.
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?
Despite having an output schema (indicated but not shown), the description does not leverage it to explain return values. Combined with vague purpose and missing parameter explanations, the tool definition is incomplete for an agent to confidently use.
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 0%, so the description should explain parameter purposes. It does not mention target_product_code, period, or fuel. These parameters are critical for tool usage, and the description adds no value 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?
The description states 'Replay actual usage against another Octopus tariff', which clearly indicates the tool's function of comparing usage against a different tariff. While the verb 'replay' is somewhat ambiguous, it effectively distinguishes the tool from siblings like current_tariff or list_products.
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 no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The agent receives no context about optimal usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
current_tariffB
Currently active tariff per fuel
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It does not indicate whether the tool is read-only, requires authentication, or has any side effects. The agent cannot infer safety or cost implications from this description alone.
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 extremely concise at four words, but this brevity sacrifices informative detail. While it is front-loaded, it does not fully earn its place as it omits important context. A few more words to clarify the output or usage would improve it without sacrificing 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 the tool has no parameters and an output schema exists, the description is partially complete. However, it lacks usage guidelines and behavioral transparency. The agent could infer basic functionality from the name and siblings, but additional context would significantly improve completeness.
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, and schema coverage is 100%. Per guidelines, the baseline for 0 parameters is 4. The description adds no parameter-specific meaning, which is acceptable since there are no inputs to describe.
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 'Currently active tariff per fuel' clearly indicates that the tool retrieves the currently active tariff and implies it is per fuel type. It distinguishes itself from siblings like 'compare_tariff' (comparison) and 'list_products' (listing products). However, it could be more explicit about the verb (e.g., 'get') and exactly what 'per fuel' entails.
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 no guidance on when to use this tool versus alternatives such as 'compare_tariff' or 'get_product'. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountA
Account details + meters + tariff history
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies read-only data retrieval with no parameters, which is benign, but fails to mention any permissions, rate limits, or data freshness.
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?
Very concise at five words, clearly stating the scope. While well-structured, it could benefit from slight expansion for completeness.
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?
Output schema exists, so return format is covered. However, given the variety of sibling tools, the description could clarify what constitutes 'account details' to avoid ambiguity.
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?
No parameters exist, and schema coverage is 100%. Description adds no parameter details, but baseline is 4 for zero-param tools as no additional value is necessary.
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?
Description uses a specific verb 'get' and clearly states the resource 'account' with scope: details, meters, and tariff history. This differentiates it from siblings like 'current_tariff' and 'bill_summary' which focus on specific subsets.
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 on when to use this tool versus alternatives like 'current_tariff' or 'usage_breakdown'. With many sibling tools, the agent lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_consumption_rawC
Half-hourly consumption rows for a meter
| Name | Required | Description | Default |
|---|---|---|---|
| fuel | Yes | ||
| mpan_or_mprn | Yes | ||
| serial_number | Yes | ||
| period_from | Yes | ||
| period_to | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description alone must disclose behavioral traits. It only states the output type (half-hourly rows) but fails to mention side effects, idempotency, rate limits, or required permissions. This is insufficient for a data retrieval tool.
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 sentence, making it concise and front-loaded. However, it omits critical details that the agent needs, so brevity comes at the cost of completeness.
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?
Although an output schema exists, the description lacks essential context such as the purpose of parameters, typical use cases, and any constraints on the query. The tool's complexity calls for more contextual information.
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 has 5 required parameters with 0% description coverage, and the tool description provides no explanation of what each parameter represents or its constraints. The agent must infer meaning from parameter names alone, which is inadequate.
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?
Description clearly states the tool retrieves half-hourly consumption rows for a meter, specifying the verb (get) and resource (consumption raw). However, it does not differentiate from sibling tools like usage_breakdown, which may also deal with consumption data.
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. There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productB
Detail for one product code
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as error handling, authorization requirements, or side effects. The agent is left unaware of potential limitations.
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 superfluous words. It efficiently conveys the core purpose.
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 simplicity of the tool (1 parameter, standard lookup), the description is adequate but not complete. Missing elements like output schema description or error conditions reduce completeness.
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?
With 0% schema description coverage, the description adds little meaning beyond the schema. 'code' is not explained (e.g., format, source), leaving ambiguity about valid inputs.
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 retrieves detail for a specific product code using the verb+resource pattern. It implicitly distinguishes from sibling 'list_products' which lists all, but does not explicitly differentiate.
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 explicit guidance on when to use this tool versus alternatives. The context implies it is for fetching details of a single product, but there is no statement about when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kraken_queryC
Escape hatch: run an arbitrary Kraken GraphQL query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| variables | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It only states it runs arbitrary queries, but lacks details on side effects, required permissions, or rate limits, which is critical for a powerful escape hatch.
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 sentence, which is concise, but it omits important details. It earns its place but is not optimally structured with front-loaded critical info.
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 is complex (arbitrary query) with no annotations, no parameter descriptions, and a generic sibling list. The description is far from complete; it lacks any context for safe or effective use.
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 0%, and the description adds no meaning to the 'query' or 'variables' parameters. Without any parameter explanation, agents cannot construct correct inputs.
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 it's an 'escape hatch' to run arbitrary Kraken GraphQL queries, which distinguishes it from the specific sibling tools. However, the term 'escape hatch' slightly obscures the purpose.
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 on when to use this tool versus the specific sibling tools, nor any warning about potential risks or prerequisites. The implication that it's for arbitrary queries is present but insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsB
Browse Octopus product catalogue
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the minimal description does not disclose behavioral traits such as read-only nature, pagination, or authorization requirements. The burden falls entirely on the description which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 5 words, front-loaded, and every word is meaningful. No 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 simplicity (no parameters) and presence of an output schema, the description is minimally adequate. However, it omits mention of return format or typical behavior, making it less complete than desired.
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?
With no parameters and 100% schema coverage, the description adds meaning beyond the empty schema by stating the tool's purpose. No parameter details are needed.
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 'Browse' and resource 'Octopus product catalogue', clearly indicating it's for listing products. It distinguishes from sibling 'get_product' by omission of individual product retrieval, but does not explicitly differentiate.
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 vs alternatives like get_product. There is no mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peak_hoursC
Top-N highest-usage half-hours
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes | ||
| top_n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits but only states what the tool returns. It does not disclose whether the operation is read-only, if any destructive side effects exist, or any authentication/rate-limit requirements. The minimal description leaves significant behavioral uncertainty.
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 extremely concise at four words, but this brevity sacrifices clarity and structure. It could be improved by front-loading the action (e.g., 'Retrieves') and adding a single sentence about parameters. The current version is under-specified rather than efficiently concise.
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 that the tool has an output schema (not shown), the description does not need to detail return values. However, it lacks context about the scope of usage (e.g., half-hour intervals, energy domain), how the time period works, or any constraints. For a tool named 'peak_hours', more context would significantly aid correct 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?
The description adds no information about the parameters 'period' and 'top_n' beyond what the input schema provides. Although the schema includes some descriptions (e.g., for 'kind'), the description does not explain how to use these parameters effectively or what values are appropriate. With 0% coverage in the description itself, this is a notable gap.
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 'Top-N highest-usage half-hours' clearly states that the tool returns the top N half-hour periods with highest usage. It implies a retrieval operation and distinguishes itself from related tools like 'get_consumption_raw' (raw data) and 'usage_breakdown' (breakdown). However, it lacks an explicit verb like 'returns' or 'lists', which slightly reduces clarity.
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 no guidance on when to use this tool versus alternatives such as 'get_consumption_raw' or 'usage_breakdown'. There is no mention of prerequisites, context, or scenarios where this tool is preferred. This omission forces the agent to infer usage from the tool's name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saving_session_historyC
Octoplus saving sessions joined and points/kWh earned
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits (e.g., read-only, side effects, authentication needs). It implies data retrieval but lacks explicit statements.
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, but it is ambiguous. It could be clearer about the action performed.
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 no parameters and an output schema exists, the description should clarify what the tool returns. It hints at session data but is incomplete for a read 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?
No parameters exist (empty schema), so schema coverage is 100%. The description adds no parameter information, which is acceptable as there are none.
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 mentions 'saving sessions joined and points/kWh earned' but lacks a clear verb (e.g., get, list, retrieve). The purpose is vaguely implied as retrieving session data, but it is not explicit.
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 on when to use this tool instead of siblings like bill_summary or get_consumption_raw. No context about prerequisites or expected input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usage_breakdownC
Aggregated kWh by hour/day/week/month
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes | ||
| group_by | No | day |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It fails to disclose whether the tool is read-only, authentication needs, rate limits, or aggregation methodology. Merely stating 'aggregated kWh' 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (5 words) but at the expense of completeness. Front-loaded with the main idea, but overly terse for a tool with parameters and siblings.
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 existence of an output schema and related tools, the description should provide more context on output format and aggregation period implications. Current text is incomplete for an agent to reliably select and invoke the 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 description coverage is 0%, and description adds no parameter-specific details. Does not explain 'group_by' values (hour, day, week, month) or how the 'period' object is used.
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?
Description clearly states it returns aggregated kWh by time periods (hour/day/week/month), distinguishing it from raw data or bill summaries. However, it lacks an explicit verb like 'get' or 'retrieve'.
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 on when to use this tool vs. siblings like bill_summary or get_consumption_raw. No context about prerequisite conditions or typical use cases.
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 aspect: billing, tariffs, account details, consumption data, product catalog, and saving sessions. The only potential overlap is between get_consumption_raw and usage_breakdown, but they differ in granularity (raw vs aggregated). kraken_query is clearly a fallback.
Tools follow snake_case, but verb placement varies: some start with verbs (compare_tariff, get_account), others with nouns (bill_summary, peak_hours). Still, all names are descriptive and readable, with no mixing of conventions.
11 tools cover account management, tariffs, consumption, billing, and saving sessions without overwhelming. Each tool serves a clear purpose, and the count feels right for an energy provider MCP server.
Core operations (account info, tariff details, consumption data, billing) are covered. Missing features like tariff switching or payment actions may be addressed by the kraken_query escape hatch, but the primary user needs are met.
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
Ask Claude or ChatGPT about your own crypto trading: performance, patterns and behaviour.
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables natural language conversations with Spain's electrical grid data through Claude, providing real-time access to electricity demand, generation, prices, and emissions data from Red Eléctrica de España (REE).1811MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to the Enphase Developer API v4 for read-only access to solar production, consumption, battery, and EV charger data, with optional write tools for battery settings and EV charging.MIT
- AlicenseNot gradedqualityCmaintenanceRead-only Monzo banking integration for Claude Code that allows querying balances, transactions, pots, and spending analysis through natural conversation.4MIT
- AlicenseAqualityDmaintenanceEnables real-time solar data from Fronius inverters via Claude, allowing natural language queries about solar production, battery, and grid exchange.51Apache 2.0
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/DanielChicot/octopus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server