https://github.com/andreibesleaga/ochp-mcp
OCHP MCP Server - AI MCP Server Implementation for EV Charging Open Clearing House Protocol
https://github.com/andreibesleaga/ochp-mcp
ai ev ev-charging mcp mcp-server ochp protocol sdk typescript
Last synced: about 2 months ago
JSON representation
OCHP MCP Server - AI MCP Server Implementation for EV Charging Open Clearing House Protocol
- Host: GitHub
- URL: https://github.com/andreibesleaga/ochp-mcp
- Owner: andreibesleaga
- License: apache-2.0
- Created: 2025-07-11T08:22:54.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2026-03-18T17:26:07.000Z (3 months ago)
- Last Synced: 2026-03-19T06:37:34.355Z (3 months ago)
- Topics: ai, ev, ev-charging, mcp, mcp-server, ochp, protocol, sdk, typescript
- Language: TypeScript
- Homepage:
- Size: 1.41 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OCHP MCP Server
A Model Context Protocol (MCP) server implementation for OCHP (Open Clearing House Protocol) services, enabling AI assistants to interact with EV charging infrastructure.
## Features
- **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
## Quick Start
1. **Install dependencies:**
```bash
npm install
```
2. **Configure environment:**
```bash
cp .env.example .env
# Edit .env with your OCHP credentials
```
3. **Build and run:**
```bash
npm run build
npm start
```
## Configuration
Required environment variables in `.env`:
```bash
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
```
## Claude Desktop Integration
Add to your Claude Desktop configuration:
```json
{
"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"
}
}
}
}
```
## Available Tools
### Authorization Management
- `ochp_get_roaming_authorization_list` - Retrieve authorization data
- `ochp_set_roaming_authorization_list` - Update authorization data
- `ochp_get_single_roaming_authorization` - Get specific authorization
### Charge Point Management
- `ochp_get_charge_point_list` - Retrieve charge point information
- `ochp_set_charge_point_list` - Update charge point data
### Status Management
- `ochp_get_status` - Get EVSE status information
- `ochp_update_status` - Update EVSE status
### CDR Management
- `ochp_get_cdrs` - Retrieve charge detail records
- `ochp_add_cdrs` - Submit new CDRs
### OCHP-Direct Control
- `ochp_direct_select_evse` - Reserve EVSE for charging
- `ochp_direct_control_evse` - Start/stop/modify charging session
- `ochp_direct_release_evse` - Release EVSE reservation
## Available Resources
- `ochp://authorization-list` - Complete authorization data
- `ochp://charge-points` - Charge point information
- `ochp://evse-status` - Real-time EVSE status
- `ochp://cdrs` - Historical charging data
- `ochp://wsdl-definitions` - WSDL service definitions
## Usage Examples
### Get Authorization List
```json
{
"name": "ochp_get_roaming_authorization_list",
"arguments": {
"lastUpdate": "2024-01-01T00:00:00Z"
}
}
```
### Set Charge Point
```json
{
"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"
}
]
}
}
```
### Direct EVSE Control
```json
// 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
}
}
```
## Development
### Project Structure
```
src/
├── server.ts # Main MCP server
├── clients/ # OCHP SOAP clients
├── handlers/ # Request handlers
├── types/ # TypeScript definitions
├── utils/ # Utilities and validation
└── config/ # Configuration management
```
### Commands
```bash
npm run dev # Development mode
npm run build # Build TypeScript
npm test # Run tests
npm run lint # Lint code
npm run format # Format code
```
## Protocol Support
- **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
## Requirements
- Node.js 18+
- OCHP service access
- WSDL files (included)
- Valid API credentials
## License
Apache 2.0 License