nickknissen/monta-mcp
If you are the rightful owner of monta-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Monta MCP Server provides LLM-friendly access to the Monta EV charging API by wrapping the Monta Python SDK.
Monta MCP Server
An MCP (Model Context Protocol) server that wraps the Monta Python SDK to provide LLM-friendly access to the Monta EV charging API.
Features
This MCP server exposes the following tools for interacting with Monta's EV charging platform:
Architecture Highlights
- Efficient session management: Uses FastMCP's lifespan pattern to maintain a single persistent aiohttp session
- Connection pooling: Reuses HTTP connections across all tool invocations for optimal performance
- Type-safe context: All tools access shared resources through strongly-typed lifespan context
- Proper cleanup: Automatically closes sessions on server shutdown
- Robust error handling: State-changing operations include input validation, timeout protection (10s), and comprehensive error logging
Charge Point Management
get_charge_points- List all available charging stations with paginationget_charge_point- Get detailed information about a specific charging station
Charging Operations
get_charges- View charging history/sessions with filtering optionsstart_charge- Start a charging session at a specific charge pointstop_charge- Stop an active charging session
Wallet & Payments
get_personal_wallet- View wallet balance and payment informationget_wallet_transactions- Get transaction history with filtering
Prerequisites
- Python 3.11 or higher
- Monta API credentials (client ID and client secret)
uvpackage manager (recommended) orpip
Installation
Using uv (recommended)
git clone <repository-url>
cd monta-mcp
uv sync
Using pip
git clone <repository-url>
cd monta-mcp
pip install -e .
Configuration
The server requires Monta API credentials set as environment variables:
export MONTA_CLIENT_ID="your_client_id"
export MONTA_CLIENT_SECRET="your_client_secret"
Getting Monta public API Credentials
Visit Monta Public API Portal and follow the guide
Usage
Running the Server
The server can be run directly:
# Using the installed script (default log: ./monta-mcp.log)
monta-mcp
# With custom log file location
monta-mcp --log-file /path/to/custom.log
# With custom log level
monta-mcp --log-level DEBUG
# Or using Python module
python -m monta_mcp
Command-line Options:
--log-file PATH- Path to log file (default:./monta-mcp.log)--log-level LEVEL- Logging level: DEBUG, INFO, WARNING, ERROR (default: INFO)
Testing with MCP Inspector
You can test the server using the MCP Inspector tool:
npx @modelcontextprotocol/inspector monta-mcp
This will open a web interface where you can:
- View all available tools
- Test tool calls with different parameters
- See responses from the Monta API
Integrating with Claude Desktop
Add this configuration to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"monta": {
"command": "monta-mcp",
"env": {
"MONTA_CLIENT_ID": "your_client_id",
"MONTA_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Or if using uv:
{
"mcpServers": {
"monta": {
"command": "uv",
"args": ["run", "monta-mcp"],
"env": {
"MONTA_CLIENT_ID": "your_client_id",
"MONTA_CLIENT_SECRET": "your_client_secret"
}
}
}
}
With custom log location:
{
"mcpServers": {
"monta": {
"command": "uv",
"args": ["run", "monta-mcp", "--log-file", "/Users/you/logs/monta.log"],
"env": {
"MONTA_CLIENT_ID": "your_client_id",
"MONTA_CLIENT_SECRET": "your_client_secret"
}
}
}
}
After adding the configuration, restart Claude Desktop. The Monta tools will be available in your conversations.
Example Usage in Claude
Once configured, you can ask Claude things like:
- "Show me all my charging points"
- "Get details for charge point 12345"
- "What's my recent charging history?"
- "Check my wallet balance"
- "Start charging at station 12345"