This guide will help you set up the Monta Partner API MCP server with Claude Desktop, giving Claude access to control EV charging infrastructure through Monta's API.
Time required: 2 minutes
Option A: Use Launcher Script (downloads latest from server)
Option B: Use Local Development Build (for testing unreleased changes)
npm run build:bundleSee detailed steps below:
This option downloads the latest stable release from the server.
Download the launcher script for your operating system:
Browser Download
Click to download the launcher script for your operating system:
Save to a location of your choice (e.g., ~/Development/monta-mcp.sh on macOS/Linux, or %USERPROFILE%\Documents\monta-mcp.bat on Windows).
macOS/Linux only: Make the script executable:
chmod +x ~/Development/monta-mcp.sh
Command Line Download
macOS/Linux:
curl -o ~/Development/monta-mcp.sh https://partner-api-mcp.monta.app/scripts/monta-mcp.sh
chmod +x ~/Development/monta-mcp.sh
Windows (PowerShell):
Invoke-WebRequest -Uri https://partner-api-mcp.monta.app/scripts/monta-mcp.bat -OutFile "$env:USERPROFILE\Documents\monta-mcp.bat"
The launcher script automatically:
Find your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonEdit the configuration file to add the Monta MCP server:
macOS/Linux:
{
"mcpServers": {
"monta-partner-api": {
"command": "/bin/bash",
"args": ["/Users/YOUR_USERNAME/Development/monta-mcp.sh"],
"env": {
"MONTA_CLIENT_ID": "your-client-id-here",
"MONTA_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
Windows:
{
"mcpServers": {
"monta-partner-api": {
"command": "cmd.exe",
"args": ["/c", "C:\\Users\\YOUR_USERNAME\\Documents\\monta-mcp.bat"],
"env": {
"MONTA_CLIENT_ID": "your-client-id-here",
"MONTA_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
⚠️ Important replacements:
YOUR_USERNAME with your actual usernameyour-client-id-here with your Monta Client IDyour-client-secret-here with your Monta Client Secret~ or %USERPROFILE% as they may not expand correctlyAlternative: Using Bearer Token
If you have a bearer token instead, replace the env section:
"env": {
"MONTA_BEARER_TOKEN": "your-bearer-token-here"
}
Quit and restart Claude Desktop to load the new configuration.
Use this option when you need to test unreleased changes or the production server hasn't been updated yet.
Clone the repository (if you haven't already):
git clone https://github.com/your-org/monta-partner-api-mcp.git
cd monta-partner-api-mcp
Install dependencies and build:
npm install
npm run build:bundle
This creates the bundle at bundle/monta-mcp-adapter.js.
Find your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonEdit the configuration file to point directly to the local bundle:
macOS/Linux:
{
"mcpServers": {
"monta-partner-api": {
"command": "node",
"args": ["/Users/YOUR_USERNAME/Development/monta-partner-api-mcp/bundle/monta-mcp-adapter.js"],
"env": {
"MONTA_CLIENT_ID": "your-client-id-here",
"MONTA_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
Windows:
{
"mcpServers": {
"monta-partner-api": {
"command": "node",
"args": ["C:\\Users\\YOUR_USERNAME\\Development\\monta-partner-api-mcp\\bundle\\monta-mcp-adapter.js"],
"env": {
"MONTA_CLIENT_ID": "your-client-id-here",
"MONTA_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
⚠️ Important replacements:
YOUR_USERNAME with your actual usernameyour-client-id-here with your Monta Client IDyour-client-secret-here with your Monta Client Secret~ or %USERPROFILE%Alternative: Using Bearer Token
If you have a bearer token instead, replace the env section:
"env": {
"MONTA_BEARER_TOKEN": "your-bearer-token-here"
}
Quit and restart Claude Desktop to load the new configuration.
Note: With this option, you'll need to manually rebuild the bundle (npm run build:bundle) whenever you make changes to the source code.
After restarting Claude Desktop, verify the integration is working:
/Users/username/Development/monta-mcp.sh) instead of ~/monta-mcp.shchmod +x /path/to/monta-mcp.sh (macOS/Linux)If you see a disconnected connector or Claude opens a browser:
If you see "No authentication credentials available":
Check Claude Desktop logs:
~/Library/Logs/Claude/mcp*.log%APPDATA%\Claude\logs\~/.config/Claude/logs/| Error | Solution |
|---|---|
| "Node.js not found" | Install Node.js 18+ from https://nodejs.org/ |
| "Permission denied" | Run chmod +x /path/to/monta-mcp.sh (macOS/Linux) |
| "Script not found" or "No such file or directory" | Use full absolute path in config (not ~), verify file exists |
| "401 Unauthorized" | Check your Monta API credentials |
| "Failed to download adapter" | Check internet connection and firewall settings |
| Module not found errors | Delete cached bundle and restart (script will re-download) |
chmod 600 claude_desktop_config.jsonThe MCP server works by:
https://partner-api-mcp.monta.app/mcp/bundle.jsOnce installed, you can use natural language with Claude:
"Show me all charge points"
"What's the status of charge point 123?"
"List teams I have access to"
"Start charging at charge point 456"
"Stop charging session 789"
"Show me active charging sessions"
"Get charging statistics for the last week"
"Update the price for charge point 123"
"Create a webhook for charging events"
Setup takes just 2 minutes:
https://partner-api-mcp.monta.app/scripts/monta-mcp.sh (or .bat for Windows)chmod +x /path/to/monta-mcp.shImportant: Always use full absolute paths in the Claude Desktop config (e.g., /Users/username/Development/monta-mcp.sh), not relative paths like ~/monta-mcp.sh.
The MCP server provides Claude with direct access to all Monta Partner API endpoints as native tools. The launcher script automatically keeps your adapter up to date.