Skip to main content
Glama
nuxnik

Busy Bar MCP Server

by nuxnik

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BUSYBAR_BASE_URLYesIP address or hostname of the Busy Bar device (no protocol prefix)
BUSYBAR_API_TOKENYesAPI auth token for authenticating with the Busy Bar device

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_account_infoA

Retrieve linked account information from the Busy Bar device.

This tool queries GET /api/account/info via `AccountApi.get_account_info()` to get
details about the account currently linked to the Busy Bar unit.

Returns an AccountInfo object containing:
    - linked (bool): Whether the device is linked to a busy bar account
    - id (str): The unique account identifier (UUID)
    - email (str): The email address associated with the account
    - user_id (str): The user identifier (UUID)

Use case:
    Verify an account is properly linked and inspect the associated email before
    performing account-specific operations like displaying messages or notifications.
get_account_statusA

Retrieve MQTT connection status for the linked account from the Busy Bar device.

This tool queries GET /api/account/status via `AccountApi.get_account_status()` to
learn whether the device's MQTT client is actively connected to the busy bar server.

Returns an AccountStatus object containing:
    - status (str): Connection state, one of "connected", "disconnected", or "error"

Use case:
    Check MQTT connectivity before pushing data that requires cloud sync; if the
    account is not connected, queue operations locally until reconnection.
get_account_backendA

Retrieve MQTT backend configuration for the linked account from the Busy Bar device.

This tool queries GET /api/account/backend via `AccountApi.get_account_backend()` to
inspect how the device is configured to reach the busy bar server over MQTT.

Returns an AccountBackend object containing:
    - server_url (str): MQTT server URL to connect to (e.g., "default", "mqtts://mqtt.example.com:8883")
    - client_cert_type (str): Client certificate type, one of "default", "custom", or "none"
    - ignore_server_cert (bool): Whether to ignore the server certificate during TLS handshake

Use case:
    Inspect backend configuration during MQTT troubleshooting; confirm the server URL
    and certificate settings match expectations.
get_busy_snapshotA

Retrieve the current BUSY timer snapshot from the Busy Bar device.

This tool queries GET /api/busy/snapshot via `BusyApi.get_busy_snapshot()` to
return the current BUSY timer state including active profile and timing details.

Returns a BusySnapshot object containing:
    - snapshot (BusySnapshotSnapshot): The busy snapshot data — varies by type:
        - BusySnapshotSimple: started (bool), remaining_ms (int)
        - BusySnapshotInterval: started, remaining_ms, interval_index, intervals_count
        - BusySnapshotInfinite: started (bool)
        - BusySnapshotNotStarted: fields not applicable
    - snapshot_timestamp_ms (int): Timestamp of the snapshot in milliseconds since epoch

Use case:
    Check what BUSY timer profile is currently active and how much time remains
    before scheduling display messages or other operations around the timer.
get_ble_statusA

Retrieve BLE module status from the Busy Bar device.

This tool queries GET /api/ble/status via `BLEApi.get_ble_status()` to return
the current Bluetooth Low Energy module state.

Returns a BleStatusResponse object containing:
    - status (str): Current BLE status string (e.g., "powered_on", "powered_off")
    - address (str | null): BLE MAC address if available

Use case:
    Verify the BLE module is powered on and has a valid address before attempting
    Bluetooth operations like smart home pairing or device discovery.
get_http_accessA

Retrieve HTTP access configuration from the Busy Bar device.

This tool queries GET /api/access via `SettingsApi.get_http_access()` to obtain
the current HTTP API key management mode and validity state.

Returns an HttpAccessInfo object containing:
    - mode (str): HTTP access mode — one of "default", "custom_key", or "disabled"
    - key_valid (bool): Whether the configured key is currently valid

Use case:
    Inspect HTTP access configuration before deploying tools that rely on the device's
    HTTP API (e.g., remote messaging) to confirm the key setup is correct.
get_device_nameA

Retrieve the device name configured on the Busy Bar device.

This tool queries GET /api/name via `SettingsApi.get_name()` to obtain
the human-readable name currently set for this unit.

Returns a NameInfo object containing:
    - name (str): The device name (e.g., "My Busy Bar")

Use case:
    Confirm or audit the display name shown on the device, especially useful in
    multi-device setups where each unit needs an identifiable label.
get_display_brightnessA

Retrieve the display brightness setting from the Busy Bar device.

