Mmcp.market

ChirpStack MCP server

by oliveres·io.github.oliveres/chirpstack-mcp-server·v0.1.1

Manage and live-debug LoRaWAN devices on a ChirpStack v4 network server over its gRPC API

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

0 stars30 downloads/wk

Reviews

Write one

Nobody has reviewed ChirpStack yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

ChirpStack tools (81, 31 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • api_key_createwrite action

    Create an API key. The token is shown once, here; store it securely.

  • api_key_deletewrite action

    Revoke an API key.

  • api_key_list

    List API keys: names, ids, and permission/tenant metadata; tokens are never retrievable.

  • application_createwrite action

    Create an application in a tenant.

  • application_deletewrite action

    Delete an application and all of its devices.

  • application_get

    Get an application.

  • application_list

    List applications of a tenant.

  • application_list_device_tags

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

  • application_updatewrite action

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

  • capture_list

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

  • capture_read

    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_start

    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_stop

    Stop a capture session and discard its buffer.

  • device_activate

    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_createwrite action

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

  • device_deactivatewrite action

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

  • device_deletewrite action

    Delete a device and everything ChirpStack stores about it.

  • device_enqueue

    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_flush_dev_nonces

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

  • device_get

    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_list

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

  • device_metrics

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

  • device_queue_flush

    Discard every queued downlink for a device.

  • device_queue_get

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

  • device_recent_events

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

  • device_set_keyswrite action

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

  • device_updatewrite action

    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.

  • fuota_add_devices

    Add devices to a deployment.

  • fuota_createwrite action

    Create a FUOTA deployment from FuotaDeployment fields (snake_case, enums by name) plus the firmware as payload_hex or payload_base64. Byte fields (payload, fragmentation_descriptor) must come through payload_hex/payload_base64 and fragmentation_descriptor_hex, not `deployment`.

  • fuota_deletewrite action

    Delete a FUOTA deployment.

  • fuota_get

    Get a FUOTA deployment (payload is returned as hex).

  • fuota_list

    List FUOTA deployments of an application.

  • fuota_list_devices

    List devices in a deployment with their per-device progress.

  • fuota_list_jobs

    List the scheduler jobs of a deployment with attempts, warnings and errors.

  • fuota_remove_deviceswrite action

    Remove devices from a deployment.

  • fuota_start

    Start a FUOTA deployment (schedules the multicast setup, fragmentation and transfer jobs).

  • fuota_updatewrite action

    Merge fields and/or replace the firmware payload of a deployment that has not started yet. Byte fields (payload, fragmentation_descriptor) must come through payload_hex/ payload_base64 and fragmentation_descriptor_hex, not `changes`. Map and repeated fields you supply in `changes` replace the whole field; omitted fields are kept.

  • gateway_createwrite action

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

  • gateway_deletewrite action

    Delete a gateway.

  • gateway_get

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

  • gateway_list

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

  • gateway_metrics

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

  • gateway_updatewrite action

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

  • integration_deletewrite action

    Remove an integration from an application.

  • integration_get

    Get one integration's configuration. Stored credentials (tokens, passwords, header values, etc.) are redacted unless include_secrets is true.

  • integration_list

    List which integrations an application has configured. `manageable` says whether integration_get/set/delete accept that `kind`.

  • integration_setwrite action

    Create or update an integration.

  • multicast_add_device

    Add a device to a multicast group.

  • multicast_createwrite action

    Create a multicast group from MulticastGroup fields (snake_case; enums by name: region "EU868", group_type "CLASS_C").

  • multicast_deletewrite action

    Delete a multicast group.

  • multicast_enqueue

    Queue a multicast downlink (raw bytes only; multicast has no codec).

  • multicast_get

    Get a multicast group. include_keys also reveals mc_nwk_s_key/mc_app_s_key.

  • multicast_list

    List multicast groups of an application.

  • multicast_queue_flush

    Discard queued multicast downlinks.

  • multicast_queue_list

    Show queued multicast downlinks.

  • multicast_remove_devicewrite action

    Remove a device from a multicast group.

  • multicast_updatewrite action

    Merge the given MulticastGroup fields into an existing group; other fields are kept. Map and repeated fields you supply replace the whole field; omitted fields are kept. Session keys left as `<redacted>` (what multicast_get returns by default) keep the key already stored.

  • profile_createwrite action

    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_deletewrite action

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

  • profile_get

    Get a device profile including its payload codec script.

  • profile_list

    List device profiles of a tenant.

  • profile_list_adr_algorithms

    List the ADR algorithms available on this server.

  • profile_list_vendors

    List vendors from the imported device-profile catalogue.

  • profile_set_codec

    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_updatewrite action

    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.

  • relay_add_device

    Attach an end-device to a relay.

  • relay_gateway_get

    Get a relay gateway (4-byte relay id as hex).

  • relay_gateway_list

    List relay gateways of a tenant.

  • relay_list

    List devices acting as relays in an application.

  • relay_list_devices

    List end-devices attached to a relay.

  • relay_remove_devicewrite action

    Detach an end-device from a relay.

  • server_info

    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.

  • tenant_createwrite action

    Create a tenant (0 for a count means unlimited).

  • tenant_deletewrite action

    Delete a tenant and everything under it.

  • tenant_get

    Get a tenant.

  • tenant_list

    List tenants visible to the API key.

  • tenant_updatewrite action

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

  • tenant_user_add

    Give an existing user (by e-mail) a role in a tenant.

  • tenant_user_list

    List users of a tenant with their roles.

  • tenant_user_removewrite action

    Remove a user from a tenant (the user account itself is kept).

  • wait_for_event

    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.

Public scan report

scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it

no findings
  • Code scan24 source files scanned25/25
  • Live reliabilityno gateway calls yet and no remote to proben/a
  • Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 21 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

claude mcp add chirpstack-mcp-server -- uvx chirpstack-mcp-server
Add to Cursor

ChirpStack: common questions

Is ChirpStack MCP server safe?
Mostly: it is graded B (83/100). Read the ChirpStack safety report
How do I install ChirpStack?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does ChirpStack need an API key?
Yes. The registry entry asks for CHIRPSTACK_API_KEY.
Is ChirpStack maintained?
The last commit was 21 days ago (2026-08-30). The latest release is v0.1.1.

More from oliveres