librenms-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | INFO |
| SENTRY_DSN | No | Sentry DSN for error tracking (optional) | |
| LIBRENMS_URL | Yes | URL of the LibreNMS instance (e.g., https://domain.tld:8443) | |
| DISABLED_TAGS | No | Comma-separated list of tags to disable tools for | |
| MCP_HTTP_HOST | No | Host to bind the HTTP server | 0.0.0.0 |
| MCP_HTTP_PORT | No | Port to bind the HTTP server | 8000 |
| MCP_TRANSPORT | No | Transport type: stdio, sse, or http | stdio |
| LIBRENMS_TOKEN | Yes | API token for LibreNMS authentication | |
| READ_ONLY_MODE | No | Set true to disable all write operations | false |
| LIBRENMS_TIMEOUT | No | Connection timeout in seconds | 30 |
| RATE_LIMIT_ENABLED | No | Enable rate limiting | false |
| LIBRENMS_VERIFY_SSL | No | Enable SSL certificate verification | true |
| TOOL_SEARCH_ENABLED | No | Replace full tool listings with search_tools + call_tool | false |
| TOOL_SEARCH_STRATEGY | No | Search strategy: bm25 or regex | bm25 |
| MCP_HTTP_BEARER_TOKEN | No | Optional bearer token for HTTP authentication | |
| RATE_LIMIT_MAX_REQUESTS | No | Maximum requests allowed per window | 100 |
| TOOL_SEARCH_MAX_RESULTS | No | Maximum number of tools returned by search_tools | 5 |
| RATE_LIMIT_WINDOW_MINUTES | No | Window size in minutes | 1 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| 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_listA | 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_listA | 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_listA | 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_listB | 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_outagesB | 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. |
| 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. Returns: dict: The JSON response from the API. |
| inventory_deviceB | Get inventory for a device from LibreNMS. |
| inventory_device_flatA | Get flattened inventory for a device from LibreNMS. |
| locations_listA | List locations from LibreNMS. Returns: dict: The JSON response from the API. |
| 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_eventlogB | Get event logs for a device from LibreNMS. |
| logs_syslogA | Get syslogs for a device from LibreNMS. |
| logs_alertlogB | Get alert logs for a device from LibreNMS. |
| logs_authlogB | Get auth logs for a device from LibreNMS. |
| logs_syslogsinkC | Add a syslog entry to LibreNMS via API sink. |
| arp_searchA | 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_listA | List all OSPF instances from LibreNMS. Returns: dict: The JSON response from the API. |
| ospf_portsA | 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. |
| 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. |
| ports_listB | Get all ports from LibreNMS with optional filters. |
| ports_searchA | Search ports in LibreNMS by search string. |
| ports_search_fieldA | 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_listA | List port groups from LibreNMS. Returns: dict: The JSON response from the API. |
| port_group_addB | Add a port group to LibreNMS. |
| port_group_list_portsA | List ports in a port group from LibreNMS. |
| port_group_assignA | Assign ports to a port group in LibreNMS. |
| port_group_removeB | Remove ports from a port group in LibreNMS. |
| services_listA | List all services from LibreNMS with optional filters. |
| services_for_deviceB | Get services for a device from LibreNMS. |
| service_addB | Add a service for a device in LibreNMS. |
| service_editB | Edit a service in LibreNMS by service ID. |
| service_deleteA | Delete a service from LibreNMS by service ID. |
| system_infoA | Get system info from LibreNMS. Returns: dict: The JSON response from the API. |
| pingA | Simple API health check - ping LibreNMS API. Returns: dict: The JSON response from the API. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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