Skip to main content
Glama
arrow2nd

tako-mcp

by arrow2nd

tako-mcp

Octopus Energy Japan GraphQL API の MCP サーバー。

電力の使用量・コスト見積、契約情報、料金プランなどを MCP ツール経由で取得できます。Claude をはじめとする LLM でのエネルギー使用状況の分析に活用できます。

特徴

  • 30分単位の電力消費量・コスト見積の取得

  • アカウント・契約情報の取得(プロダクト・基本料金含む)

  • 郵便番号からのエリア情報検索

  • プライバシー重視: 住所等の個人情報はツールレスポンスから除外

Related MCP server: edinet-mcp

必要条件

  • Node.js 22+

  • Octopus Energy Japan のアカウント(メールアドレス・パスワード)

使い方

デフォルトは stdio トランスポートで動作します。

OCTOPUS_EMAIL=you@example.com OCTOPUS_PASSWORD=your-password OCTOPUS_ACCOUNT_NUMBER=A-AAAA1111 npx tako-mcp

HTTP モード

--http フラグで Streamable HTTP トランスポートに切り替えられます。

OCTOPUS_EMAIL=you@example.com OCTOPUS_PASSWORD=your-password OCTOPUS_ACCOUNT_NUMBER=A-AAAA1111 npx tako-mcp --http

PORT 未指定時は空きポートが自動選択されます。

環境変数

変数名

必須

説明

OCTOPUS_EMAIL

Yes

Octopus Energy Japan のログインメールアドレス

OCTOPUS_PASSWORD

Yes

Octopus Energy Japan のログインパスワード

OCTOPUS_ACCOUNT_NUMBER

Yes

