Tidegap
개요
제작자가 쓴 설명(영어 원문)
Runs non-urgent LLM tasks at the cleanest grid hour before a deadline, via Batch APIs when allowed.
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i1개 중 1개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i아주 새로움↓ 280/주 · ★ –
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 검색 및 AI 기억
- 입력해야 할 값: ANTHROPIC_API_KEY, OPENAI_API_KEY, TIDEGAP_EIA_API_KEY, TIDEGAP_ENTSOE_SECURITY_TOKEN, WATTTIME_PASSWORD, TIDEGAP_ELECTRICITY_MAPS_API_KEY
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 1개 중 1개 통과
- 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
- 직접 입력할 값:
TIDEGAP_DEFAULT_REGION,TIDEGAP_DB_PATH,ANTHROPIC_API_KEY,OPENAI_API_KEY,TIDEGAP_EIA_API_KEY,TIDEGAP_ENTSOE_SECURITY_TOKEN,WATTTIME_USERNAME,WATTTIME_PASSWORD,TIDEGAP_ELECTRICITY_MAPS_API_KEY
비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
- npmNode.js 설치(npx 명령어용)
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"tidegap": {
"command": "npx",
"args": [
"-y",
"@tidegap/mcp"
],
"env": {
"TIDEGAP_DEFAULT_REGION": "your-value",
"TIDEGAP_DB_PATH": "your-value",
"ANTHROPIC_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"TIDEGAP_EIA_API_KEY": "your-value",
"TIDEGAP_ENTSOE_SECURITY_TOKEN": "your-value",
"WATTTIME_USERNAME": "your-value",
"WATTTIME_PASSWORD": "your-value",
"TIDEGAP_ELECTRICITY_MAPS_API_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add tidegap --env TIDEGAP_DEFAULT_REGION=your-value --env TIDEGAP_DB_PATH=your-value --env ANTHROPIC_API_KEY=your-value --env OPENAI_API_KEY=your-value --env TIDEGAP_EIA_API_KEY=your-value --env TIDEGAP_ENTSOE_SECURITY_TOKEN=your-value --env WATTTIME_USERNAME=your-value --env WATTTIME_PASSWORD=your-value --env TIDEGAP_ELECTRICITY_MAPS_API_KEY=your-value -- npx -y @tidegap/mcp실행하기 전에 빈 값을 채워 주세요.
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"tidegap": {
"command": "npx",
"args": [
"-y",
"@tidegap/mcp"
],
"env": {
"TIDEGAP_DEFAULT_REGION": "your-value",
"TIDEGAP_DB_PATH": "your-value",
"ANTHROPIC_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"TIDEGAP_EIA_API_KEY": "your-value",
"TIDEGAP_ENTSOE_SECURITY_TOKEN": "your-value",
"WATTTIME_USERNAME": "your-value",
"WATTTIME_PASSWORD": "your-value",
"TIDEGAP_ELECTRICITY_MAPS_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"tidegap": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tidegap/mcp"
],
"env": {
"TIDEGAP_DEFAULT_REGION": "your-value",
"TIDEGAP_DB_PATH": "your-value",
"ANTHROPIC_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"TIDEGAP_EIA_API_KEY": "your-value",
"TIDEGAP_ENTSOE_SECURITY_TOKEN": "your-value",
"WATTTIME_USERNAME": "your-value",
"WATTTIME_PASSWORD": "your-value",
"TIDEGAP_ELECTRICITY_MAPS_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
직접 입력할 값
TIDEGAP_DEFAULT_REGIONenvDefault grid region, e.g. GB, US-CAL-CISO, DETIDEGAP_DB_PATHenvSQLite queue path (default ~/.tidegap/queue.db)- Dispatch tasks to Anthropic (sync or Batch API)
- Dispatch tasks to OpenAI (sync or Batch API)
- US EIA grid data (CAISO, ERCOT, ISO-NE, PJM), free key
- ENTSO-E grid data (EU regions), free token
WATTTIME_USERNAMEenvWattTime account (US marginal emissions)- WattTime account password
- Electricity Maps fallback feed
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 tidegap 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- … 아직 점검 안 함
계속 관리되고 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
검색 및 AI 기억 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5754개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 5754개 중 86%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5754개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Tidegap, 안전한가요?
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
입력해야 할 값: ANTHROPIC_API_KEY, OPENAI_API_KEY, TIDEGAP_EIA_API_KEY, TIDEGAP_ENTSOE_SECURITY_TOKEN, WATTTIME_PASSWORD, TIDEGAP_ELECTRICITY_MAPS_API_KEY
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.20.0)은 6일 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Context7, Codebase Memory, Exa
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
@tidegap/mcp
Renamed from
@ebb-ai/mcpin 0.18.0. Use the host config keytidegapandnpx -y @tidegap/mcp; theebb-mcpbin and theEBB_*variables were removed in 0.19. See Renamed from Ebb AI.
MCP server that lets your agent run non-urgent LLM tasks at the cleanest grid hour before a deadline.
Add it to any MCP host. When a user says "do this tonight" or "by tomorrow", the agent calls schedule_task. Tidegap then runs the task at the lowest-carbon grid hour before the deadline, and through the provider Batch API when the deadline allows.
- 12 MCP tools (measured), among them
recommend_window,schedule_task,check_queue_status,get_grid_forecast,cancel_task,postpone_task,update_deadline. - Live 72-hour forecast. GB needs no key; other regions use free keys (EIA, ENTSO-E, WattTime, Electricity Maps).
- One signed carbon receipt per task, stored in
~/.tidegap/queue.db.
npx -y @tidegap/mcp
{ "mcpServers": {
"tidegap": { "command": "npx", "args": ["-y", "@tidegap/mcp"] } } }
Proof: one real GB run, 2026-09-30. Forecast peak 183 gCO2/kWh vs recommended window 88 gCO2/kWh, about 52 % lower for this run only (forecast, projected). Receipt at dispatch: 158 gCO2/kWh (measured). Host-specific configs: https://www.tidegap.com/docs#install
Run
npx -y @tidegap/mcp
The server speaks MCP over stdio. To wire it into an agent client:
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (Linux/Windows have similar paths):
{
"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" } } } }
Restart Claude Desktop after editing.
Claude Code
Add tidegap to your ~/.claude/mcp.json (or workspace .claude/mcp.json):
{
"mcpServers": { "tidegap": { "command": "npx", "args": ["-y", "@tidegap/mcp"] } } }
OpenClaw
Add to ~/.openclaw/mcp.json:
{
"mcpServers": { "tidegap": { "command": "npx", "args": ["-y", "@tidegap/mcp"] } } }
Tools exposed (12, measured)
| Tool | Purpose | ||
|---|---|---|---|
schedule_task(... repeat?, every_hours?, days?, window?, time_zone?) with repeat daily, weekdays, weekly or every_n_hours | Create a recurring job: each run is a new task at the cleanest hour of its period. End it with cancel_task(series: true). | ||
get_grid_forecast(region, hours?) | Hour-by-hour carbon intensity for a region; useful before deciding whether to defer. | ||
recommend_window(deadline, region?, ...) | Plan the cleanest window inside the deadline without queueing anything. | ||
schedule_task(prompt, deadline, model?, region?, carbon_budget_g?, repeat?, origin_session_id?, not_before?) | Queue a task to run in the cleanest window inside the deadline. Returns a task_id and one line that says whether it will run: Runs at local., or the readiness sentence with its fix, for example Tasks will not run: no tick daemon. Run `tidegap install`.. not_before sets the earliest start. repeat defaults to none, also for deadline_kind: "quota_reset". | ||
schedule_task(... runner?, cwd?, permission_profile?, result_path?, wake_session?) | Hand off the work shape: runner is another name for provider; cwd is the folder a claude-code run works in (another folder than the session's runs fresh there); permission_profile is read, web or none (read with a cwd); result_path is a new file Tidegap writes the result text to, inside cwd, the session's project folder or the temp folder. wake_session: true wakes the idle Claude Code session that queued the task when it finishes (within 12 hours after its last turn; refused outside a session). runner or provider command is refused with the tidegap queue add --runner command line. output_path follows the same folder rules. | ||
check_queue_status(task_id?) | Inspect the queue or one specific task; includes a carbon receipt once the task has completed. | ||
cancel_task(task_id, series?) | Cancel a queued or scheduled task; on a repeating task, skip it, or end the series with series: true. | ||
reply_task(task_id, text, deadline?) | Continue a completed task: a new task with the conversation plus this text, same provider and model. | ||
expedite_task(task_id) | Dispatch a queued or scheduled task now, outside its carbon window. | ||
| `postpone_task(task_id, preset? \ | until? \ | delay_minutes?, reset_at?)` | "Later": move a pending task later, never earlier. Presets 1h, tonight (22:00 to 06:00), tomorrow_morning (09:00 to 12:00), after_limit_reset (5 minutes after the Claude limit reset: reset_at, else this machine's limit reading, else a reset time given before). |
update_deadline(task_id, deadline) | Reschedule a task against a new deadline. | ||
retry_task(task_id) | Re-dispatch a failed task. | ||
cancel_all(status?) | Cancel every task that is still queued or scheduled. | ||
tidegap_usage(include_spend?) | Read-only: the Claude Code subscription limits of this machine and when they reset, and the Codex limits from its local logs. include_spend adds the current 5-hour window's tokens and an API list-price cost estimate. |
Environment variables
These variables configure this MCP server (and the tidegap CLI, which reads the same set). They are read at the server's own entry point and injected into @tidegap/core, which is environment-pure and reads nothing ambient itself.
OpenClaw plugin users: the
@vitalini/tidegapOpenClaw plugin reads no
environment variables. Configure it through plugin config instead, under
plugins.entries.tidegap.configin your gateway config — the "Plugin config"
column below names the field that replaces each variable. OpenClaw resolves
the
"${ENV_VAR}"shorthand in those fields, so you can keep exporting the
same variables and let the gateway read them on the plugin's behalf.
| Var | Plugin config | Purpose |
|---|---|---|
TIDEGAP_ELECTRICITY_MAPS_API_KEY | electricityMapsApiKey | API key from electricitymaps.com. Universal fallback. If unset (and no zone-specific feed is configured), the server falls back to deterministic mock data so you can still run the whole stack locally. |
TIDEGAP_EIA_API_KEY | eiaApiKey | Free US EIA key. Enables average-emissions intensity for the US ISO zones (CAISO / ERCOT / ISO-NE / NYISO / PJM / MISO). |
TIDEGAP_ENTSOE_SECURITY_TOKEN | entsoeSecurityToken | Free ENTSO-E token. Enables EU zone intensity (FR / DE / ES / IT / NL). |
WATTTIME_USERNAME + WATTTIME_PASSWORD | wattTimeUsername + wattTimePassword | Free WattTime v3 account. Enables marginal-emissions (co2_moer) forecasts for the US ISO zones — takes precedence over EIA where covered, falls through to EIA on any error. The marginal signal is disclosed as signalType: "marginal" on forecasts and receipts. |
TIDEGAP_DEFAULT_REGION | defaultRegion | Region when a tool call names none. Beats the stored region setting; see Grid region. |
ANTHROPIC_API_KEY | anthropicApiKey | Enables the anthropic provider (batch-capable). |
OPENAI_API_KEY | openaiApiKey | Enables the openai provider (batch-capable). |
GEMINI_API_KEY / GOOGLE_API_KEY | geminiApiKey / googleApiKey | Enables the gemini provider (Generative Language API, sync-only). GEMINI_API_KEY is preferred; GOOGLE_API_KEY is the fallback. |
OLLAMA_HOST | ollamaHost | Enables the local ollama provider (sync-only). Default http://localhost:11434; keyless — set this var to opt the provider in. |
Grid region
The server resolves the region of each tool call in this order:
- the tool call's
regionargument, TIDEGAP_DEFAULT_REGIONin the server's environment (the agent host's MCP config),- the region setting stored on this machine:
tidegap region set, or Settings → Grid region intidegap uiand the Mac app (keyTIDEGAP_DEFAULT_REGIONin~/.tidegap/config), - a guess from the machine's time zone,
GB.
The server reads the setting again when the file changes, so a new setting applies on the next tool call with no restart. A stored value that is not a supported zone is ignored, with one stderr warning per change. schedule_task replies carry region_source: flag | env | setting | timezone | fallback.
A region argument must be one of the 31 supported zones (any case). Another value is rejected with the closest zones and a link to request a region, for example Unknown zone UA. Closest: PL. Request a region: . With TIDEGAP_ELECTRICITY_MAPS_API_KEY set, any zone passes, because Electricity Maps serves zones beyond the list; with TIDEGAP_ENTSOE_SECURITY_TOKEN set, IT passes too.
Develop
From the root of a clone of https://github.com/tidegap/tidegap:
pnpm install
pnpm --filter @tidegap/mcp build node packages/mcp-server/dist/server.js