Skip to content

MCP Tool Catalog

The Pipelet MCP server registers 30 tools across five functional areas. This page is hand-maintained for MVP; in Phase 2 it will be auto-generated from the @mcp.tool() docstrings.

Source: mcp-server/mcp_server/tools/station_monitoring.py

list_stations station_monitoring

List all connected charging stations with their current status. Returns station ID, vendor, model, firmware version, serial number, connector count, and per-connector status (Available, Charging, Faulted, etc.). Use this for a quick overview of the entire charging network.

get_station_details station_monitoring
station_id: str

Get detailed information for one station: connectors with status, error codes, meter values, active transactions, vendor info. Use this when investigating a specific station's state.

get_station_liveness station_monitoring

Heartbeat-based liveness for every connected station. Returns last-heartbeat time, seconds since last heartbeat, configured timeout, seconds until timeout, and an at-risk flag. Use this to identify stations with connectivity issues.

diagnose_station station_monitoring
station_id: str

Run connection diagnostics for one station. Pulls reconnection history, connection-quality score, WebSocket ping stats, handshake success/failure counts from ocpp-broker. Use this when a station has intermittent connectivity issues.

get_system_health station_monitoring

Combined health check across all three backend services (gateway, broker, server). One call → one verdict on whether the platform is healthy.

get_metrics station_monitoring
metric_type: str

Operational metrics for the charging infrastructure. Pass a metric type to filter (e.g. 'connections', 'transactions', 'database').

Source: mcp-server/mcp_server/tools/configuration.py

get_station_config configuration
station_id: str, key: str | None = None

Read OCPP configuration keys from a station. Pass a key name to read one value; omit to read all configured keys.

set_station_config configuration
station_id: str, key: str, value: str

Write a single OCPP configuration key. The station must accept the change; some keys require a reboot.

trigger_station_reset configuration
station_id: str, reset_type: str = 'Soft'

Trigger a Soft (graceful) or Hard (immediate power-cycle) reset. Soft resets preserve active sessions; hard resets do not.

change_station_availability configuration
station_id: str, available: bool, connector_id: int = 0

Change Operative/Inoperative state for a connector or the whole station. Pass connector_id=0 for the whole station.

start_charging configuration
station_id: str, connector_id: int, id_tag: str

Start a remote charging session. Returns the OCPP RemoteStartTransaction response — usually 'Accepted' or 'Rejected'.

stop_charging configuration
transaction_id: int

Stop a charging session by transaction ID. Use get_active_sessions to find live transaction IDs.

get_firmware_status configuration
station_id: str

Read the firmware version and update status of a station.

Source: mcp-server/mcp_server/tools/billing_sessions.py

get_active_sessions billing_sessions

List all currently active (in-progress) charging sessions across the fleet.

query_billing_sessions billing_sessions
start_date: str, end_date: str, station_id: str | None = None, limit: int = 100

Query historical sessions in a date range. Optionally filter by station. Returns sessions with energy, duration, cost.

get_billing_summary billing_sessions
year: int, month: int

Monthly aggregated billing summary: total energy, total revenue, session count, average kWh per session.

get_dashboard_kpis billing_sessions

Real-time dashboard KPIs for the charging network. Use when asking 'how are we doing right now?'

get_chart_data billing_sessions
days: int = 30, granularity: str = 'daily'

Time-series data for charts. Granularity is one of 'hourly', 'daily', 'weekly'.

export_billing_csv billing_sessions
year: int, month: int, station_id: str | None = None

Export billing data as CSV. Used for accounting close-outs and external audits.

Source: mcp-server/mcp_server/tools/customer_tokens.py

search_customers customer_tokens
query: str, limit: int = 50

Free-text search across customers (name, email, contract ID). Returns up to `limit` matches.

get_customer_details customer_tokens
customer_id: int

Full details for one customer: contact info, contract, RFID tokens, billing address, recent sessions.

search_tokens customer_tokens
query: str, limit: int = 50

Search RFID tokens / id-tags by partial value. Useful when a customer reports a card.

list_locations customer_tokens
filter: str | None = None

List all charging locations. Optionally filter by city or owner.

list_evses customer_tokens
location_id: int | None = None

List all EVSEs (charge points). Filter by location to scope the result.

get_evse_live customer_tokens
evse_id: int

Combined live data for an EVSE: current status, active session, meter values, last heartbeat.

Source: mcp-server/mcp_server/tools/load_management.py

get_load_status load_management

Current load management status across all groups. Returns capacity, current draw, available headroom.

get_load_groups load_management

List all load management group configurations. Includes group name, capacity, member EVSEs, scheduling rules.

get_meter_reading load_management
group_id: int

Current energy meter reading for a load management group. Used to verify total power draw.

get_load_log load_management
group_id: int, limit: int = 50

Recent load management events for a group: rebalances, capacity exceeded warnings, schedule changes.

trigger_rebalance load_management
group_id: int

Force an immediate power rebalancing in a load management group. Normally happens automatically on a schedule; use this when you need it now.


Open an issue at github.com/pipelet/mcp-server describing the use case. Tools are cheap to add — most are 10-20 lines of Python wrapping an existing REST endpoint.