teltonika-rms-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@teltonika-rms-mcpgive me a summary of my RMS fleet and list any devices that are offline"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
teltonika-rms-mcp
An unofficial, community-built Model Context Protocol (MCP) server that lets AI agents (Claude Desktop, Claude Code, or any MCP-compatible client) query and operate a fleet of Teltonika devices through the RMS (Remote Management System) API.
Not affiliated with, endorsed by, or supported by Teltonika. This is a personal side project, shared as an example to inspire others to build better ones. "Teltonika" and "RMS" are trademarks of their respective owners. Use it at your own risk, and test it on a non-production company or a few test devices first.
Why
RMS already has a well-documented REST API. MCP is the missing glue that lets an agent use it in plain language:
"Which devices in company X were offline today, and what was their signal?"
"Give me a firmware summary of the fleet and list the devices that aren't on the latest version."
"How much mobile data did Pump-02 use last month on each SIM?"
"Reboot Gateway-A." (the agent shows you the device and asks before doing it)
Related MCP server: central-mcp-server
Tools
Tool | Type | What it does |
| read | Search and paginate devices (free text, company, raw RMS filters) |
| read | Full details of one device |
| read | Whether devices are online in RMS right now (via |
| read | Per-SIM TX/RX data usage over a date range |
| read | Recent RMS alerts |
| read | Companies / sub-companies visible to the token |
| read | Device tags |
| read | Online/offline counts, devices per model and firmware, weak-signal list |
| read | Read-only GET on any RMS API path, for endpoints without a dedicated tool |
| write | Reboots a device in two steps: a preview first, then the reboot only with |
Read tools are annotated readOnlyHint, and reboot_device is annotated destructiveHint, so MCP clients can ask for approval before running it.
Read-only mode: set RMS_READ_ONLY=true and reboot_device is not registered at all.
Quick start
1. Create an RMS API token
In RMS, go to Account settings → Security and enable two-factor authentication, which RMS requires before you can create tokens. Then go to API → Access tokens → Add new access token.
Grant only the scopes you need:
Scope (as listed in RMS) | Needed for |
| device tools, status, data usage, fleet summary |
read scopes for alerts, companies and tags |
|
the device write / commands scope |
|
The token is shown only once, so store it safely. Exact scope names can vary between RMS releases; pick them from the list in the RMS UI. If a tool returns HTTP 403, the token is missing the scope for that call.
2. Install
git clone https://github.com/marceloiamunoz/Teltonika_RMS_MCP4IA_example.git
cd Teltonika_RMS_MCP4IA_example
pip install -e . # or: uv pip install -e .Requires Python 3.10+.
3. Connect it to Claude Desktop
Add this to claude_desktop_config.json (see examples/claude_desktop_config.json):
{
"mcpServers": {
"teltonika-rms": {
"command": "teltonika-rms-mcp",
"env": {
"RMS_API_TOKEN": "paste-your-token-here",
"RMS_READ_ONLY": "true"
}
}
}
}Restart Claude Desktop and ask: "Give me a summary of my RMS fleet."
Using Claude Code:
claude mcp add teltonika-rms --env RMS_API_TOKEN=xxx --env RMS_READ_ONLY=true -- teltonika-rms-mcpConfiguration
Variable | Default | Description |
| — (required) | RMS Personal Access Token |
|
|
|
|
| Override the API endpoint |
|
| HTTP timeout in seconds |
|
|
|
How it works
AI agent ──MCP──▶ teltonika-rms-mcp ──HTTPS + Bearer token──▶ RMS APIPagination: list tools take
limit/offset, andfleet_summarywalks all pages up to a safety cap.Rate limits and transient errors: HTTP 429 and 5xx responses are retried with backoff, honouring
Retry-After.Async operations: some RMS actions return a
meta.channelinstead of a result. The client polls/status/channel/{channel}until the operation finishes, so the agent gets a single final answer.Errors are returned as readable messages with hints, for example a 403 that names the missing scope.
Known limitations
This is a prototype. Contributions are welcome.
Endpoint coverage is intentionally small. Use
rms_getto explore more endpoints, then promote the useful ones to proper tools.reboot_deviceruns therebootcommand throughPOST /devices/{id}/command. A timeout in the result is expected, because the device drops its connection while it reboots.Field names in device payloads vary across models and RMS versions.
fleet_summarytries several candidate keys for model, firmware, status and signal.On a device,
connection_stateis the last known mobile connection state, not whether RMS can reach the device right now. Useget_device_statusfor that.So far the test suite runs only against a mocked RMS. Reports from real fleets are very welcome.
Ideas for contributors
More tools: device location, firmware update, config profiles, RMS Connect and remote-access links, hotspots, VPN hubs.
OAuth2 support for multi-user and remote deployments.
MCP resources for fleet snapshots, and prompts such as a "daily fleet health report".
Batch actions with a dry-run preview and per-device confirmation.
Development
pip install -e ".[dev]"
pytest
ruff check .The tests run a real in-memory MCP client session against a fake RMS API, so no token is needed.
Security notes
Prefer a dedicated token with minimal scopes and, where possible, scoped to a single company.
Start with
RMS_READ_ONLY=true.Never commit your token.
.envis git-ignored.An agent with write tools can affect real devices in the field. Keep a human in the loop.
License
MIT © Marcelo Muñoz
This server cannot be deployed
Maintenance
Related MCP Connectors
Give AI agents secure access to RevDesk calling, SMS, phone numbers, caller IDs, and usage.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to interact with ManageEngine OpManager for network monitoring and IT operations management. Provides credential-less access to 85+ API endpoints for managing devices, alarms, discovery, dashboards, and reports through natural language.852MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to query HPE Aruba Networking Central data (sites, devices, clients, alerts, events) through natural language.56 PyPI7MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage Cisco Meraki networks through natural language, including organizations, networks, devices, switches, wireless, and appliances.1GPL 3.0
- FlicenseAqualityCmaintenanceEnables AI agents to query orders, manage routes, track drivers, and analyze delivery performance on the FleetSync last-mile delivery platform through natural language.18-