{"_id":"@emporiaenergy/emporia-mcp","_rev":"17-1f39b968b39190f0de3b2e59d598f2e2","name":"@emporiaenergy/emporia-mcp","dist-tags":{"latest":"0.2.1"},"versions":{"0.0.1":{"name":"@emporiaenergy/emporia-mcp","version":"0.0.1","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.0.1","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp-server":"build/index.js"},"dist":{"shasum":"a7cb191d1ee7dd587ab466aca8ab1894d7fdcb84","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.0.1.tgz","fileCount":14,"integrity":"sha512-nV4eljVgHB3LmmZ/BQHp5CPiU9PNCQOpew7SFiBnKY8mBCfl8bvyetbiJoHys5HlTM0DvtLXVwFd9hEoqR+Qag==","signatures":[{"sig":"MEUCIQCUVP4xoO2zI1euaEcJifcqETIEphwts+1dvwIl1El2XgIgbzqhBsr9+Z8zPYhppGlwRCn39aktQ0m3J8QdubEchYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64584},"main":"./build/index.js","type":"module","gitHead":"5fe5de8b7ba1d90f9097a2818f09eb65fd4ba3bf","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix"},"_npmUser":{"name":"kwanek","email":"kwanek@emporiaenergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.4.0","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.4","dotenv":"^16.5.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.11.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.0.1_1748034789326_0.9015031138321401","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@emporiaenergy/emporia-mcp","version":"0.0.2","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.0.2","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp":"build/index.js"},"dist":{"shasum":"ebf5d8b8792add5c6f9e4c47d22b664806b75326","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.0.2.tgz","fileCount":14,"integrity":"sha512-bhoxSSoyt5YbywLV/J7kqUM/+Az2MYj7CJEVKiIpGCVCxF7+o2BY4qYSrDnaVFW6Bw1Cc5OYwgjCa7VdP0dGwg==","signatures":[{"sig":"MEUCIQCVyQObcsq6jZ2Lsp+goTqJqVP+SAm9p6PiHnZ+/We4tAIgONr10ZB2+5lihUk8tYa1q0xAKaytWb/aROF6iIXWqRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64577},"main":"./build/index.js","type":"module","gitHead":"faac86c8f48e72d86636b005ca4324dca3f14ac2","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix"},"_npmUser":{"name":"kwanek","email":"kwanek@emporiaenergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.4.0","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.4","dotenv":"^16.5.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.11.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.0.2_1748037399930_0.576114205528458","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@emporiaenergy/emporia-mcp","version":"0.0.3","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.0.3","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp":"build/index.js"},"dist":{"shasum":"853f0c9bf099c08257e1a8470e0ad9618ac1f9f5","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.0.3.tgz","fileCount":14,"integrity":"sha512-ki1TzXbx+OJ9rJTfa260HtbRsyClW8kNs3dCv0UcnsSf83X1z9dLMdokI/favTeb7Wr1vwk9FHr5uYn604Of2Q==","signatures":[{"sig":"MEUCIQDWfG3gq0yhOohh6L6m8X3Ia429aiCTBDQZqZoy94lZggIgP9swX5XGK9p+xPBQskuQQmiWkXkPuWlG5OarLrv5OG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64577},"main":"./build/index.js","type":"module","gitHead":"23ad443781aa308317c62bdf29f0b29a835e5647","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix"},"_npmUser":{"name":"kwanek","email":"kwanek@emporiaenergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.4.0","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.4","dotenv":"^16.5.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.11.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.0.3_1748038084179_0.6201968886046574","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@emporiaenergy/emporia-mcp","version":"0.0.4","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.0.4","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp":"build/index.js"},"dist":{"shasum":"475c5b48243b48d2b9055676d21c4de61be58435","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.0.4.tgz","fileCount":14,"integrity":"sha512-VGDIZglGoD/SZXGk7IYREC/g1+rw5E25WVE3+yGGfLX0BMdO1FtTs5Tq18U0V3aSe6ADdxsEwMI3fpK7zY1DTw==","signatures":[{"sig":"MEQCICfEoZSbU3FJttuYe+L+c4D4BMl5BNShTzHgpyDSQWPTAiBLTi6aTvDn0Kwq5qVuS42nr5OJ4jgDfpg1EIWyvuzPyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64638},"main":"./build/index.js","type":"module","gitHead":"3e9e2e1e3f54d2b2334131fe5c17da42a544b08b","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"kwanek","email":"kwanek@emporiaenergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.4.0","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.4","dotenv":"^16.5.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.11.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.0.4_1748038583099_0.8983586373687218","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@emporiaenergy/emporia-mcp","version":"0.0.5","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.0.5","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp":"build/index.js"},"dist":{"shasum":"a2d5e51cd6fddcda45a4f5b15229ef99acc28316","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.0.5.tgz","fileCount":14,"integrity":"sha512-kRegSyqiVcDyLBXDdvgRi1XAHJhiGMaRv2ah4bNgvwP0LLqhSgt7N4FW5WM5BBsBVkvfQUcnMpjir7O/YYWs7A==","signatures":[{"sig":"MEUCIF4MEEdAanMbk45OZC6Ys2y+x/xYNPswOMcsXn0yakBpAiEAjvBNoOfWSC09u0nhggz3digmdW8V2paWcnohHVoSfB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64602},"main":"./build/index.js","type":"module","gitHead":"51af557af6910e7c5fa9d55e9b2818011aaee8c6","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"kwanek","email":"kwanek@emporiaenergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.4.0","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.4","dotenv":"^16.5.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.11.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.0.5_1748366151640_0.8722085436694069","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@emporiaenergy/emporia-mcp","version":"0.1.0","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.1.0","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"},{"name":"jboshoven-emporia-energy","email":"jboshoven@emporiaenergy.com"},{"name":"scottyknows26","email":"sreed@emporiaenergy.com"},{"name":"gezell_emporia","email":"gezell@emporiaenergy.com"},{"name":"athiessen-emporia","email":"athiessen@EmporiaEnergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp":"build/index.js"},"dist":{"shasum":"aea533bdde66ac80ed785b1bbfb903698d968a92","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.1.0.tgz","fileCount":15,"integrity":"sha512-uZ24WhbWkA3xU6xhhFKY5GlOSPNBAfJPs6dhxmThb5zGqQaMcT+oxHnY2cibpCNxitCW/U/OOykCAuNMwpZlOQ==","signatures":[{"sig":"MEUCIQDvZgUdA/X3eCTf3oU5zUabkXpC215Y3gqEwgWuFiUEdQIgcpVI7f6sU8A5wJXn4wP0uwKaTa/3zRfgoR66BfwD58o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81868},"main":"./build/index.js","type":"module","gitHead":"09ad6bddb84c483e474f4a223bbf2192327e26bd","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix","dev:remote":"tsx src/remote-server.ts","start-remote":"node build/remote-server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"athiessen-emporia","email":"athiessen@EmporiaEnergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"23.11.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.5","dotenv":"^16.5.0","express":"^5.1.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.16.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/node":"^22.15.18","@types/express":"^5.0.3","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.1.0_1756240641232_0.6934968203304064","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@emporiaenergy/emporia-mcp","version":"0.2.0","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","_id":"@emporiaenergy/emporia-mcp@0.2.0","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"},{"name":"jboshoven-emporia-energy","email":"jboshoven@emporiaenergy.com"},{"name":"scottyknows26","email":"sreed@emporiaenergy.com"},{"name":"gezell_emporia","email":"gezell@emporiaenergy.com"},{"name":"athiessen-emporia","email":"athiessen@EmporiaEnergy.com"}],"homepage":"https://www.emporiaenergy.com","bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"bin":{"emporia-mcp":"build/index.js"},"dist":{"shasum":"59a1ec82cf711df0a4fc34ca70bb5cc224a9dc0a","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.2.0.tgz","fileCount":15,"integrity":"sha512-DSYEUdmtbYmB96rTC59sUCcgvFoslS0m/r19r2T+DW4Hr8I8u+KjPyiMTB4SusZgDr5dLdvBaUNFu4SAnjIxFA==","signatures":[{"sig":"MEYCIQDDNTAaKaHh6gRI2/0co0Dk3sI9sOOE7RxIk2vKiBJn0gIhANEGWX3dL1A5M5hDLKRj0hiSN9XTrdbe7Q9RWd2tZU35","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104168},"main":"./build/index.js","type":"module","gitHead":"6056f2a944a9544af1dfef52a717fe54cf8db131","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix","dev:remote":"tsx src/remote-server.ts","start-remote":"node build/remote-server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"kwanek","email":"kwanek@emporiaenergy.com"},"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.4.0","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.5","dotenv":"^16.5.0","express":"^5.1.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.16.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/node":"^22.15.18","@types/express":"^5.0.3","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/emporia-mcp_0.2.0_1789070746488_0.1774484409147583","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"_id":"@emporiaenergy/emporia-mcp@0.2.1","bin":{"emporia-mcp":"build/index.js"},"bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"dist":{"shasum":"83c6801efb215581bee6a2b384411cd3c2f4895e","tarball":"https://registry.npmjs.org/@emporiaenergy/emporia-mcp/-/emporia-mcp-0.2.1.tgz","fileCount":15,"integrity":"sha512-5bP6Ou5w4igL4PiOHtKsRqzSq1tPhf/QgOsDNZZKrjT7HPm1b1sg1dOoo1DKMeqO9d7Jr67JV2rzT9xMyaBDFQ==","signatures":[{"sig":"MEQCIAmTGQsgr8LV64E+nrLYSPw5t0181af3DtvzcnGhN0ceAiBp9ots5dniOgf+Nu9I64ouHCgfONsSKUto6X6LXEmTtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDM1/f5TGuEGloN6CLl4t401FP2+05GME2tq/jxixnkXwIhAOMw9eq/3J5FvPoRxRaP9BHV2e+TIiAKNOn8dKlFZmHl"}],"unpackedSize":108764},"main":"./build/index.js","name":"@emporiaenergy/emporia-mcp","type":"module","author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"gitHead":"b0acb2150355c5465a5c12ec24f36a66b2622401","license":"ISC","scripts":{"lint":"prettier --check \"**/*.{ts,json}\" && eslint --max-warnings 0","build":"tsc","start":"node build/index.js","format":"prettier --write \"**/*.{ts,json}\" && eslint --max-warnings 0 --fix","postbuild":"chmod +x build/index.js","dev:remote":"tsx src/remote-server.ts","start-remote":"node build/remote-server.js","prepublishOnly":"npm run build"},"version":"0.2.1","_npmUser":{"name":"athiessen-emporia","email":"athiessen@EmporiaEnergy.com"},"homepage":"https://www.emporiaenergy.com","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"An MCP Server to access customer data from the Emporia Energy cloud.","directories":{},"maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"},{"name":"jboshoven-emporia-energy","email":"jboshoven@emporiaenergy.com"},{"name":"scottyknows26","email":"sreed@emporiaenergy.com"},{"name":"gezell_emporia","email":"gezell@emporiaenergy.com"},{"name":"athiessen-emporia","email":"athiessen@EmporiaEnergy.com"}],"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.24.4","cors":"^2.8.5","dotenv":"^16.5.0","express":"^5.1.0","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.16.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/node":"^22.15.18","@types/express":"^5.0.3","@types/node-fetch":"^2.6.12","typescript-eslint":"^8.32.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/emporia-mcp_0.2.1_1789672683701_0.3752213227076313"}}},"time":{"created":"2025-05-23T21:13:09.325Z","modified":"2026-09-17T19:18:04.036Z","0.0.1":"2025-05-23T21:13:09.482Z","0.0.2":"2025-05-23T21:56:40.165Z","0.0.3":"2025-05-23T22:08:04.381Z","0.0.4":"2025-05-23T22:16:23.281Z","0.0.5":"2025-05-27T17:15:51.932Z","0.1.0":"2025-08-26T20:37:21.436Z","0.2.0":"2026-09-10T20:05:46.612Z","0.2.1":"2026-09-17T19:18:03.809Z"},"bugs":{"url":"https://github.com/emporiaenergy/emporia-mcp/issues"},"author":{"url":"www.emporiaenergy.com","name":"Emporia Energy"},"license":"ISC","homepage":"https://www.emporiaenergy.com","keywords":["emporia","emporia energy","mcp","mcp server","emporia mcp server"],"repository":{"url":"git+https://github.com/emporiaenergy/emporia-mcp.git","type":"git"},"description":"An MCP Server to access customer data from the Emporia Energy cloud.","maintainers":[{"name":"kwanek","email":"kwanek@emporiaenergy.com"},{"name":"jboshoven-emporia-energy","email":"jboshoven@emporiaenergy.com"},{"name":"scottyknows26","email":"sreed@emporiaenergy.com"},{"name":"gezell_emporia","email":"gezell@emporiaenergy.com"},{"name":"athiessen-emporia","email":"athiessen@EmporiaEnergy.com"}],"readme":"# Emporia Energy MCP Server\n\nThe Emporia Energy MCP Server provides a secure way for LLM applications to access your Emporia Energy device data. This MCP server implementation is in BETA and is subject to change moving forwards. \n\nThis MCP Server supports multiple transport methods: local stdio (requiring local execution similar to a command line program), legacy Server-Sent Events (SSE), and Streamable HTTP. For remote transports, authentication uses the same bearer tokens as the API. OAuth is also supported for remote transports (see **Using the Remote MCP** below).\n\nThis MCP server targets the Emporia Energy customer cloud - it does not support Partner related behavior.\n\nEmporia Energy wants to hear any feedback or suggestions you might have related to this tool (or anything else we're working on). Feel free to reach out with any questions/thoughts by emailing [info@emporiaenergy.com](mailto:info@emporiaenergy.com).\n\nTo learn more about Emporia Energy and what we're building - feel free to visit our website at [www.emporiaenergy.com](https://www.emporiaenergy.com/). We also have a fairly expansive knowledge base about our products and platform available here: [help.emporiaenergy.com](https://help.emporiaenergy.com/en/).\n\n## Features\n\n- Secure authentication with automatic token refresh\n- Device listing with comprehensive device information, including which site (**Home**) each device belongs to\n- Site listing, with the ability to filter devices by site — a \"site\" is what the Emporia app calls a **Home**\n- Energy and Power measurement/usage data retrieval with configurable time scales and energy units\n- Well-structured API responses with contextual information\n- Additional EV Charger-related tools for session/report details\n\nSee Feature Status below for additional details on device specific implementation status and what will be coming in the future.\n\n### ⚠️ Important Notes\n- For the BETA implementation of this MCP server, you must have a native-Emporia Energy account. It will not work if you've created an Emporia Account using Google or Apple as third-party authentication providers. In the short-term, you can create a new account (with an email/password) and [_share_](https://help.emporiaenergy.com/en/articles/9084330-sharing-devices-across-multiple-emporia-accounts) your Emporia devices to the new account via the Emporia Energy [web](https://web.emporiaenergy.com/) or [mobile app](https://www.emporiaenergy.com/app/). We expect that a future version of this MCP server program will have additional flexibility for these third-party provider accounts.\n- Emporia accounts with many devices associated (> 20) may have issues with short context windows and long API responses. Similarly, requesting high amounts of measurement data can produce excessively large API responses that can cause problems for some clients and context-limited LLMs.\n- LLM's can be unreliable. While this MCP server program will provide accurate Emporia data from the cloud, the LLM's interpretation (and requesting) of that data may be incorrect at times.\n\n## Examples\n\nTODO\n\n### Tips/Tricks\n- Be detailed when requesting specific dates/times of measurement data. Some clients/LLM's may not provide up-to-date timestamps as part of their prompting process, so specifying exact time frames is usually helpful.  \n  - Instead of \"show me last weeks usage\", try \"show me usage from May 01, 2025 through May 10, 2025\"\n- Clarify if you're looking for Power or Energy measurement/usage data as they have separate endpoints/tools (and would be used for separate purposes depending on your goals).  \n  - Instead of \"show me usage\", try \"show me energy usage for...\" or \"show me power measurements for...\"\n\n## Release Notes\n- May 23, 2025 - Initial release\n- August 26, 2025 - Remote MCP released (SSE & Streamable HTTP)\n- September 10, 2026 - `listDevices` now uses the site-aware cloud endpoint (devices assigned to a site/Home are no longer missing) and accepts an optional `site_gid` filter; added the `listSites` (Homes) and `getDeviceStatus` tools. Note: \"site\" (as used by the API and these tools) is the same feature the Emporia app calls a \"Home\". Also hardened the device tools: `getDeviceDetails`/usage tools now skip and report third-party (thermostat/appliance/vehicle) ids instead of failing the whole batch, `circuit_ids` is optional for non-Vue devices, `getDevicesChannels` flags each channel's `usableAsCircuitId`, `getDeviceStatus` summaries count all device categories, and `listSites` returns member counts by default (pass `include_members` for emails).\n\n## Prerequisites\n- Node.js 18+ (a Docker-based installation option may be available in the future)\n- An Emporia Energy account (_native_ account, not Google/Apple created)\n- An MCP-capable AI client program (Claude Desktop, Cursor/Windsurf/VS Code, LM Studio/OpenWebUI, etc...)  \n  * see [a list of example clients compiled by the official MCP project](https://modelcontextprotocol.io/clients)\n\n## Usage\n\n### Generating the MCP server file locally\nYou have to create a JavaScript server file locally.  Your MCP client will run this file, you don't need to leave the server running. See Option 3 below for Windows installation.\n\n```bash\n# Clone the repository\ngit clone https://github.com/emporiaenergy/emporia-mcp.git\ncd emporia-mcp\n\n# Install dependencies and build project\nnpm install && npm run build\n```\n\n### Configuration in MCP Clients \n\nTo use the local MCP server within an MCP client, add it to your client's MCP configuration file - using NPX is the recommended option (see below for details of running locally).    \nAuthentication credentials (for your Emporia Energy account) must be provided either through environment variables or a .env file.\n\n#### Option 1: Direct Environment Variables\n\n```json\n{\n  \"mcpServers\": {\n    \"emporia-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@emporiaenergy/emporia-mcp\"],\n      \"env\": {\n        \"EMPORIA_ACCOUNT\": \"<YOUR_EMAIL>\",\n        \"EMPORIA_PASSWORD\": \"<YOUR_PASSWORD>\"\n      }\n    }\n  }\n}\n```\n\n#### Option 2: Using a .env File\n\nYou can provide your credentials in a .env file and specify its path using the `ENV_FILE` environment variable:\n\n```json\n{\n  \"mcpServers\": {\n    \"emporia-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@emporiaenergy/emporia-mcp\"],\n      \"env\": {\n        \"ENV_FILE\": \"/path/to/your/.env\"\n      }\n    }\n  }\n}\n```\n\nExample `.env` file contents:\n\n```env\nEMPORIA_ACCOUNT=example@email.com\nEMPORIA_PASSWORD=examplepassword1234\n```\n\n#### Option 3: Using Node on Windows\nThere is an [NPX bug on Windows](https://www.reddit.com/r/ClaudeAI/comments/1h3ke5r/help_needed_mcp_not_working_with_claude_on/), so use Node instead.  \n\n```json\n{\n  \"mcpServers\": {\n    \"emporia-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\"C:\\\\dev\\\\emporia-mcp-server\\\\build\\\\index.js\"],\n      \"env\": {\n        \"EMPORIA_ACCOUNT\": \"<YOUR_EMAIL>\",\n        \"EMPORIA_PASSWORD\": \"<YOUR_PASSWORD>\",\n        \"DEBUG\": \"*\"\n      }\n    }\n  }\n}\n```\n\n### Using the Remote MCP\n\nTo use the remote MCP server, you must use an MCP client which supports remote MCP over SSE or Streamable HTTP transports, such as Claude via the Anthropic API or Claude Desktop (premium plans only).\nThe Emporia Remote MCP server can be reached at https://mcp.emporiaenergy.com/streamable (Streamable HTTP) or https://mcp.emporiaenergy.com/sse (Legacy SSE). Depending on the client used, you can use \nOAuth to authenticate your MCP requests. Note that some clients may only support the Streamable transport for OAuth authentication. For API clients such as Claude via the Anthropic API, you must pass \nan authentication token retrieved from the OAuth flow in your requests.\n\n# Feature Status\n\n| Category | Feature                             | Status |\n|:---------|:------------------------------------|:------:|\n| **Authentication** | Account/Password (as env vars)      | ✅ Available |\n|  | Account/Password (as .ENV File)     | ✅ Available (Local only) |\n|  | OAuth                               | ✅ Available (Remote only) |\n|  | Third-party Auth Providers          | 🔄 TBD |\n| **Account Information** | List Devices (site-aware)           | ✅ Available |\n|  | List Sites / Homes                  | ✅ Available |\n|  | Device Status (connectivity/live)   | ✅ Available |\n|  | Rate Plan Information               | 🔄 TBD |\n|  | Recommendations                     | 🔄 TBD |\n| **Device Details** | Energy Monitors (w/ channels)       | ✅ Available |\n|  | EV Chargers                         | ✅ Available |\n|  | Smart Plugs                         | ✅ Available |\n|  | Home Batteries                      | ✅ Available |\n|  | Appliances                          | ❌ Not Available |\n|  | Thermostats                         | ❌ Not Available |\n| **Measurements** | Energy Monitors                     | ✅ Available |\n|  | EV Chargers                         | ✅ Available |\n|  | Smart Plugs                         | ✅ Available |\n|  | Home Batteries (inc. SoC)           | ✅ Available |\n| **Update Settings/Control** | Energy Monitors                     | ❌ Not Available |\n|  | EV Chargers                         | 🔄 TBD |\n|  | Smart Plugs                         | 🔄 TBD |\n|  | Home Batteries                      | 🔄 TBD |\n|  | Appliances                          | ❌ Not Available |\n|  | Thermostats                         | ❌ Not Available |\n| **Additional Features** | EV Charging Report                  | ✅ Available |\n|  | EV Charger Sessions                 | ✅ Available |\n| **MCP Implementation** | via NPM                             | ✅ Available |\n|  | via Docker                          | 🔄 TBD |\n|  | Python (UV)                         | ❌ Not Available |\n|  | Tool Configuration (enable/disable) | 🔄 TBD |\n|  | Remote SSE                          | ✅ Available |\n|  | Remote Streamable HTTP              | ✅ Available |\n\n## Available Tools\n\nThe server provides the following tools to help AI assistants interact with your Emporia Energy data:\n\n1. **listDevices**  \n   *Get an overview of all your connected Emporia Energy devices*  \n   This tool provides a comprehensive inventory of your devices including customer information, device details (models, firmware versions), site (**Home**) assignment, and location data. It covers every device type on your account — energy monitors, EV chargers, smart plugs, batteries, and third-party thermostats, appliances, and vehicles. Devices are returned whether or not they belong to a site/Home. Use this to discover what devices are available for monitoring or control.  \n   \n   *Optional parameter:* `site_gid` — pass a site (Home) identifier (see **listSites**) to return only the devices belonging to that site/Home.  \n   \n   *Example response:* Lists all your Vue energy monitors, EV chargers, and other Emporia devices with their type, configuration details, and the `site_gid` of the site (Home) each belongs to (if any).\n\n2. **listSites**  \n   *See how your devices are grouped into sites (Homes)*  \n   A **site** — the feature the Emporia app calls a **Home** — bundles devices (zero, one, or many) under a single location, and an account can have multiple sites/Homes, each of which may also be shared with other Emporia users. (The API and this tool use the term \"site\" and the identifier `site_gid`; \"Home\" is the customer-facing name for the same thing.) This tool lists your sites/Homes with their names, associated devices, member count, and location/utility settings. The `device_ids` on each site match the `device_id` values returned by **listDevices**, and you can pass a site's `site_gid` to **listDevices** to drill into just that site's devices.  \n   \n   *Optional parameter:* `include_members` — a shared site/Home can be shared with many other customers, so by default only the member *count* is returned. Pass `include_members: true` to also return the members' email addresses (only when the user specifically needs them).  \n   \n   *Example response:* Lists each site/Home with its display name, the devices assigned to it, and how many customers it is shared with.\n\n3. **getDeviceStatus**  \n   *Check whether your devices are online, and their current live state*  \n   This tool reports connectivity for your devices (connected, and if offline, when they went offline), alongside live per-category status such as battery state of charge, EV charging state, and smart plug on/off. Note that `listDevices` is an inventory and does not include connection status — use this tool for that.  \n   \n   *Optional parameters:* `device_ids` — restrict to specific devices (the `device_id` values from **listDevices**); third-party devices (thermostats, appliances, vehicles) are only included when explicitly listed here. `site_gid` — restrict to a single site/Home (ignored when `device_ids` is supplied).  \n   \n   *Example response:* A connectivity summary (which devices are online vs. offline) plus the full grouped status payload with each device's current live values.\n\n4. **getDeviceDetails**  \n   *Get real-time status and details for an Emporia hardware device*  \n   This tool returns detailed information about your **Emporia hardware** devices (EV chargers, energy monitors, smart plugs, batteries) by passing one or more device serial numbers. The response includes relevant details for each device type, such as connection status, current state, charging rates, firmware, and more. Third-party devices (thermostats, appliances, vehicles) are **not** covered here — use **getDeviceStatus** for those. If you pass a mix that includes third-party ids, they are skipped and reported rather than failing the whole call.\n   \n   *Example response:* For an EV charger, shows whether your vehicle is connected, actively charging, current charging rate (in amps), and maximum available charging rate. For an energy monitor, shows firmware version, channel counts, and device status. For a smart plug, shows on/off state and connection status. For a battery, shows state of charge, capacity, and power flows.\n\n5. **getDevicesChannels**  \n   *Get detailed information about device channels and circuit configurations*  \n   This tool provides comprehensive information about all channels for your energy monitoring devices, including main and branch circuits. Essential for understanding your electrical system's structure. Each channel carries a `usableAsCircuitId` flag: use a channel's `channelId` as a `circuit_ids` value in the usage tools **only when `usableAsCircuitId` is true**. The combined `Mains` channel is flagged `false` because the usage endpoints reject it — query the individual legs (`Mains_A`/`B`/`C`) or branch circuits instead.\n   \n   *Example response:* Returns device channel configurations, showing main and branch circuits, combined circuits, channel naming/numbering, and which channel IDs can be used directly in usage queries.\n\n6. **getDeviceEnergyUsage**  \n   *Analyze energy consumption of any device or circuit over time*  \n   This tool retrieves historical energy usage data for any of your devices (EV chargers, energy monitors, smart plugs, batteries, etc.) with customizable time periods and resolutions. `circuit_ids` is **required for Vue energy monitors** and **optional/ignored for EV chargers, smart plugs, and batteries** — batteries always return all of their streams (charge, discharge, PV, grid, load). Third-party device ids are skipped and reported rather than failing the call.  \n   \n   *Example response:* Returns time-series energy data (in kWh) for specified devices and (optionally) circuits, with timestamps and consumption values at your chosen resolution (from minutes to years).\n\n7. **getDevicePowerUsage**  \n   *Monitor real-time power draw from any device or circuit*  \n   This tool provides power usage data showing how much electricity your devices or specific circuits are drawing at different times. Useful for understanding power consumption patterns across your electrical system. As with energy usage, `circuit_ids` is **required for Vue energy monitors** and **optional/ignored for EV chargers, smart plugs, and batteries**; third-party device ids are skipped and reported.  \n   \n   *Example response:* Returns time-series power data (in watts) for specified devices and (optionally) circuits, with timestamps and average power values at minute or 15-minute intervals.\n\n8. **getBatteryStateOfCharge**  \n   *Track Home Battery charge levels over time*  \n   This tool provides historical state of charge (SoC) data for your home battery storage systems with customizable time periods and resolutions. Essential for understanding how your battery's charge level fluctuates throughout the day, week, or month. Important note - for Home Battery systems only, not applicable for EVSE/Electric Vehicle SoC\n   \n   *Example response:* Returns time-series state of charge data (as percentage values 0-100%) for battery systems, with timestamps and average state of charge values at your chosen resolution (minutes, hours, or days).\n\n9. **getEVChargingReport**  \n   *Get comprehensive reports of your EV charging activity*  \n   This tool provides detailed reports about your electric vehicle charging patterns, costs, and potential savings over a specified time period. Essential for understanding charging habits and optimizing for cost savings.\n   \n   *Example response:* Returns a comprehensive report including daily charging totals, individual charging sessions, energy usage (kWh), charging costs, and potential savings based on utility rate plans.\n\n10. **getEVChargerSessions**  \n   *Track plug-in and charging events for your EV chargers*  \n   This tool provides detailed information about when vehicles were connected to your EV chargers and the charging sessions that occurred during those connection periods. Useful for understanding vehicle connection times and actual charging times.\n   \n   *Example response:* Returns a list of plug-in/plug-out events for each charger, including timestamps and energy usage data for each charging session within those connection periods.\n\n## Known Behaviors & Cloud Limitations\n\nSome behaviors are inherent to the Emporia cloud APIs the MCP calls and cannot be changed from within this server. They are documented here so agents and users know what to expect:\n\n- **Circuit ID vocabularies differ by endpoint.** `getDevicesChannels` reports channel IDs like `Mains_A` and `Branch_1`, while `getDeviceDetails` reports the same circuits in a numeric form (`Main_1`, `1`). The usage tools accept either form, but the combined `Mains` channel is **not** accepted. Prefer the `channelId` values from `getDevicesChannels` that have `usableAsCircuitId: true`.\n- **Device counts differ between tools.** `listDevices` returns every device (including third-party thermostats, appliances, and vehicles). `getDeviceStatus` and `getDevicesChannels` cover Emporia hardware only, so their counts can be lower — third-party statuses appear in `getDeviceStatus` only when you pass their ids explicitly via `device_ids`.\n- **Batteries return all streams.** The battery usage endpoints ignore `circuit_ids` and always return every stream (charge, discharge, PV, grid, load, total). Filter client-side if you need a subset.\n- **EV charging report intervals/copy are cloud-generated.** `getEVChargingReport` normalizes the requested window to the device's local time zone (so the echoed interval may be offset from what you sent) and includes a human-readable narrative (\"last month\", etc.) produced by the cloud.\n- **Two type vocabularies.** `listDevices` labels devices with the cloud device-type enum (`MONITOR`, `EV_CHARGER`, `OUTLET`, `BATTERY`, …), while `getDeviceDetails`/usage tools group their results under internal keys (`vue3`, `evse`, `smartplug`, `battery`). Both refer to the same devices.\n","readmeFilename":"README.md"}