Skip to main content
Glama
oliveres

chirpstack-mcp-server

by oliveres

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CHIRPSTACK_TLSNoUse TLS instead of plain HTTP/2false
CHIRPSTACK_SERVERYeshost:port of the ChirpStack API (the web-UI port, usually 8080)
CHIRPSTACK_API_KEYYesAPI key from ChirpStack → API keys (tenant or global admin)
CHIRPSTACK_TOOLSETSNoComma-separated toolsets, or 'all'devices,debug,applications,profiles,gateways
CHIRPSTACK_HTTP_PORTNoPort for streamable-http (bound to 127.0.0.1)8000
CHIRPSTACK_TRANSPORTNoTransport mode: stdio or streamable-httpstdio

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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
device_listA

List devices in an application (optionally filtered by a search string).

device_getA

Get a device with its current activation (session) and, if include_keys, its OTAA root keys. include_keys also reveals the session keys in activation.

device_createA

Create a device. Set OTAA keys afterwards with device_set_keys, or ABP session with device_activate.

device_updateA

Update only the given fields of a device; omitted fields keep their current values. Supplying tags replaces the whole tag map. Supplying variables replaces the whole variable map.

device_deleteA

Delete a device and everything ChirpStack stores about it.

device_set_keysA

Create or replace the OTAA root keys. LoRaWAN 1.0.x devices use nwk_key only (their AppKey goes in nwk_key).

device_activateA

ABP-activate a device (or reset an OTAA session). For LoRaWAN 1.0.x pass nwk_s_enc_key only; the other two network keys default to it.

device_deactivateA

Drop the device session; an OTAA device must re-join before it can communicate.

device_flush_dev_noncesA

Forget used DevNonces so a device whose join-requests are rejected as replays can join again.

device_enqueueA

Queue a downlink. Give the payload as data_hex, data_base64, or object (encoded by the profile codec). Class A devices receive it after their next uplink.

device_queue_getB

Show downlinks waiting for (or pending confirmation from) a device.

device_queue_flushB

Discard every queued downlink for a device.

device_metricsB

Link quality (RSSI, SNR, packets per frequency/DR, errors) plus codec-defined device metrics. Defaults to the last 24 hours.

server_infoA

Check the connection and the API key. Version and regions are only available to user sessions in ChirpStack, so they may be null/empty with an API key.

capture_startA

Start a background capture of a device's events/frames or a gateway's frames. Returns a session_id; read incrementally with capture_read. Sessions idle for 30 minutes are dropped.

capture_readA

Read captured items with seq > since_seq. Remember last_seq and pass it back next time. Check stream_state for reconnects. Each item carries live: false means ChirpStack replayed it from before the session started, true means it happened while the session was open.

capture_stopB

Stop a capture session and discard its buffer.

capture_listA

List capture sessions, including ones stopped by a terminal error (stream_state starts with stopped:).

wait_for_eventA

Block until the device emits a live event (optionally of the given types: up, join, ack, txack, log, status, location) or the timeout (max 60 s) passes. Only events newer than the moment of the call count (live); the events ChirpStack replays from its history never satisfy the wait, whatever their arrival timing. Use device_recent_events for those.

device_recent_eventsA

One-shot look at the last few events (or frames) ChirpStack still holds for a device - typically the last 10.

application_listA

List applications of a tenant.

application_getC

Get an application.

application_createB

Create an application in a tenant.

application_updateA

Update only the given fields of an application. Supplying tags replaces the whole tag map.

application_deleteA

Delete an application and all of its devices.

application_list_device_tagsA

List the distinct device tag keys and values used inside an application.

profile_listB

List device profiles of a tenant.

profile_getA

Get a device profile including its payload codec script.

profile_createA

Create a device profile from a dict of DeviceProfile fields (snake_case; enums by name, e.g. region "EU868", mac_version "LORAWAN_1_0_3", reg_params_revision "A"). Required: tenant_id, name, region, mac_version, reg_params_revision.

profile_updateA

Merge the given DeviceProfile fields into an existing profile; other fields are kept. Map and repeated fields you supply (e.g. tags, measurements) replace the whole field; omitted fields are kept.

profile_deleteA

Delete a device profile (fails while devices still use it).

profile_set_codecA

Replace only the payload codec of a profile. For runtime JS, script is required and must define decodeUplink(input) and may define encodeDownlink(input); use runtime NONE to turn the codec off. Iterate here while watching uplinks with capture_read.

profile_list_vendorsA

List vendors from the imported device-profile catalogue.

profile_list_adr_algorithmsA

List the ADR algorithms available on this server.

gateway_listA

List gateways (all tenants when tenant_id is empty and the key is a global admin key).

gateway_getC

Get a gateway with its last-seen time and location.

gateway_createA

Register a gateway; location is set only when coordinates are given.

gateway_updateA

Update only the given fields of a gateway. Supplying tags replaces the whole tag map.

gateway_deleteB

Delete a gateway.

gateway_metricsB

RX/TX packet counts per frequency, DR and status, plus duty-cycle usage. Defaults to the last 24 hours.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oliveres/chirpstack-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server