Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging levelINFO
SENTRY_DSNNoSentry DSN for error tracking (optional)
LIBRENMS_URLYesURL of the LibreNMS instance (e.g., https://domain.tld:8443)
DISABLED_TAGSNoComma-separated list of tags to disable tools for
MCP_HTTP_HOSTNoHost to bind the HTTP server0.0.0.0
MCP_HTTP_PORTNoPort to bind the HTTP server8000
MCP_TRANSPORTNoTransport type: stdio, sse, or httpstdio
LIBRENMS_TOKENYesAPI token for LibreNMS authentication
READ_ONLY_MODENoSet true to disable all write operationsfalse
LIBRENMS_TIMEOUTNoConnection timeout in seconds30
RATE_LIMIT_ENABLEDNoEnable rate limitingfalse
LIBRENMS_VERIFY_SSLNoEnable SSL certificate verificationtrue
TOOL_SEARCH_ENABLEDNoReplace full tool listings with search_tools + call_toolfalse
TOOL_SEARCH_STRATEGYNoSearch strategy: bm25 or regexbm25
MCP_HTTP_BEARER_TOKENNoOptional bearer token for HTTP authentication
RATE_LIMIT_MAX_REQUESTSNoMaximum requests allowed per window100
TOOL_SEARCH_MAX_RESULTSNoMaximum number of tools returned by search_tools5
RATE_LIMIT_WINDOW_MINUTESNoWindow size in minutes1

Capabilities

Features and capabilities supported by this server

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
alerts_getB

Get alerts from LibreNMS with optional filters.

alert_get_by_idA

Get a specific alert from LibreNMS by ID.

alert_acknowledgeA

Acknowledge an alert in LibreNMS by ID.

alert_unmuteA

Unmute an alert in LibreNMS by ID.

alert_rules_listC

List all alert rules from LibreNMS.

Returns: dict: The JSON response from the API.

alert_rule_getA

Get details for a specific alert rule by ID.

alert_rule_addB

Add a new alert rule to LibreNMS.

alert_rule_editB

Edit an existing alert rule in LibreNMS.

alert_rule_deleteA

Delete an alert rule from LibreNMS by ID.

alert_templates_listB

List all alert templates from LibreNMS.

Returns: dict: The JSON response from the API.

alert_template_getA

Get a specific alert template from LibreNMS by ID.

alert_template_createB

Create a new alert template in LibreNMS.

alert_template_editA

Edit an existing alert template in LibreNMS.

alert_template_deleteA

Delete an alert template from LibreNMS by ID.

bills_listB

List bills from LibreNMS with optional filters.

bill_getA

Get a specific bill from LibreNMS by ID.

bill_graphC

Get bill graph image from LibreNMS.

bill_graph_dataB

Get bill graph data from LibreNMS.

bill_historyB

Get bill history from LibreNMS.

bill_history_graphA

Get bill history graph from LibreNMS.

bill_history_graph_dataB

Get bill history graph data from LibreNMS.

bill_create_or_updateA

Create or update a bill in LibreNMS.

bill_deleteA

Delete a bill from LibreNMS by ID.

devices_listA

List devices from LibreNMS with optional filters.

device_addB

Add a new device to LibreNMS.

device_getA

Get device details from LibreNMS by hostname.

device_deleteA

Delete a device from LibreNMS by hostname.

device_updateA

Update device fields in LibreNMS.

device_portsB

List ports for a device from LibreNMS.

device_ports_getB

Get port info for a device by interface name.

device_availabilityA

Get device availability from LibreNMS.

device_outagesC

Get device outages from LibreNMS.

device_set_maintenanceB

Set device maintenance in LibreNMS.

devicegroups_listA

List all device groups from LibreNMS.

Returns: dict: The JSON response from the API.

devicegroup_addA

Add a new device group to LibreNMS.

devicegroup_updateB

Update a device group in LibreNMS.

devicegroup_deleteB

Delete a device group from LibreNMS by name.

devicegroup_devicesB

List devices in a device group from LibreNMS.

devicegroup_set_maintenanceC

Set maintenance for a device group in LibreNMS.

devicegroup_add_devicesA

Add devices to a device group in LibreNMS.

devicegroup_remove_devicesA

Remove devices from a device group in LibreNMS.

device_discoverB

Trigger device rediscovery in LibreNMS.

device_renameB

Rename a device in LibreNMS.

device_maintenance_statusA

Check if a device is currently in maintenance mode.

device_vlansB

Get VLANs configured on a specific device.

device_linksB

Get network links for a specific device.

device_eventlog_addB

Add a custom event log entry for a device.

device_fdbA

List the forwarding database (learned MAC addresses) for a device.

Each entry carries the port_id it was learned on, so this is the device-wide view of what is plugged into a switch.

device_nacA

List network access control (802.1X / MAB) sessions on a device.

Shows authenticated endpoints per port, including the authentication method and the assigned VLAN where the device reports it.

device_graphs_listA

List the graph types available for a device.

Use this to discover the values accepted by the graph_type argument of device_graph, for example 'device_icmp_perf' or 'device_poller_perf'.

device_graphA

Render a device-level graph as an image.

port_graphA

Render a per-port graph as an image, for example interface traffic.

Some LibreNMS releases fail to render through the per-port endpoint and answer 500 with an empty graph type in the message. For 'bits' this tool then falls back to the port-group endpoint, which renders the same traffic data, so callers still get a graph without needing a port ID.

port_group_graphA

Render a traffic graph for one or more ports, by port ID.

Plots every supplied port on the same axes, which makes it useful for comparing members of a LAG. Unlike port_graph this takes numeric port IDs rather than interface names.

health_listA

List available health graphs for a device.

health_by_typeA

Get health data by sensor type for a device.

health_sensor_getA

Get a specific sensor by ID for a device.

sensors_listA

List all sensors across all devices.

inventory_deviceC

Get inventory for a device from LibreNMS.

inventory_device_flatA

Get flattened inventory for a device from LibreNMS.

locations_listB

List locations from LibreNMS.

location_addA

Add a new location to LibreNMS.

location_deleteA

Delete a location from LibreNMS by identifier.

location_editB

Edit a location in LibreNMS.

location_getA

Get a specific location from LibreNMS by identifier.

location_set_maintenanceB

Set maintenance mode for all devices in a location.

logs_eventlogA

Get event logs for a device from LibreNMS.

logs_syslogB

Get syslogs for a device from LibreNMS.

logs_alertlogA

Get alert logs for a device from LibreNMS.

logs_authlogC

Get auth logs for a device from LibreNMS.

logs_syslogsinkC

Add a syslog entry to LibreNMS via API sink.

arp_searchB

Retrieve ARP entries from LibreNMS by search query.

bgp_sessionsA

List BGP sessions from LibreNMS with optional filters.

Returns: dict: The JSON response from the API.

bgp_session_getA

Get BGP session from LibreNMS by ID.

bgp_session_editA

Edit BGP session in LibreNMS by ID.

routing_ip_addressesA

List all IP addresses from LibreNMS.

Returns: dict: The JSON response from the API.

switching_vlansB

List all VLANs from LibreNMS.

Returns: dict: The JSON response from the API.

switching_linksB

List all links from LibreNMS.

Returns: dict: The JSON response from the API.

fdb_lookupB

Look up a MAC address in the forwarding database.

ospf_listB

List all OSPF instances from LibreNMS.

Returns: dict: The JSON response from the API.

ospf_portsC

List all OSPF ports/interfaces from LibreNMS.

Returns: dict: The JSON response from the API.

vrf_listA

List all VRF (Virtual Routing and Forwarding) instances from LibreNMS.

Returns: dict: The JSON response from the API.

nac_listA

List network access control (802.1X / MAB) sessions across all devices.

Note that LibreNMS answers with a 404 and "Nac entry does not exist" rather than an empty list when nothing matches.

oxidized_listA

List devices tracked by Oxidized for config backup.

oxidized_config_getA

Get the stored device configuration from Oxidized for a specific device.

oxidized_config_searchA

Search all Oxidized device configurations for a string.

poller_group_getB

Get poller group(s) from LibreNMS.

port_security_listA

List port security configuration across all devices.

Covers switchport port-security state such as the maximum number of learned MAC addresses, violation mode and current status.

port_security_deviceA

Get port security configuration for every port on a device.

port_security_portA

Get port security configuration for a single port.

ports_listA

Get all ports from LibreNMS with optional filters.

ports_searchA

Search ports in LibreNMS by search string.

ports_search_fieldB

Search ports in LibreNMS by specific field.

ports_search_macA

Search ports in LibreNMS by MAC address.

port_getA

Get port info from LibreNMS by port ID.

port_ip_infoA

Get port IP info from LibreNMS by port ID.

port_transceiverA

Get port transceiver info from LibreNMS by port ID.

port_description_getA

Get port description from LibreNMS by port ID.

port_description_updateB

Update port description in LibreNMS by port ID.

port_groups_listB

List port groups from LibreNMS.

Returns: dict: The JSON response from the API.

port_group_addB

Add a port group to LibreNMS.

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/mhajder/librenms-mcp'

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