アカウント番号(例: A-AAAA1111

PORT

No

HTTP モード時のポート番号(デフォルト: 自動選択)

MCP ツール一覧

ツール

説明

認証

get_account_info

アカウント・契約情報(プロダクト・基本料金含む、住所は除外)

必要

get_electricity_consumption

30分単位の電力消費量・コスト見積

必要

get_postal_areas

郵便番号からエリア情報を検索

不要

MCP リソース一覧

URI

説明

認証

octopus://consumption/today

当日(JST)の30分単位の電力消費量・コスト見積(合計サマリ付き)

必要

クライアント設定

Claude Desktop / Claude Code

{
  "mcpServers": {
    "tako-mcp": {
      "command": "npx",
      "args": ["-y", "tako-mcp"],
      "env": {
        "OCTOPUS_EMAIL": "you@example.com",
        "OCTOPUS_PASSWORD": "your-password",
        "OCTOPUS_ACCOUNT_NUMBER": "A-AAAA1111"
      }
    }
  }
}

HTTP モード

{
  "mcpServers": {
    "tako-mcp": {
      "type": "http",
      "url": "http://localhost:<port>/mcp"
    }
  }
}

開発

npm install
npm run dev        # tsx で起動
npm run build      # tsup でバンドル
npm run typecheck  # 型チェック
npm run check      # Lint & フォーマット (Biome)

ライセンス

MIT

Available Tools

3 tools
get_account_infoA

Get account information including contract status, electricity supply points, active agreements, product details and standing charges. Address is excluded for privacy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, description partially transparent: discloses address exclusion for privacy. However, does not mention other behaviors like data freshness, authentication needed, or error scenarios. Could be more thorough.

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?

Two concise sentences with front-loaded purpose. No wasted words; each sentence provides essential information.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, description covers key aspects of what is included and what is excluded. Could mention if it returns current account or multiple accounts, but overall sufficient.

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

Parameters4/5

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

No parameters, so schema coverage is 100%. Description adds meaning beyond schema by detailing what data is returned, giving the agent a clear picture of the output content.

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?

Description uses specific verb 'Get' and resource 'account information', lists included data fields (contract status, electricity supply points, etc.), and notes excluded data (address for privacy). Clearly distinct from siblings get_electricity_consumption and get_postal_areas.

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

Usage Guidelines3/5

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

Implied use when needing account details, but no explicit when-to-use or when-not-to-use compared to alternatives. Lacks guidance on prerequisites or context.

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

get_electricity_consumptionA

Get half-hourly electricity consumption data with cost estimates. Returns 30-minute interval readings for the specified period.

ParametersJSON Schema
NameRequiredDescriptionDefault
period_toYesEnd datetime in ISO 8601 format, e.g. 2024-02-01T00:00:00+09:00
period_fromYesStart datetime in ISO 8601 format, e.g. 2024-01-01T00:00:00+09:00

TDQS

A3.5/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 cost estimates and 30-minute intervals, but omits details like data freshness, rate limits, authentication needs, or response size. Disclosures are minimal and insufficient for an agent to understand side effects or 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 concise sentences, front-loaded with the core action and resource. Every word adds value with no 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 no output schema, the description should explain return structure. It states 'returns 30-minute interval readings' but lacks details on format, nested fields, or cost estimate representations. For a data retrieval tool, this is adequate but not complete.

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%, so the schema already documents both parameters (period_from, period_to) with ISO 8601 formats. The description adds context about half-hourly data and cost estimates, but does not provide additional meaning beyond what the schema offers.

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 tool retrieves half-hourly electricity consumption data with cost estimates, using specific verbs ('Get') and resource ('electricity consumption'). It distinguishes well from sibling tools which are about account info and postal areas.

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

Usage Guidelines3/5

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

The description explains what the tool does but does not provide explicit guidance on when to use it over alternatives. Since siblings are unrelated, the lack of exclusions is less critical, but still no context on prerequisites or best use cases.

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

get_postal_areasA

Look up area information by Japanese postcode. Returns prefecture, city, and area. No authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesJapanese postcode, e.g. 916-0045

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It correctly identifies this as a read-only operation by stating 'look up' and explicitly mentions 'No authentication required'. It also describes the return values. However, it doesn't disclose potential limitations like data freshness or rate limits, which is acceptable for a simple lookup.

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: two sentences that cover the purpose, return values, and authentication requirement. Every word is meaningful, and the structure is front-loaded with the key action and outcome.

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

Completeness5/5

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

For a simple one-parameter lookup tool without an output schema, the description provides all necessary context: what it does, what it returns, and that it requires no authentication. It is fully complete for an AI agent to correctly select and invoke the tool.

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

Parameters4/5

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

The input schema already provides 100% coverage for the 'postcode' parameter with an example. The description adds value by specifying the output (prefecture, city, area), which the schema does not provide. This helps the agent understand what the tool returns.

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 'look up', the resource 'area information by Japanese postcode', and specifies the returned fields (prefecture, city, area). It is easily distinguishable from sibling tools (get_account_info, get_electricity_consumption) which serve entirely different domains.

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 usage context is implicitly clear due to the tool's specific domain (postal areas) versus siblings (account info, electricity consumption). It mentions 'No authentication required', indicating public availability. No explicit when-not-to-use guidance is needed given the narrow scope.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.1.0
    • First observedget_account_info
    • First observedget_electricity_consumption
    • First observedget_postal_areas

TDQS

A3.8/5.0
Disambiguation5/5

All three tools have clearly distinct purposes: account info, electricity consumption, and postal area lookup. No overlap exists between them.

Naming Consistency5/5

All tools follow a consistent 'get_' prefix with a noun, forming a uniform verb_noun pattern.

Tool Count3/5

3 tools is quite low for a server that seems to cover energy management plus an unrelated postal lookup. The scope feels thin.

Completeness2/5

The server lacks obvious tools for billing, agreement management, or other energy-related operations. The inclusion of a Japanese postal area tool suggests an inconsistent or incomplete domain coverage.

Maintenance

ActivityStale
ResponsivenessSyncing

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

  • F
    license
    B
    quality
    D
    maintenance
    A server that allows you to explore the GitHub GraphQL schema and execute GraphQL queries through MCP client tools, enabling efficient data retrieval from GitHub with reduced token consumption.
    4
    4
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that interfaces with the Japanese EDINET API v2 to search, download, and extract text from financial disclosure documents. It enables users to browse disclosure lists, retrieve document originals, and perform natural language searches for specific financial filings.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An unofficial MCP server that integrates with the hokan Insurance CRM API v2 to manage customer data, schedules, and tasks. It also features specialized tools for Japanese insurance law compliance, including intent confirmation and regulatory check generation.
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for the German energy market master data register (MaStR), enabling querying of energy units, actors, grid connections, and more via 21 SOAP and public tools.
    7
    6
    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/arrow2nd/tako-mcp'

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