This tool queries GET /api/display/brightness via `SettingsApi.get_display_brightness()`
to obtain the current screen brightness level.

Returns a DisplayBrightnessInfo object containing:
    - value (int): Brightness level as an integer percentage or stepped value

Use case:
    Check brightness before adjusting display behavior, or audit settings during
    device configuration management.
get_audio_volumeA

Retrieve the audio volume setting from the Busy Bar device.

This tool queries GET /api/audio/volume via `SettingsApi.get_audio_volume()`
to obtain the current volume level configuration.

Returns an AudioVolumeInfo object containing:
    - volume (int): Volume level as an integer value

Use case:
    Check or audit volume settings before playing audio notifications or tones;
    useful for confirming device is configured at an audible level.
get_smart_home_pairing_statusA

Retrieve smart home commissioning (pairing) status from the Busy Bar device.

This tool queries GET /api/smart_home/pairing via `SmartHomeApi.get_smart_home_commissioning_status()`
to learn how many Matter fabric entries exist and the latest pairing outcome.

Returns a SmartHomePairingInfo object containing:
    - fabric_count (int): Number of commissioned Matter fabrics
    - latest_pairing_status (str | null): Status of the most recent pairing attempt
        (e.g., "success", "failure", or null if no attempt yet)

Use case:
    Verify smart home device commissioning state before troubleshooting connectivity,
    confirming pairings, or starting a new setup flow.
get_smart_home_switch_stateA

Retrieve smart home switch (output) state from the Busy Bar device.

This tool queries GET /api/smart_home/switch via `SmartHomeApi.get_smart_home_switch_state()`
to read the current relay/driver output configuration.

Returns a SmartHomeSwitchState object containing:
    - state (str): Current switch/output state (e.g., "on", "off")
    - startup (str | null): Startup behavior — what the switch does on power-on
        (e.g., "restore", "on", "off", "unknown")

Use case:
    Check whether a smart home relay is currently active or inspect its configured
    startup behavior to avoid unexpected device activation after power events.
list_storage_filesA

List files and directories stored on the Busy Bar device at a given path.

This tool calls `StorageApi.list_storage_files(path)` to enumerate the directory
contents on the device's internal storage for the specified path.

Args:
    path: The directory path to list (e.g., "/", "/photos"). Defaults to "/".

Returns a StorageList object containing:
    - A list of StorageListElement objects, each with:
        - type (str): File type — "file" or "dir"
        - name (str): Name of the file or directory

Use case:
    Browse device storage to find files before uploading, downloading, or managing
    media assets for display on the Busy Bar unit.
get_storage_statusA

Retrieve storage capacity information from the Busy Bar device.

This tool queries GET /api/storage/status via `StorageApi.get_storage_status()`
to learn current flash storage usage and available space.

Returns a StorageStatus object containing:
    - used_bytes (int): Bytes currently used on the device storage
    - free_bytes (int): Bytes available for writing
    - total_bytes (int): Total capacity of the storage

Use case:
    Check available storage before uploading files or media to confirm there is
    sufficient space, and monitor storage consumption over time.
get_api_versionA

Retrieve the API version information supported by the Busy Bar device.

This tool queries /api/version on the device to learn which set of API
operations are available.  Returns the full version response including
api_semver and any other metadata the device exposes.

Returns a VersionInfo object containing:
    - api_semver (str): API SemVer string (e.g., "0.0.0")

Use case:
    Call this first when building integrations to verify API compatibility
    with the connected Busy Bar unit before issuing further commands.
get_transportA

Retrieve the current network transport type used by the Busy Bar device.

This tool queries /api/transport on the device.  The returned information
describes how the MCP server is communicating with the Busy Bar hardware —
typically "usb" (USB ethernet) or "wifi" (Wi-Fi).

Use case:
    Diagnose connectivity path issues; shows whether the device is reachable
    via USB network interface or a Wi-Fi connection.
get_device_statusA

Retrieve the current device status from the Busy Bar device.

This tool queries GET /api/status via `SystemApi.get_status()` and returns a comprehensive
overview of whether the device is online and healthy.  The response bundles four sub-objects:
device, firmware, system, and power.

