Balena MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BALENA_API_TOKEN | Yes | Your Balena API token. Required for all operations. | |
| MCP_HTTP_AUTH_TOKEN | No | Token for clients connecting over HTTP mode. Required if using Streamable HTTP. | |
| MCP_HTTP_ALLOWED_HOSTS | No | Comma-separated list of allowed hostnames for HTTP mode (e.g., 'example.com,localhost,127.0.0.1'). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| balena_whoamiA | Show the Balena account associated with the API token. |
| balena_query_resourceB | Read a page of a documented Balena v7 OData resource. This tool never changes data. API keys and SSH keys are excluded. |
| balena_list_organizationsA | List organizations visible to the API token. |
| balena_list_fleetsA | List fleets associated with the authenticated user, excluding unrelated public fleets. |
| balena_list_releasesB | List releases for a fleet. |
| balena_list_servicesC | List services for a fleet. |
| balena_list_teamsA | List teams visible to the API token. |
| balena_list_team_membershipsC | List members of a team. |
| balena_list_organization_membershipsC | List members of an organization. |
| balena_list_device_typesB | List supported Balena device types. |
| balena_list_devicesC | List devices, optionally restricted to one fleet. |
| balena_get_deviceA | Get one device by numeric ID, including its current status. |
| balena_get_fleetA | Get one fleet by numeric ID. |
| balena_get_releaseA | Get one release by numeric ID. |
| balena_get_organizationA | Get one organization by numeric ID. |
| balena_get_teamB | Get one team by numeric ID. |
| balena_create_fleetB | Create a fleet in an organization for a device type. |
| balena_rename_fleetC | Rename a fleet. |
| balena_set_fleet_releaseA | Pin an entire fleet to a release. This changes the target for all unpinned devices; confirm the fleet and release first. |
| balena_delete_fleetA | Permanently delete a fleet. Review its devices before confirming. |
| balena_rename_deviceB | Rename a device. |
| balena_set_device_noteC | Set a device note. |
| balena_pin_device_releaseB | Pin a device to a release, or pass null to return to fleet tracking. |
| balena_move_deviceA | Move a device to a different fleet. Confirm the destination fleet first. |
| balena_delete_deviceA | Permanently delete a device from Balena. |
| balena_set_release_noteC | Set the note on a release. |
| balena_list_variablesC | List environment or config variables for a fleet, device, service, or service installation. |
| balena_create_variableB | Create a named environment or config variable. Values may contain secrets; do not repeat them in chat. |
| balena_update_variableC | Update the value of an existing variable by ID. |
| balena_delete_variableA | Delete one environment or config variable by ID. |
| balena_list_tagsA | List tags attached to a device, fleet, or release. |
| balena_create_tagB | Add a tag to a device, fleet, or release. |
| balena_update_tagC | Update a tag value by tag ID. |
| balena_delete_tagA | Delete one tag by ID. |
| balena_create_teamA | Create a team in an organization. |
| balena_delete_teamB | Permanently delete a team. |
| balena_add_team_memberB | Add a user to a team by numeric user ID. |
| balena_remove_team_memberC | Remove one team membership by numeric membership ID. |
| balena_add_organization_memberC | Add a user to an organization with a membership role ID. |
| balena_remove_organization_memberA | Remove one organization membership by numeric membership ID. |
| balena_find_device_by_nameB | Find devices by exact name with safe OData quoting. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 41 tools
Most tools are clearly scoped to a single resource and action, such as list_fleets, create_tag, or pin_device_release, so an agent can usually tell them apart. The main ambiguity is balena_query_resource, which overlaps with every specific list/get tool, and the release-pinning tools also require careful reading.
All tools share a consistent balena_ prefix and mostly follow a verb_noun snake_case pattern, which makes the set predictable. Minor inconsistencies between add and create, or update and set, are present but do not seriously harm usability.
At 41 tools, the surface is well beyond the typical well-scoped range and will present agents with a long selection list. The generic query_resource tool also makes many of the specialized list/get tools feel like optional convenience wrappers rather than essential additions.
The set covers the main Balena workflows well: organizations, teams, fleets, devices, releases, tags, and variables, with solid CRUD-style coverage for tags and variables. Notable gaps such as organization creation, release deletion, and remote device actions are noticeable but not fatal to the core management workflow.