A Model Context Protocol (MCP) server implementation for OCHP (Open Clearing House Protocol) services, enabling AI assistants to interact with EV charging infrastructure.
- Complete OCHP 1.4 Protocol Support: Authorization, charge points, CDRs, status management
- OCHP-Direct Integration: Real-time EVSE control and monitoring
- MCP Protocol Compliance: Works with Claude Desktop and other MCP clients
- Type-Safe Implementation: TypeScript with comprehensive validation
- SOAP/WSDL Integration: Direct connection to OCHP services
-
Install dependencies:
npm install
-
Configure environment:
cp .env.example .env # Edit .env with your OCHP credentials
-
Build and run:
npm run build npm start
Required environment variables in .env
:
OCHP_ENDPOINT=https://your-ochp-service.com/service/ochp/v1.4
OCHP_DIRECT_ENDPOINT=https://your-ochp-service.com/direct/ochp/v1.4
OCHP_API_KEY=your-api-key
OCHP_USERNAME=your-username
OCHP_PASSWORD=your-password
OCHP_OPERATOR_ID=your-operator-id
Add to your Claude Desktop configuration:
{
"mcpServers": {
"ochp": {
"command": "node",
"args": ["path/to/ochp-mcp-server/dist/server.js"],
"env": {
"OCHP_ENDPOINT": "https://your-endpoint.com",
"OCHP_API_KEY": "your-key"
}
}
}
}
ochp_get_roaming_authorization_list
- Retrieve authorization dataochp_set_roaming_authorization_list
- Update authorization dataochp_get_single_roaming_authorization
- Get specific authorization
ochp_get_charge_point_list
- Retrieve charge point informationochp_set_charge_point_list
- Update charge point data
ochp_get_status
- Get EVSE status informationochp_update_status
- Update EVSE status
ochp_get_cdrs
- Retrieve charge detail recordsochp_add_cdrs
- Submit new CDRs
ochp_direct_select_evse
- Reserve EVSE for chargingochp_direct_control_evse
- Start/stop/modify charging sessionochp_direct_release_evse
- Release EVSE reservation
ochp://authorization-list
- Complete authorization dataochp://charge-points
- Charge point informationochp://evse-status
- Real-time EVSE statusochp://cdrs
- Historical charging dataochp://wsdl-definitions
- WSDL service definitions
{
"name": "ochp_get_roaming_authorization_list",
"arguments": {
"lastUpdate": "2024-01-01T00:00:00Z"
}
}
{
"name": "ochp_set_charge_point_list",
"arguments": {
"chargePoints": [
{
"evseId": "DEEXAE123456",
"locationName": "Example Station",
"address": {
"houseNumber": "123",
"address": "Example Street",
"city": "Example City",
"zipCode": "12345",
"country": "DE"
},
"geoLocation": {
"lat": 52.520008,
"lon": 13.404954
},
"connectors": [
{
"connectorId": 1,
"connectorStandard": "IEC_62196_T2",
"connectorFormat": "Socket"
}
],
"operatorName": "Example Operator"
}
]
}
}
// Select EVSE
{
"name": "ochp_direct_select_evse",
"arguments": {
"evseId": "DEEXAE123456",
"contractId": "DEEXAC123456"
}
}
// Start charging
{
"name": "ochp_direct_control_evse",
"arguments": {
"directId": "session-id-from-select",
"operation": "start",
"maxPower": 22.0
}
}
src/
├── server.ts # Main MCP server
├── clients/ # OCHP SOAP clients
├── handlers/ # Request handlers
├── types/ # TypeScript definitions
├── utils/ # Utilities and validation
└── config/ # Configuration management
npm run dev # Development mode
npm run build # Build TypeScript
npm test # Run tests
npm run lint # Lint code
npm run format # Format code
- OCHP 1.4: Complete specification implementation
- OCHP-Direct 0.2: Real-time EVSE control
- Authentication: Bearer token and basic auth
- Validation: Comprehensive input validation
- Error Handling: Proper OCHP error responses
- Node.js 18+
- OCHP service access
- WSDL files (included)
- Valid API credentials
Apache 2.0 License