ebb-ai — carbon-aware MCP scheduler について
@tidegap/mcp は、緊急性の低い LLM タスクを期限内の電力炭素強度が低い時間帯に実行する MCP サーバーです。時間に余裕があればプロバイダーの Batch API を使い、タスクを後回しにできるエージェントワークフローに適しています。
主な機能
- 01期限内の低炭素時間帯を予約
- 02電力炭素強度の予測を確認
- 03キューと期限を管理
- 04タスクのキャンセル・延期・再試行
- 05タスクごとの炭素レシートを作成
活用シーン
- 01夜間指定の LLM タスクを延期実行
- 02期限前の低炭素な実行時間を探す
- 03キューの状態と炭素レシートを確認
MCP 対応
stdio 経由で、電力予測、実行時間の推奨、タスク予約など 12 種類のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @ebb-ai/mcpEBB_DEFAULT_REGIONDefault grid region, e.g. GB, US-CAL-CISO, DEEBB_DB_PATHSQLite queue path (default ~/.ebb-ai/queue.db)ANTHROPIC_API_KEYシークレットDispatch tasks to Anthropic (sync or Batch API)OPENAI_API_KEYシークレットDispatch tasks to OpenAI (sync or Batch API)EBB_EIA_API_KEYシークレットUS EIA grid data (CAISO, ERCOT, ISO-NE, PJM), free keyEBB_ENTSOE_SECURITY_TOKENシークレットENTSO-E grid data (EU regions), free tokenWATTTIME_USERNAMEWattTime account (US marginal emissions)WATTTIME_PASSWORDシークレットWattTime account passwordEBB_ELECTRICITY_MAPS_API_KEYシークレットElectricity Maps fallback feedローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| hours | integer | いいえ | 予測期間(時間単位、1-72)。デフォルトは 24 です。 |
| region | string | はい | Electricity Maps の電力網ゾーンコード(例:'US-CAL-CISO'、'US-TEX-ERCO'、'GB'、'FR'、'DE')。省略可能なホストでは、設定済みの地域を使用し、未設定の場合はホストのタイムゾーンから推定し、それもできない場合は GB を使用します。 |
詳細
@tidegap/mcp
0.18.0 で
@ebb-ai/mcpから名称変更されました。ホスト設定キーにはtidegap、npx -y @tidegap/mcpを使用してください。ebb-mcpバイナリとEBB_*変数は 0.19 で削除されました。Ebb AI からの名称変更をご覧ください。
エージェントが、期限前の最もクリーンな電力網の時間帯に、緊急性の低い LLM タスクを実行できる MCP サーバーです。
任意の MCP ホストに追加できます。ユーザーが「今夜やって」や「明日までに」と言うと、エージェントが schedule_task を呼び出します。すると Tidegap は、期限前で電力網の炭素強度が最も低い時間帯にタスクを実行します。また、期限に余裕があればプロバイダーの Batch API を利用します。
recommend_window、schedule_task、check_queue_status、get_grid_forecast、cancel_task、postpone_task、update_deadlineなど、12 個の MCP ツール(実測値)。- 72 時間のライブ予測。GB ではキー不要です。他の地域では無料のキー(EIA、ENTSO-E、WattTime、Electricity Maps)を使用します。
- タスクごとに署名付き炭素排出量レシートを 1 件作成し、
~/.tidegap/queue.dbに保存します。
npx -y @tidegap/mcp
{ "mcpServers": {
"tidegap": { "command": "npx", "args": ["-y", "@tidegap/mcp"] }
} }
実証結果:2026-09-30 に GB で実行した実例 1 件。予測ピークは 183 gCO2/kWh、推奨時間帯は 88 gCO2/kWh で、この実行に限り約 52 % 低減しました(予測値、推定)。ディスパッチ時のレシート:158 gCO2/kWh(実測値)。ホスト別の設定:https://www.tidegap.com/docs#install
実行
npx -y @tidegap/mcp
このサーバーは stdio 経由で MCP を使用します。エージェントクライアントに接続するには、次のように設定します。
Claude Desktop
macOS では ~/Library/Application Support/Claude/claude_desktop_config.json を編集します(Linux/Windows では同様のパスを使用します)。
{
"mcpServers": {
"tidegap": {
"command": "npx",
"args": ["-y", "@tidegap/mcp"],
"env": {
"TIDEGAP_ELECTRICITY_MAPS_API_KEY": "optional - mock data without it",
"TIDEGAP_DEFAULT_REGION": "US-CAL-CISO"
}
}
}
}
編集後、Claude Desktop を再起動してください。
Claude Code
~/.claude/mcp.json(またはワークスペースの .claude/mcp.json)に tidegap を追加します。
{
"mcpServers": {
"tidegap": {
"command": "npx",
"args": ["-y", "@tidegap/mcp"]
}
}
}
OpenClaw
~/.openclaw/mcp.json に追加します。
{
"mcpServers": {
"tidegap": {
"command": "npx",
"args": ["-y", "@tidegap/mcp"]
}
}
}
公開されるツール(12 個、実測値)
| ツール | 用途 |
|---|---|
get_grid_forecast(region, hours?) | 地域の炭素強度を時間ごとに表示します。実行を延期するかどうかの判断に役立ちます。 |
recommend_window(deadline, region?, ...) | キューに追加せずに、期限内で最もクリーンな時間帯を計画します。 |
schedule_task(prompt, deadline, model?, region?, carbon_budget_g?, repeat?, origin_session_id?, not_before?) | 期限内で最もクリーンな時間帯に実行するタスクをキューに追加します。task_id と、実行予定を示す 1 行のメッセージ(例:Runs at <time> local.)、または修正方法を含む準備状況のメッセージ(例:Tasks will not run: no tick daemon. Run `tidegap install`.)を返します。not_before は最も早い開始時刻を設定します。repeat のデフォルトは none で、deadline_kind: "quota_reset" の場合も同様です。 |
check_queue_status(task_id?) | キューまたは特定のタスクを確認します。タスク完了後は炭素排出量レシートも含まれます。 |
cancel_task(task_id, series?) | キュー内またはスケジュール済みのタスクをキャンセルします。繰り返しタスクの場合はその回をスキップするか、series: true でシリーズを終了します。 |
reply_task(task_id, text, deadline?) | 完了したタスクを続行します。会話内容とこのテキストを含む新しいタスクを、同じプロバイダーとモデルで作成します。 |
expedite_task(task_id) | キュー内またはスケジュール済みのタスクを、炭素排出量の低い時間帯を待たずに今すぐディスパッチします。 |
postpone_task(task_id, preset? | until? | delay_minutes?, reset_at?) | 「後で」:保留中のタスクを、早めることなく後ろに移動します。プリセットは 1h、tonight(22:00~06:00)、tomorrow_morning(09:00~12:00)、after_limit_reset(Claude の利用上限リセットから 5 分後。reset_at、それがなければこのマシンの利用上限値、それもなければ事前に指定されたリセット時刻を使います)。 |
update_deadline(task_id, deadline) | 新しい期限に合わせてタスクを再スケジュールします。 |
retry_task(task_id) | 失敗したタスクを再ディスパッチします。 |
cancel_all(status?) | キュー内またはスケジュール済みであるすべてのタスクをキャンセルします。 |
tidegap_usage(include_spend?) | 読み取り専用:このマシンの Claude Code サブスクリプションの利用上限とリセット時刻、およびローカルログに記録された Codex の利用上限を読み取ります。include_spend を指定すると、現在の 5 時間ウィンドウのトークン数と API の定価に基づく費用の推定値も含まれます。 |
環境変数
これらの変数はこの MCP サーバー(同じ変数セットを読み込む tidegap CLI も含みます)を設定します。サーバー自身のエントリーポイントで読み込まれ、環境に依存しない @tidegap/core に渡されます。@tidegap/core 自体は環境から値を読み込みません。
OpenClaw プラグインのユーザー向け:
@vitalini/tidegapOpenClaw プラグインは、環境変数を一切 読み込みません。代わりに、ゲートウェイ設定のplugins.entries.tidegap.configにあるプラグイン設定で構成してください。以下の「プラグイン設定」列には、各変数に対応するフィールドが記載されています。OpenClaw はそれらのフィールド内の"${ENV_VAR}"形式を解決するため、同じ変数をエクスポートしたまま、ゲートウェイに代わりに読み込ませることができます。
| 変数 | プラグイン設定 | 目的 |
|---|---|---|
TIDEGAP_ELECTRICITY_MAPS_API_KEY | electricityMapsApiKey | electricitymaps.com の API キーです。すべての地域に適用されるフォールバックです。未設定で、地域固有のフィードも構成されていない場合、サーバーは決定論的なモックデータにフォールバックするため、スタック全体をローカルで実行できます。 |
TIDEGAP_EIA_API_KEY | eiaApiKey | 無料の US EIA キーです。米国の ISO ゾーン(CAISO / ERCOT / ISO-NE / NYISO / PJM / MISO)の平均排出原単位を有効にします。 |
TIDEGAP_ENTSOE_SECURITY_TOKEN | entsoeSecurityToken | 無料の ENTSO-E トークンです。EU ゾーン(FR / DE / ES / IT / NL)の原単位を有効にします。 |
WATTTIME_USERNAME + WATTTIME_PASSWORD | wattTimeUsername + wattTimePassword | 無料の WattTime v3 アカウントです。米国の ISO ゾーンの限界排出量(co2_moer)予測を有効にします。対象地域では EIA より優先され、エラーが発生した場合は EIA にフォールバックします。限界排出量のシグナルは、予測とレシートで signalType: "marginal" として示されます。 |
TIDEGAP_DEFAULT_REGION | defaultRegion | ツール呼び出しで地域が指定されていない場合に使う地域です。保存済みの地域設定より優先されます。グリッド地域を参照してください。 |
ANTHROPIC_API_KEY | anthropicApiKey | anthropic プロバイダーを有効にします(バッチ処理に対応)。 |
OPENAI_API_KEY | openaiApiKey | openai プロバイダーを有効にします(バッチ処理に対応)。 |
GEMINI_API_KEY / GOOGLE_API_KEY | geminiApiKey / googleApiKey | gemini プロバイダーを有効にします(Generative Language API、同期のみ)。GEMINI_API_KEY が優先され、フォールバックとして GOOGLE_API_KEY が使われます。 |
OLLAMA_HOST | ollamaHost | ローカルの ollama プロバイダーを有効にします(同期のみ)。デフォルトは http://localhost:11434 です。キーは不要です。この変数を設定するとプロバイダーが有効になります。 |
グリッド地域
サーバーは、次の順序で各ツール呼び出しの地域を解決します。
- ツール呼び出しの
region引数、 - サーバーの環境変数(エージェントホストの MCP 設定)にある
TIDEGAP_DEFAULT_REGION、 - このマシンに保存された地域設定:
tidegap region set <zone>、またはtidegap uiと Mac アプリの「Settings → Grid region」(~/.tidegap/config内のキーTIDEGAP_DEFAULT_REGION)、 - マシンのタイムゾーンから推測した地域、
GB。
サーバーはファイルの変更時に設定を再読み込みするため、新しい設定は再起動なしで次のツール呼び出しから適用されます。保存された値が対応ゾーンでない場合は無視され、変更ごとに stderr へ警告が 1 回出力されます。schedule_task の応答には region_source: flag | env | setting | timezone | fallback が含まれます。
region 引数には、31 の対応ゾーンのいずれか(大文字・小文字は問いません)を指定する必要があります。それ以外の値は、最も近いゾーンと地域リクエスト用リンクを添えて拒否されます。例:Unknown zone UA. Closest: PL. Request a region: <link>。TIDEGAP_ELECTRICITY_MAPS_API_KEY が設定されている場合、Electricity Maps はリスト外のゾーンも提供しているため、どのゾーンも指定できます。TIDEGAP_ENTSOE_SECURITY_TOKEN が設定されている場合は、IT も指定できます。
開発
https://github.com/tidegap/tidegap のクローンのルートから実行します。
pnpm install
pnpm --filter @tidegap/mcp build
node packages/mcp-server/dist/server.js
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。