ecobee-mcp
Click on "Deploy 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., "@ecobee-mcpwhat's my thermostat reading right now?"
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.
ecobee-mcp
A remote Model Context Protocol server for one Ecobee account, hosted on Cloudflare Workers. It reads thermostat status and controls modes, holds, schedules, settings, vacations, fan time, and screen messages.
One Worker serves a bearer-protected, stateless /mcp endpoint. A Durable Object owns and refreshes the account's access tokens.
Setup
npm install
npx wrangler login
cp wrangler.jsonc wrangler.local.jsoncIn wrangler.local.jsonc, replace ecobee.example.com with a hostname on a Cloudflare zone you manage. Deploy using that local config:
WRANGLER_CONFIG=wrangler.local.jsonc npm run deploy
npx wrangler secret put ECOBEE_USERNAME --config wrangler.local.jsonc
npx wrangler secret put ECOBEE_PASSWORD --config wrangler.local.jsonc
openssl rand -hex 32 | tee /dev/stderr | npx wrangler secret put MCP_BEARER --config wrangler.local.jsoncThe custom-domain route creates its DNS record on first deploy.
Related MCP server: Tesla MCP Server
Tools
Tool | Description |
| Summarize all registered thermostats |
| Get selected raw details for one thermostat |
| Change HVAC mode |
| Set heat and cool hold temperatures |
| Cancel holds and resume the programmed schedule |
| Set minimum fan minutes per hour |
| Pass through raw thermostat settings |
| Pass through comfort profiles or a weekly schedule |
| Choose which sensors a comfort setting (Home/Away/Sleep…) averages, by sensor name |
| Create a vacation event |
| Delete a vacation event |
| Show a message on the thermostat screen |
Write tools change the real thermostat. Confirm changes with the user first.
Raw HTTP
The endpoint uses stateless Streamable HTTP and returns SSE-framed MCP responses.
curl -s https://ecobee.example.com/mcp -X POST \
-H 'Authorization: Bearer <MCP_BEARER>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'GET / identifies the MCP endpoint. GET /health is public and reports whether the Durable Object has tokens without making a network request.
Local development
cp .dev.vars.example .dev.vars
npm run check
npx wrangler devNotes
Authentication uses the Ecobee web app's public Auth0 client and password grant. This is unofficial and may break if Ecobee changes that flow.
No browser authorization is needed.
Sensor participation is per comfort setting, but Ecobee's Follow Me (
followMeComfort) overrides it with whichever sensors detect motion.get_thermostatsshows both; turn Follow Me off withupdate_settings{"followMeComfort": false}for strict per-setting sensors.Tool temperatures are plain °F. Raw settings and program temperature fields use °F × 10 where noted.
Credentials are Worker secrets and are sent only to Ecobee's Auth0 token endpoint.
/mcprequiresMCP_BEARER;/and/healthare public.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Control your Tesla - wake it, warm it up, unlock and more. Get your developer token at https://Infoseek.ai/mcp. Also requires your own Tesla developer token which is tied to your car/fleet.
- JotiOAuthcom.kompetic
Read your workouts, history, and stats; create and schedule new workouts. Writes are additive only.
Read time entries, projects, clients, tasks and invoices; log and update tracked time.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAccess Home Assistant data and control devices (lights, switches, thermostats, etc).6 npm576Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables control and monitoring of Tesla vehicles through the Tessie API, providing access to vehicle state (battery, location, climate) and commands (lock/unlock, climate control, navigation) with support for both local and Cloudflare Worker deployment.11-
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive interaction with SmartThings devices, locations, scenes, and automation rules through the SmartThings API. It features intelligent two-level caching and supports multiple transport options including HTTP, SSE, and STDIO.MIT
- FlicenseNot gradedqualityDmaintenanceEnables control and monitoring of Tesla vehicles via the Tessie API, providing state and command tools for climate, locks, charging, and navigation.-