LibreNMS MCP
MCP server for LibreNMS network monitoring - query devices, ports, alerts, and manage infrastructure
Connector by mhajder · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mhajder-librenms-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: monitoring-observability, incident-response
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 75 read · 9 write · 26 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 110
Read from the source code; the running server may list different tools.
Read 75 · Look things up without changing anything.
alert_get_by_idalert_rule_getalert_rules_listalert_template_getalert_templates_listalerts_getarp_searchbgp_session_getbgp_sessionsbill_getbill_graphbill_graph_data
Show 63 more tools
bill_historybill_history_graphbill_history_graph_databills_listdevice_availabilitydevice_fdbdevice_getdevice_graphdevice_graphs_listdevice_linksdevice_maintenance_statusdevice_nacdevice_outagesdevice_portsdevice_ports_getdevice_vlansdevicegroup_devicesdevicegroups_listdevices_listfdb_lookuphealth_by_typehealth_listhealth_sensor_getinventory_deviceinventory_device_flatlocation_getlocations_listlogs_alertloglogs_authloglogs_eventloglogs_syslognac_listospf_listospf_portsoxidized_config_getoxidized_config_searchoxidized_listpingpoller_group_getport_description_getport_fdbport_getport_graphport_group_graphport_group_list_portsport_groups_listport_ip_infoport_security_deviceport_security_listport_security_portport_transceiverports_listports_searchports_search_fieldports_search_macrouting_ip_addressessensors_listservices_for_deviceservices_listswitching_linksswitching_vlanssystem_infovrf_list
Write 9 · Create, change, send or run things.
alert_acknowledgealert_template_createalert_unmutedevice_discoverdevice_eventlog_adddevice_set_maintenancelocation_set_maintenancelogs_syslogsinkport_group_assign
Delete 26 · Delete, drop, revoke or wipe things.
alert_rule_addalert_rule_deletealert_rule_editalert_template_editbgp_session_editbill_create_or_updatebill_deletedevice_adddevice_deletedevice_renamedevice_updatedevicegroup_add
Show 14 more tools
devicegroup_add_devicesdevicegroup_deletedevicegroup_remove_devicesdevicegroup_set_maintenancedevicegroup_updatelocation_addlocation_deletelocation_editport_description_updateport_group_addport_group_removeservice_addservice_deleteservice_edit
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
LIBRENMS_TOKEN
Other settings (environment variables or headers).
DISABLED_TAGSLIBRENMS_TIMEOUTLIBRENMS_URLLIBRENMS_VERIFY_SSLLOG_LEVELRATE_LIMIT_ENABLEDRATE_LIMIT_MAX_REQUESTSRATE_LIMIT_WINDOW_MINUTESREAD_ONLY_MODETOOL_SEARCH_ENABLEDTOOL_SEARCH_MAX_RESULTSTOOL_SEARCH_STRATEGY
Network hosts it talks to 4
domain.tld· found in codegithub.com· found in codegofastmcp.com· found in coderaw.githubusercontent.com· found in code
Files it touches
- Any path the agent passes to its tools
Tools (110)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
alert_acknowledgeAcknowledge an alert in LibreNMS by ID. Args: alert_id (int): Alert ID to acknowledge. note (str, optional): Note to attach to the acknowledgement. until_clear (bool, optional): Whether to acknowledge until the alert clears. Returns: dict: The JSON response from the API.
alert_get_by_idread-onlyGet a specific alert from LibreNMS by ID. Args: alert_id (int): The ID of the alert to retrieve. Returns: dict: The JSON response from the API.
alert_rule_addcan change or delete dataAdd a new alert rule to LibreNMS. Args: payload (dict): Alert rule definition with name, builder, devices, and severity. Returns: dict: The JSON response from the API.
alert_rule_deletecan change or delete dataDelete an alert rule from LibreNMS by ID. Args: rule_id (int): Alert rule ID to delete. Returns: dict: The JSON response from the API.
alert_rule_editcan change or delete dataEdit an existing alert rule in LibreNMS. Args: payload (dict): Alert rule payload with id and fields to update. Returns: dict: The JSON response from the API.
alert_rule_getread-onlyGet details for a specific alert rule by ID. Args: rule_id (int): Alert rule ID. Returns: dict: The JSON response from the API.
alert_rules_listread-onlyList all alert rules from LibreNMS. Returns: dict: The JSON response from the API.
alert_template_createCreate a new alert template in LibreNMS. Args: payload (dict): Alert template definition with name and template body. Returns: dict: The JSON response from the API.
alert_template_editcan change or delete dataEdit an existing alert template in LibreNMS. Args: payload (dict): Alert template payload with template_id and all template fields. Returns: dict: The JSON response from the API.
alert_template_getread-onlyGet a specific alert template from LibreNMS by ID. Args: template_id (int): Alert template ID. Returns: dict: The JSON response from the API.
alert_templates_listread-onlyList all alert templates from LibreNMS. Returns: dict: The JSON response from the API.
alert_unmuteUnmute an alert in LibreNMS by ID. Args: alert_id (int): Alert ID to unmute. Returns: dict: The JSON response from the API.
alerts_getread-onlyGet alerts from LibreNMS with optional filters. Args: state (int, optional): Filter the alerts by state: 0 = ok, 1 = alert, 2 = ack. severity (str, optional): Filter the alerts by severity. Valid values: ok, warning, critical. alert_rule (int, optional): Filter alerts by alert rule ID. order (str, optional): How to order the output, default is by timestamp (descending). Can be appended by DESC or ASC. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
arp_searchread-onlyRetrieve ARP entries from LibreNMS by search query. Args: query (str): Search string - IP, MAC, CIDR notation, or "all". device (str, optional): Device hostname or ID, used with query "all". limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
bgp_session_editcan change or delete dataEdit BGP session in LibreNMS by ID. Args: bgp_id (int): BGP session ID. payload (dict): BGP fields to update. Returns: dict: The JSON response from the API.
Show 95 more tools
bgp_session_getread-onlyGet BGP session from LibreNMS by ID. Args: bgp_id (int): BGP session ID. Returns: dict: The JSON response from the API.
bgp_sessionsread-onlyList BGP sessions from LibreNMS with optional filters. Returns: dict: The JSON response from the API.
bill_create_or_updatecan change or delete dataCreate or update a bill in LibreNMS. Args: payload (dict): Bill payload with name, ports, and billing type. Returns: dict: The JSON response from the API.
bill_deletecan change or delete dataDelete a bill from LibreNMS by ID. Args: bill_id (int): Bill ID to delete. Returns: dict: The JSON response from the API.
bill_getread-onlyGet a specific bill from LibreNMS by ID. Args: bill_id (int): Bill ID. period (str, optional): Optional period=previous. Returns: dict: The JSON response from the API.
bill_graphread-onlyRender a bill graph as an image. For the underlying numbers rather than a picture, use bill_graph_data. Args: bill_id (int): Bill ID. graph_type (str): bits or monthly. Returns: Image: The rendered graph.
bill_graph_dataread-onlyGet bill graph data from LibreNMS. Args: bill_id (int): Bill ID. graph_type (str): bits or monthly. Returns: dict: The JSON response from the API.
bill_historyread-onlyGet bill history from LibreNMS. Args: bill_id (int): Bill ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
bill_history_graphread-onlyRender a graph for a past billing period as an image. For the underlying numbers rather than a picture, use bill_history_graph_data. Args: bill_id (int): Bill ID. history_id (int): Bill history ID. graph_type (str): bits, day or hour. Returns: Image: The rendered graph.
bill_history_graph_dataread-onlyGet bill history graph data from LibreNMS. Args: bill_id (int): Bill ID. history_id (int): Bill history ID. graph_type (str): bits, day or hour. Returns: dict: The JSON response from the API.
bills_listread-onlyList bills from LibreNMS with optional filters. Args: period (str, optional): List previous period bills. ref (str, optional): Bill reference filter. custid (str, optional): Customer ID filter. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
device_addcan change or delete dataAdd a new device to LibreNMS. Args: payload (dict): Device add payload with hostname and SNMP credentials. Returns: dict: The JSON response from the API.
device_availabilityread-onlyGet device availability from LibreNMS. Args: hostname (str): Device hostname. Returns: dict: The JSON response from the API.
device_deletecan change or delete dataDelete a device from LibreNMS by hostname. Args: hostname (str): Device hostname to delete. Returns: dict: The JSON response from the API.
device_discoverTrigger device rediscovery in LibreNMS. Args: hostname (str): Device hostname or ID. Returns: dict: The JSON response from the API.
device_eventlog_addAdd a custom event log entry for a device. Args: hostname (str): Device hostname or ID. payload (dict): Event log entry with message. Returns: dict: The JSON response from the API.
device_fdbread-onlyList 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. Args: hostname (str): Device hostname or device ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
device_getread-onlyGet device details from LibreNMS by hostname. Args: hostname (str): Device hostname. Returns: dict: The JSON response from the API.
device_graphread-onlyRender a device-level graph as an image. Args: hostname (str): Device hostname or device ID. graph_type (str): Graph type from device_graphs_list. from_time (str, optional): Start of the time range, e.g. '-1d'. to_time (str, optional): End of the time range. width (int, optional): Graph width in pixels. height (int, optional): Graph height in pixels. legend (bool, optional): Whether to render the legend. Returns: Image: The rendered graph.
device_graphs_listread-onlyList 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'. Args: hostname (str): Device hostname or device ID. Returns: dict: The JSON response from the API listing available graphs.
device_linksread-onlyGet network links for a specific device. Args: hostname (str): Device hostname or ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
device_maintenance_statusread-onlyCheck if a device is currently in maintenance mode. Args: hostname (str): Device hostname or ID. Returns: dict: The JSON response with maintenance status.
device_nacread-onlyList 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. Args: hostname (str): Device hostname or device ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
device_outagesread-onlyGet device outages from LibreNMS. Args: hostname (str): Device hostname. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
device_portsread-onlyList ports for a device from LibreNMS. Args: hostname (str): Device hostname or ID. columns (str, optional): Comma-separated columns to return. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
device_ports_getread-onlyGet port info for a device by interface name. Names like 'Te2/7' can fail by name behind proxies that reject or decode the encoded slash. The port is then looked up by ID instead; that response has the same shape but lacks the computed rate fields (in_rate, out_rate, ...). Args: hostname (str): Device hostname. ifname (str): Interface name. Returns: dict: The JSON response from the API.
device_renamecan change or delete dataRename a device in LibreNMS. Args: hostname (str): Current device hostname or ID. new_hostname (str): New hostname. Returns: dict: The JSON response from the API.
device_set_maintenanceSet device maintenance in LibreNMS. Args: hostname (str): Device hostname or ID. payload (dict): Maintenance payload with duration. Returns: dict: The JSON response from the API.
device_updatecan change or delete dataUpdate device fields in LibreNMS. Args: hostname (str): Device hostname or ID. payload (dict): Fields to update on the device. Returns: dict: The JSON response from the API.
device_vlansread-onlyGet VLANs configured on a specific device. Args: hostname (str): Device hostname or ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
devicegroup_addcan change or delete dataAdd a new device group to LibreNMS. Args: payload (dict): Device group definition with name, type, and devices/rules. Returns: dict: The JSON response from the API.
devicegroup_add_devicescan change or delete dataAdd devices to a device group in LibreNMS. Args: name (str): Device group name. payload (dict): Device IDs to add as {"devices": [...]}. Returns: dict: The JSON response from the API.
devicegroup_deletecan change or delete dataDelete a device group from LibreNMS by name. Args: name (str): Device group name to delete. Returns: dict: The JSON response from the API.
devicegroup_devicesread-onlyList devices in a device group from LibreNMS. Args: name (str): Device group name. full (bool, optional): If true, returns full device details. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
devicegroup_remove_devicescan change or delete dataRemove devices from a device group in LibreNMS. Args: name (str): Device group name. payload (dict): Device IDs to remove as {"devices": [...]}. Returns: dict: The JSON response from the API.
devicegroup_set_maintenancecan change or delete dataSet maintenance for a device group in LibreNMS. Args: name (str): Device group name. payload (dict): Maintenance payload with duration. Returns: dict: The JSON response from the API.
devicegroup_updatecan change or delete dataUpdate a device group in LibreNMS. Args: name (str): Device group name. payload (dict): Fields to update. Returns: dict: The JSON response from the API.
devicegroups_listread-onlyList all device groups from LibreNMS. Returns: dict: The JSON response from the API.
devices_listread-onlyList devices from LibreNMS with optional filters. Args: query (dict, optional): Query parameters for filtering. Use "type" to filter by category (hostname, os, location, up, down, etc.) and "query" for the search term. Can also include "limit" and "order". limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API containing device list.
fdb_lookupread-onlyLook up a MAC address in the forwarding database. Args: mac (str): MAC address in any common format. Returns: dict: The JSON response with FDB entries.
health_by_typeread-onlyGet health data by sensor type for a device. Args: hostname (str): Device hostname or ID. type (str): Sensor type (e.g. temperature, voltage, fanspeed). limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
health_listread-onlyList available health graphs for a device. Args: hostname (str): Device hostname or ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
health_sensor_getread-onlyGet a specific sensor by ID for a device. Args: hostname (str): Device hostname or ID. type (str): Sensor type (e.g. temperature, voltage, fanspeed). sensor_id (int): Sensor ID. Returns: dict: The JSON response from the API.
inventory_deviceread-onlyGet inventory for a device from LibreNMS. Args: hostname (str): Device hostname or ID. ent_physical_class (str, optional): Filter by entity physical class. ent_physical_contained_in (int, optional): Filter by parent entity. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
inventory_device_flatread-onlyGet flattened inventory for a device from LibreNMS. Args: hostname (str): Device hostname. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
location_addcan change or delete dataAdd a new location to LibreNMS. Args: payload (dict): Location definition with name and coordinates. Returns: dict: The JSON response from the API.
location_deletecan change or delete dataDelete a location from LibreNMS by ID or name. Args: location (str): Location ID or name. Returns: dict: The JSON response from the API.
location_editcan change or delete dataEdit a location in LibreNMS. Args: location (str): Location identifier. payload (dict): Fields to update (lat, lng). Returns: dict: The JSON response from the API.
location_getread-onlyGet a specific location from LibreNMS by identifier. Args: location (str): Location identifier. Returns: dict: The JSON response from the API.
location_set_maintenanceSet maintenance mode for all devices in a location. Args: location (str): Location identifier or name. payload (dict): Maintenance payload with duration. Returns: dict: The JSON response from the API.
locations_listread-onlyList locations from LibreNMS. Args: limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
logs_alertlogread-onlyGet alert logs for a device from LibreNMS. Args: hostname (str, optional): Device hostname or ID; omit for all devices. start (int): Number of results to skip. limit (int): Max results. from_ts (str, optional): Start timestamp. to_ts (str, optional): End timestamp. sortorder (str, optional): ASC or DESC. Returns: dict: The JSON response from the API.
logs_authlogread-onlyGet authentication logs from LibreNMS. Auth logs are server-wide rather than per-device, so this takes no hostname. Args: start (int): Number of results to skip. limit (int): Max results. from_ts (str, optional): Start timestamp. to_ts (str, optional): End timestamp. sortorder (str, optional): ASC or DESC. Returns: dict: The JSON response from the API.
logs_eventlogread-onlyGet event logs for a device from LibreNMS. Args: hostname (str, optional): Device hostname or ID; omit for all devices. start (int): Number of results to skip. limit (int): Max results. from_ts (str, optional): Start timestamp. to_ts (str, optional): End timestamp. sortorder (str, optional): ASC or DESC. Returns: dict: The JSON response from the API.
logs_syslogread-onlyGet syslogs for a device from LibreNMS. Args: hostname (str, optional): Device hostname or ID; omit for all devices. start (int): Number of results to skip. limit (int): Max results. from_ts (str, optional): Start timestamp. to_ts (str, optional): End timestamp. sortorder (str, optional): ASC or DESC. Returns: dict: The JSON response from the API.
logs_syslogsinkAdd a syslog entry to LibreNMS via API sink. Args: payload (dict): Syslog message data. Returns: dict: The JSON response from the API.
nac_listread-onlyList 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. Args: mac (str, optional): Restrict the result to a single MAC address. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
ospf_listread-onlyList all OSPF instances from LibreNMS. Returns: dict: The JSON response from the API.
ospf_portsread-onlyList all OSPF ports/interfaces from LibreNMS. Returns: dict: The JSON response from the API.
oxidized_config_getread-onlyGet the stored device configuration from Oxidized for a specific device. Args: hostname (str): Device hostname. Returns: dict: The JSON response from the API containing the device config.
oxidized_config_searchread-onlySearch all Oxidized device configurations for a string. Args: search (str): Search string (IP, interface, ACL, keyword, etc.). limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API with matching devices and config snippets.
oxidized_listread-onlyList devices tracked by Oxidized for config backup. Args: hostname (str, optional): Filter by device hostname or ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
pingread-onlySimple API health check - ping LibreNMS API. Returns: dict: The JSON response from the API.
poller_group_getread-onlyGet poller group(s) from LibreNMS. Args: poller_group (str, optional): Poller group ID or name; omit or 'all' for every group. Returns: dict: The JSON response from the API.
port_description_getread-onlyGet port description from LibreNMS by port ID. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.
port_description_updatecan change or delete dataUpdate port description in LibreNMS by port ID. Args: port_id (int): Port ID. payload (dict): Description as {"description": "..."}. Returns: dict: The JSON response from the API.
port_fdbread-onlyList the MAC addresses learned on a port, from the forwarding database. This answers "what is connected to this port". To go the other way and find which port a known MAC sits on, use fdb_lookup instead. Args: port_id (int): Port ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
port_getread-onlyGet port info from LibreNMS by port ID. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.
port_graphread-onlyRender a per-port graph as an image, for example interface traffic. Names like 'Te2/7' can fail by name behind proxies that reject or decode the encoded slash. For 'bits' this tool then falls back to the port-group endpoint, which renders the same traffic data by port ID, so callers still get a graph. Args: hostname (str): Device hostname or device ID. ifname (str): Interface name, e.g. 'Po1' or 'Te2/7'. graph_type (str): bits, upkts, nupkts, errors or etherlike. from_time (str, optional): Start of the time range, e.g. '-1d'. to_time (str, optional): End of the time range…
port_group_addcan change or delete dataAdd a port group to LibreNMS. Args: payload (dict): Port group definition with name and optional description. Returns: dict: The JSON response from the API.
port_group_assignAssign ports to a port group in LibreNMS. Args: port_group_id (int): Port group ID. payload (dict): Port IDs to assign as {"port_ids": [...]}. Returns: dict: The JSON response from the API.
port_group_graphread-onlyRender 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. Args: port_ids (list[int]): Port IDs to plot. from_time (str, optional): Start of the time range, e.g. '-1d'. to_time (str, optional): End of the time range. width (int, optional): Graph width in pixels. height (int, optional): Graph height in pixels. legend (bool, optional): Whether to render the legend. Returns: Image: The rendered gr…
port_group_list_portsread-onlyList ports in a port group from LibreNMS. Args: name (str): Port group name. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
port_group_removeRemove ports from a port group in LibreNMS. Args: port_group_id (int): Port group ID. payload (dict): Port IDs to remove as {"port_ids": [...]}. Returns: dict: The JSON response from the API.
port_groups_listread-onlyList port groups from LibreNMS. Returns: dict: The JSON response from the API.
port_ip_inforead-onlyGet port IP info from LibreNMS by port ID. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.
port_security_deviceread-onlyGet port security configuration for every port on a device. Args: hostname (str): Device hostname or device ID. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
port_security_listread-onlyList 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. Args: limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
port_security_portread-onlyGet port security configuration for a single port. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.
port_transceiverread-onlyGet port transceiver info from LibreNMS by port ID. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.
ports_listread-onlyGet all ports from LibreNMS with optional filters. Args: query (dict, optional): Filter parameters: columns and device_id. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API containing port list.
ports_searchread-onlySearch ports in LibreNMS by search string. Args: search (str): Search term to match against ifAlias, ifDescr, ifName. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
ports_search_fieldread-onlySearch ports in LibreNMS by specific field. Args: field (str): Field to search (ifAlias, ifDescr, ifName, etc.). search (str): Search term. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
ports_search_macread-onlyFind the switch ports where a MAC address was learned (forwarding table). This searches LibreNMS's FDB data, i.e. where a host's MAC appears on the network, not the ports' own hardware addresses: a port's own MAC is not found unless another device learned it. Results are ordered by how many MACs each port has learned, so the access port the host is plugged into usually comes first. Args: mac (str): MAC address in any common format. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
routing_ip_addressesread-onlyList all IP addresses from LibreNMS. Returns: dict: The JSON response from the API.
sensors_listread-onlyList all sensors across all devices. Args: limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
service_addcan change or delete dataAdd a service for a device in LibreNMS. Args: hostname (str): Device hostname or ID. payload (dict): Service definition with type and optional parameters. Returns: dict: The JSON response from the API.
service_deletecan change or delete dataDelete a service from LibreNMS by service ID. Args: service_id (int): Service ID. Returns: dict: The JSON response from the API.
service_editcan change or delete dataEdit a service in LibreNMS by service ID. Args: service_id (int): Service ID. payload (dict): Fields to update. Returns: dict: The JSON response from the API.
services_for_deviceread-onlyGet services for a device from LibreNMS. Args: hostname (str): Device hostname or ID. state (int, optional): Filter by state (0=Ok, 1=Warning, 2=Critical). service_type (str, optional): Filter by service type. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
services_listread-onlyList all services from LibreNMS with optional filters. Args: state (int, optional): Filter by state (0=Ok, 1=Warning, 2=Critical). service_type (str, optional): Filter by service type. limit (int): Maximum number of results to return. offset (int): Number of results to skip. Returns: dict: The JSON response from the API.
switching_linksread-onlyList all links from LibreNMS. Returns: dict: The JSON response from the API.
switching_vlansread-onlyList all VLANs from LibreNMS. Returns: dict: The JSON response from the API.
system_inforead-onlyGet system info from LibreNMS. Returns: dict: The JSON response from the API.
vrf_listread-onlyList all VRF (Virtual Routing and Forwarding) instances from LibreNMS. Returns: dict: The JSON response from the API.
Compare and alternatives
Featured in
Signals
- Stars
- 42
- Forks
- 10
- Open issues
- 1
- Contributors
- 5
- Weekly downloads
- 609
- Last commit
- Oct 23, 2026 (5 days ago)
- Last release
- Oct 23, 2026 (5 days ago)
- Last package publish
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.mhajder/librenms-mcp- Version
- 1.12.0
- Auth
- API key
- Packages
- pypi librenms-mcppypi librenms-mcpoci
ghcr.io/mhajder/librenms-mcp:1.12.0 - License
- MIT
- Repository
- github.com/mhajder/librenms-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from mhajder
- 0.654score
Ghostfolio MCP
mhajder
MCP server for Ghostfolio portfolio management and financial data access
ConnectorAFreshness: ARemoteLocal★ 22↓ 331/wkClaude Code +5 - 0.649score
Zabbix MCP
mhajder
MCP server for Zabbix monitoring and automation
ConnectorAFreshness: ARemoteLocal★ 10↓ 607/wkClaude Code +5 - 0.630score
NetBox MCP
mhajder
MCP server for NetBox DCIM/IPAM with read-only and dry-run modes
ConnectorAFreshness: ARemoteLocal★ 3↓ 242/wkClaude Code +5 - 0.605score
Oxidized MCP
mhajder
MCP server for Oxidized network device configuration backups
ConnectorAFreshness: ARemoteLocal↓ 230/wkClaude Code +5
Cite this page
LibreNMS MCP. Agent Mart. https://agentmart.dev/connectors/mhajder-librenms-mcp (last updated 2026-10-24)