Connect Claude Desktop
This is the fastest path to “Claude can operate my charging network” — start to finish in about three minutes.
What you’ll have at the end
Section titled “What you’ll have at the end”A Claude Desktop window where you can ask things like:
“List the stations that haven’t sent a heartbeat in the last 5 minutes, then tell me which ones are in load group 3.”
…and Claude will call get_station_liveness, list_evses, and combine the results into a single answer.
Prerequisites
Section titled “Prerequisites”- Claude Desktop installed
- Python 3.11+ on your machine
- A running Pipelet stack (
cpms-headlessreachable onhttp://localhost:8080) — see Installation - A valid Headless CPMS API key
-
Install the MCP server.
Terminal window pip install pipelet-mcp-serverOr from source:
Terminal window git clone https://github.com/pipelet/mcp-server.gitcd mcp-serverpip install -e . -
Locate Claude Desktop’s config file.
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonIf the file doesn’t exist, create it.
-
Add the Pipelet MCP server.
claude_desktop_config.json {"mcpServers": {"pipelet": {"command": "python","args": ["-m", "mcp_server"],"env": {"PIPELET_GATEWAY_URL": "http://localhost:8080","PIPELET_API_KEY": "hcpms_live_a4b9..."}}}}Replace
hcpms_live_a4b9...with your actual API key from Authentication. -
Restart Claude Desktop.
Quit (not just close) and reopen the app. The MCP server status appears in the tools panel — look for a hammer icon and
pipeletin the list. -
Verify it’s wired up.
In a new chat, ask:
List all my charging stations.
Claude should call the
list_stationstool. You’ll see the tool invocation in the chat, the JSON response, and a natural-language summary.
Things to try
Section titled “Things to try”-
Status check:
Show me the current load on every group, then flag any that are over 80% of capacity.
-
Diagnostics:
WALLBOX_017 has been faulting all morning. Run diagnostics and explain what’s wrong in plain English.
-
Onboarding:
Add station SIM-DC-002 to load group 1 with a 22 kW limit, then trigger a soft reset and verify it boots.
-
Reporting:
How much energy did we deliver last month? Break it down by location.
-
Customer lookup:
Find the customer whose RFID token starts with “DEMOL” and tell me when they last charged.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Fix |
|---|---|---|
Claude doesn’t show pipelet in the tools panel | JSON syntax error in config | Validate with python -m json.tool < claude_desktop_config.json |
| Tools are listed but every call returns “connection refused” | Gateway URL wrong or gateway not running | curl http://localhost:8080/api/v1/system/health -H "X-API-Key: ..." from your terminal |
| ”Unauthorized” on every call | API key wrong or key disabled | Re-check the PIPELET_API_KEY env value in the config |
| Server starts but exits immediately | Wrong Python on PATH (or python vs python3) | Use absolute path in command field |
| Tool calls work but timeout | Long-running OCPP request, network slow | This is expected for firmware updates — increase Claude Desktop timeout in app settings |
Running over SSE (remote setups)
Section titled “Running over SSE (remote setups)”If you want the MCP server on a different host than the LLM client, run it in SSE mode:
python -m mcp_server --transport sse --host 0.0.0.0 --port 9090Then point your client at http://your-host:9090/sse. SSE mode supports any MCP-compatible client (Cursor, custom Python scripts using the mcp package, etc.) — Claude Desktop currently prefers stdio mode.