Generating from the API means nothing is missing — including the create, update and delete operations on every resource, which is worth a deliberate decision before connecting a model to a live fleet. It also means a large surface: start from the tool-listing utility rather than trying to hold 157 names in mind. The selector syntax is the part that repays reading, since it is the difference between pulling one truck's messages and pulling the whole fleet's.
An MCP server covering the Flespi telematics platform, with the tool surface generated from the API rather than hand-picked. Every Flespi resource — the devices that report position, the channels that receive protocol traffic, the streams that forward it, the calculators that turn it into reports — is addressable, with schemas validated on the way in.
- 157 tools in total: 155 generated API operations plus 2 utilities
- A predictable naming scheme, so a tool name follows from the HTTP method and the resource — `flespi_get_devices` lists devices, `flespi_post_devices` creates them, `flespi_get_devices_messages` pulls their telemetry, `flespi_put_channels` updates a channel, `flespi_delete_streams` removes a stream
- The full resource set: tracking devices, protocol input channels, outbound data streams, the calculators that produce analytics and reports, assets as virtual multi-device entities, plugins, geofences for geospatial analysis, groups for bulk management, and modems for sending SMS and commands
- Flespi selectors as first-class arguments, so a query targets what you mean — all devices, specific ids, an IMEI, a name pattern with wildcards, only the connected ones, or everything in a group
- Field selection on reads, so a message query can ask for just timestamp, position and speed instead of the whole record
- A discovery tool that lists every available tool with its category, and one that returns the platform's protocols and device types — `flespi_list_tools`, `flespi_get_protocols`
- Documentation carried in the schemas: 77 global parameters and 38 specialized selectors with usage examples
A Flespi account and a token created in the Tokens section of your dashboard, scoped to the permissions you want. The token is not an environment variable — every tool takes a `token` argument, so it is passed per call. Node.js; clone the repository, `npm install`, and point your client at `server.js` with node, setting the working directory to the project. The package is `flespi-mcp-server` (1.0.0 in package.json). An internet connection is required, and Flespi's own API limits apply.
Build from source — clone the repository and build it, then point your client at the binary