Returns a Status object containing:
    - device (StatusDevice): Hardware identifiers — serial_number, usb_mac, wifi_mac,
      ble_mac, otp_valid, otp_model, otp_timestamp, firmware_security
    - firmware (StatusFirmware): Firmware details — version, target, branch, build_date,
      commit_hash, intercom_version, nwp_version, matter_version
    - system (StatusSystem): System metrics — api_semver, uptime, boot_time, auto_update_enabled
    - power (StatusPower): Power state — state (discharging/charging/charged), battery_charge
      (int %), battery_voltage (mV), battery_current (mA), usb_voltage (mV)

Use case:
    A quick health-check to confirm the device is reachable and in a valid
    operational state before issuing other commands.
get_device_infoA

Retrieve detailed hardware and identification info about the Busy Bar device.

This tool queries GET /api/status/device via `SystemApi.get_status_device()` to obtain
physical identifiers and manufacturing details of the unit.

Returns a StatusDevice object containing:
    - serial_number (str): Device serial number
    - usb_mac (str): MAC address of the USB ethernet interface
    - wifi_mac (str): Wi-Fi MAC address
    - ble_mac (str): Bluetooth Low Energy MAC address
    - otp_valid (bool): Whether OTP data has been programmed and is valid
    - otp_model (str): Device model code (e.g., "BB.1")
    - otp_timestamp (int): Production timestamp as Unix epoch seconds
    - firmware_security (str): Firmware signature protection state — one of "secure",
      "insecure", "other", or "unknown"

Use case:
    Inventory tracking, device identification in multi-device setups, or
    troubleshooting hardware-specific issues.
get_firmware_infoA

Retrieve firmware version details from the Busy Bar device.

This tool queries GET /api/status/firmware via `SystemApi.get_status_firmware()` to get
information about the firmware currently installed on the unit.

Returns a StatusFirmware object containing:
    - version (str): Firmware version string (e.g., "1.0.0")
    - target (int): Firmware target code
    - branch (str): Git branch name the firmware was built from
    - build_date (str): Build date (e.g., "2024-01-01")
    - commit_hash (str): Git commit hash, may include a "-dirty" suffix
    - intercom_version (str): Intercom handshake version string
    - nwp_version (str): Radio firmware / NWP version (e.g., "1711.2.14.5.2.0.7")
    - matter_version (str): Matter framework version (e.g., "1.0")

Use case:
    Verify which firmware revision is running on a unit before deploying
    updates or diagnosing firmware-related bugs.
get_system_statusA

Retrieve detailed system metrics from the Busy Bar device.

This tool queries GET /api/status/system via `SystemApi.get_status_system()` to get
runtime resource usage and health information.

Returns a StatusSystem object containing:
    - api_semver (str): API SemVer string (e.g., "0.0.0")
    - uptime (str): System uptime as a human-readable duration (e.g., "00d 00h 04m 13s")
    - boot_time (int): System boot timestamp as Unix epoch seconds
    - auto_update_enabled (bool): Whether automatic firmware updates are enabled

Use case:
    Monitor available system resources before performing heavy operations (e.g. large
    file uploads or firmware updates) to avoid exhausting the device.
get_power_statusA

Retrieve power/battery status from the Busy Bar device.

This tool queries GET /api/status/power via `SystemApi.get_status_power()` to check
the current battery and charging state of the unit.

Returns a StatusPower object containing:
    - state (str): Power state — one of "discharging", "charging", or "charged"
    - battery_charge (int): Battery charge level as a percentage (0–100)
    - battery_voltage (int): Battery voltage in millivolts (e.g., 4183 mV)
    - battery_current (int): Battery current in milliamperes; negative means discharging
    - usb_voltage (int): USB input voltage in millivolts (e.g., 4843 mV)

Use case:
    Check battery health before operations that consume significant power;
    alert users when the device needs to be plugged in.
get_timeA

Retrieve the current timestamp from the Busy Bar device's real-time clock.

This tool queries /api/time on the device and returns the current date and time
in ISO 8601 format with timezone information (e.g., '2025-10-02T14:30:45+04:00').

Returns a TimestampInfo object containing:
    - timestamp: str  — the current UTC/RFC timestamp in ISO 8601 format

Use case:
    Querying the device's clock as an authoritative time source for scheduling,
    logging, or coordinating events with BUSY timer profiles.
get_timezoneA

Retrieve the current timezone configured on the Busy Bar device.

This tool queries /api/time/timezone on the device and returns the currently
active timezone configuration including the display name, UTC offset, and
abbreviation.

