eskomsepush-mcp
README.md
# ⚡ eskomsepush-mcp
> Model Context Protocol server for [EskomSePush](https://sepush.co.za) — bringing real-time South African load shedding data to Claude and any MCP-compatible AI client.
Built by a South African developer, for South Africans. Ask Claude about load shedding in plain language.
---
## What it does
| Tool | Description | Plan |
|---|---|---|
| `get_status` | Current national load shedding stage (Eskom + Cape Town) | Free ✅ |
| `check_allowance` | See how many API calls you have left today | Free ✅ |
| `search_areas` | Find your area ID by suburb or city name | Paid 💳 |
| `get_area_schedule` | Upcoming events and full schedule for your area | Paid 💳 |
| `get_areas_nearby` | Discover areas by GPS coordinates | Paid 💳 |
### Example prompts
- *"What stage are we on right now?"* → works on free plan
- *"How many API calls do I have left today?"* → works on free plan
- *"Is there load shedding in Stellenbosch tonight?"* → paid plan
- *"Show me the load shedding schedule for Sandton this week"* → paid plan
- *"Find load shedding areas near me"* (with GPS) → paid plan
---
## Prerequisites
- Node.js 18+
- An EskomSePush API token from [eskomsepush.gumroad.com/l/api](https://eskomsepush.gumroad.com/l/api)
### API Plan Requirements
EskomSePush operates a tiered API. The free tier returns **HTTP 410 Gone** on area-lookup endpoints — those require a paid subscription. This MCP server exposes the full tool surface regardless of plan; unsupported tools will surface the 410 as a clear error to the client.
| Plan | Cost | What works |
|---|---|---|
| Free | $0 via [Gumroad](https://eskomsepush.gumroad.com/l/api) | `get_status`, `check_allowance` |
| Paid | From $55/yr | All 5 tools |
---
## Installation
### Option 1 — npx (recommended)
```bash
npx eskomsepush-mcp
```
### Option 2 — Clone & build
```bash
git clone https://github.com/zukhanyendiki9-code/eskomsepush-mcp.git
cd eskomsepush-mcp
npm install
npm run build
```
---
## Configuration
### Claude Desktop
Add to your `claude_desktop_config.json`:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"eskomsepush": {
"command": "npx",
"args": ["-y", "eskomsepush-mcp"],
"env": {
"ESP_API_TOKEN": "your-api-token-here"
}
}
}
}
```
### Claude Code
```bash
claude mcp add eskomsepush -e ESP_API_TOKEN=your-token -- npx -y eskomsepush-mcp
```
### Cursor / Windsurf
```json
{
"mcpServers": {
"eskomsepush": {
"command": "npx",
"args": ["-y", "eskomsepush-mcp"],
"env": {
"ESP_API_TOKEN": "your-api-token-here"
}
}
}
}
```
---
## Development
```bash
npm run build # compile TypeScript
npm run dev # watch mode
npm run inspect # open MCP Inspector UI for testing
```
> **Tip:** Pass `test: true` to any tool during development — it returns mock data and doesn't count against your daily quota.
### Testing status
| Tool | Tested on free plan |
|---|---|
| `get_status` | ✅ |
| `check_allowance` | ✅ |
| `search_areas` | ⚠️ Requires paid plan |
| `get_area_schedule` | ⚠️ Requires paid plan |
| `get_areas_nearby` | ⚠️ Requires paid plan |
If you're on a paid plan and test any of the paid-tier tools, please open an issue or PR to confirm behaviour.
---
## API Quota
| Plan | Calls/day |
|---|---|
| Free | 50 |
| Paid | Higher limits |
Use the `check_allowance` tool to monitor your usage. Use `test: true` while building.
---
## Contributing
PRs welcome. If you're South African and have ideas for making this more useful, open an issue.
Join the EskomSePush developer community on [ZATech Slack](https://zatech.slack.com/) in `#eskomsepush`.
---
## License
MIT © [Zukanye Ndiki](https://github.com/zukhanyendiki9-code)
TDQS
A4.2/5.0
Scored across 5 tools
Disambiguation5/5
Each tool serves a distinct purpose: API allowance, area schedule, nearby areas, national status, and area search. No overlap in functionality.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern (check_allowance, get_area_schedule, get_areas_nearby, get_status, search_areas), using snake_case throughout.
Tool Count5/5
Five tools is well-scoped for the EskomSePush API domain, covering the essential operations without feeling thin or overloaded.
Completeness5/5
The tool set covers all core functionality of the EskomSePush API: status, area lookup, schedule, nearby search, and API quota checking. No obvious gaps.
Maintenance
ActivityInactive
ResponsivenessNo issues