Returns a TimezoneInfo object containing:
    - name:  str  — human-readable timezone name (e.g., 'America/New_York')
    - offset: str — UTC offset string (e.g., '-05:00', '+05:30')
    - abbr:   str — timezone abbreviation (e.g., 'EST', 'IST')

Use case:
    Checking which timezone the device is configured to so you can display
    times correctly or decide whether an update is needed.
get_tzlistA

Retrieve the full list of supported timezones from the Busy Bar device.

This tool queries /api/time/tzlist on the device and returns every timezone
that can be used with the set_timezone functionality (/api/time/timezone POST).

Returns a TimezoneListResponse object containing:
    - list:  list[TimezoneInfo]  — an array of available timezones, each with:
        - name:  str  — human-readable timezone name (e.g., 'America/New_York')
        - offset: str — UTC offset string (e.g., '-05:00', '+05:30')
        - abbr:   str — timezone abbreviation (e.g., 'EST', 'IST')

Use case:
    Browsing the available timezones before choosing one to apply via set_timezone.
    Useful for building a UI dropdown or confirming that a specific named timezone is supported.
get_firmware_update_statusA

Retrieve firmware update state from the Busy Bar device.

This tool queries GET /api/update/status via `UpdaterApi.get_firmware_update_status()`
to learn about the current and pending firmware states.

Returns an UpdateStatus object containing:
    - install (UpdateStatusInstall): The currently installed firmware info — version, etc.
    - check (UpdateStatusCheck): Status of the latest automatic or manual update check

Use case:
    Verify which firmware is running and whether a new update has been detected but
    not yet installed — useful for maintenance and rollout planning.
get_update_changelogA

Retrieve the changelog for a specific firmware version from the Busy Bar device.

This tool queries GET /api/update/changelog via `UpdaterApi.get_update_changelog(version)`
to obtain release notes and change details for the given firmware version.

Args:
    version: The firmware version string to fetch the changelog for (e.g., "1.0.0").

Returns a GetUpdateChangelog200Response object containing:
    - changelog (str): Human-readable release notes and change log text

Use case:
    Review what changed in a specific firmware revision before deploying updates,
    or compare versions to understand new features and bug fixes.
get_autoupdate_settingsA

Retrieve automatic firmware update settings from the Busy Bar device.

This tool queries GET /api/update/autoupdate via `UpdaterApi.get_autoupdate_settings()`
to obtain the current autoupdate configuration.

Returns an AutoupdateSettings object containing:
    - is_enabled (bool): Whether automatic updates are enabled
    - interval_start (str): Start of the update window (e.g., "02:00")
    - interval_end (str): End of the update window (e.g., "04:00")

Use case:
    Confirm when or whether firmware updates happen automatically, to avoid unexpected
    reboots during active usage or schedule maintenance around the update window.
get_wifi_statusA

Retrieve Wi-Fi connection status from the Busy Bar device.

This tool queries GET /api/wifi/status via `WiFiApi.api_wifi_status_get()` to obtain
the current network connection details on the Wi-Fi interface.

Returns a StatusResponse object containing:
    - state (str): Connection state — e.g., "connected", "disconnected"
    - ssid (str | null): SSID of the connected access point
    - bssid (str | null): MAC address of the connected access point
    - channel (int): Wi-Fi channel number (e.g., 1, 6, 36)
    - rssi (int): Received signal strength indicator in dBm (negative value)
    - security (str): Security type — e.g., "open", "wpa2", "wpa3"
    - ip_config (StatusResponseIpConfig): IP configuration including:
        - method (WifiIpType): How the IP was obtained ("dhcp" or "static")

Use case:
    Diagnostics for network troubleshooting — verify SSID, signal strength, security
    type, and IP assignment before debugging connectivity issues.
get_wifi_networksA

Retrieve currently scanned Wi-Fi networks from the Busy Bar device.

This tool queries GET /api/wifi/networks via `WiFiApi.get_wifi_networks()` to obtain
the latest scan results of available wireless access points in range.

Returns a NetworkResponse object containing:
    - count (int): Number of networks found in the scan
    - networks (list[Network]): Array of network entries, each with SSID, BSSID, RSSI,
      channel, security method, and frequency band information

Use case:
    Browse available Wi-Fi networks before switching the Busy Bar to a different
    access point or confirming signal quality at a new location.

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/nuxnik/busybar-mcp'

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