Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)Remote (HTTP)★ 42
Write a review

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.

We use your email only for this newsletter. Privacy

About

MCP server for LibreNMS network monitoring - query devices, ports, alerts, and manage infrastructure

Use cases: monitoring-observability, incident-response

No 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_id
  • alert_rule_get
  • alert_rules_list
  • alert_template_get
  • alert_templates_list
  • alerts_get
  • arp_search
  • bgp_session_get
  • bgp_sessions
  • bill_get
  • bill_graph
  • bill_graph_data
Show 63 more tools
  • bill_history
  • bill_history_graph
  • bill_history_graph_data
  • bills_list
  • device_availability
  • device_fdb
  • device_get
  • device_graph
  • device_graphs_list
  • device_links
  • device_maintenance_status
  • device_nac
  • device_outages
  • device_ports
  • device_ports_get
  • device_vlans
  • devicegroup_devices
  • devicegroups_list
  • devices_list
  • fdb_lookup
  • health_by_type
  • health_list
  • health_sensor_get
  • inventory_device
  • inventory_device_flat
  • location_get
  • locations_list
  • logs_alertlog
  • logs_authlog
  • logs_eventlog
  • logs_syslog
  • nac_list
  • ospf_list
  • ospf_ports
  • oxidized_config_get
  • oxidized_config_search
  • oxidized_list
  • ping
  • poller_group_get
  • port_description_get
  • port_fdb
  • port_get
  • port_graph
  • port_group_graph
  • port_group_list_ports
  • port_groups_list
  • port_ip_info
  • port_security_device
  • port_security_list
  • port_security_port
  • port_transceiver
  • ports_list
  • ports_search
  • ports_search_field
  • ports_search_mac
  • routing_ip_addresses
  • sensors_list
  • services_for_device
  • services_list
  • switching_links
  • switching_vlans
  • system_info
  • vrf_list

Write 9 · Create, change, send or run things.

  • alert_acknowledge
  • alert_template_create
  • alert_unmute
  • device_discover
  • device_eventlog_add
  • device_set_maintenance
  • location_set_maintenance
  • logs_syslogsink
  • port_group_assign

Delete 26 · Delete, drop, revoke or wipe things.

  • alert_rule_add
  • alert_rule_delete
  • alert_rule_edit
  • alert_template_edit
  • bgp_session_edit
  • bill_create_or_update
  • bill_delete
  • device_add
  • device_delete
  • device_rename
  • device_update
  • devicegroup_add
Show 14 more tools
  • devicegroup_add_devices
  • devicegroup_delete
  • devicegroup_remove_devices
  • devicegroup_set_maintenance
  • devicegroup_update
  • location_add
  • location_delete
  • location_edit
  • port_description_update
  • port_group_add
  • port_group_remove
  • service_add
  • service_delete
  • service_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_TAGS
  • LIBRENMS_TIMEOUT
  • LIBRENMS_URL
  • LIBRENMS_VERIFY_SSL
  • LOG_LEVEL
  • RATE_LIMIT_ENABLED
  • RATE_LIMIT_MAX_REQUESTS
  • RATE_LIMIT_WINDOW_MINUTES
  • READ_ONLY_MODE
  • TOOL_SEARCH_ENABLED
  • TOOL_SEARCH_MAX_RESULTS
  • TOOL_SEARCH_STRATEGY

Network hosts it talks to 4

  • domain.tld · found in code
  • github.com · found in code
  • gofastmcp.com · found in code
  • raw.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_acknowledge

    Acknowledge 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-only

    Get 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 data

    Add 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 data

    Delete 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 data

    Edit 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-only

    Get 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-only

    List all alert rules from LibreNMS. Returns: dict: The JSON response from the API.

  • alert_template_create

    Create 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 data

    Edit 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-only

    Get 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-only

    List all alert templates from LibreNMS. Returns: dict: The JSON response from the API.

  • alert_unmute

    Unmute an alert in LibreNMS by ID. Args: alert_id (int): Alert ID to unmute. Returns: dict: The JSON response from the API.

  • alerts_getread-only

    Get 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-only

    Retrieve 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 data

    Edit 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-only

    Get BGP session from LibreNMS by ID. Args: bgp_id (int): BGP session ID. Returns: dict: The JSON response from the API.

  • bgp_sessionsread-only

    List BGP sessions from LibreNMS with optional filters. Returns: dict: The JSON response from the API.

  • bill_create_or_updatecan change or delete data

    Create 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 data

    Delete a bill from LibreNMS by ID. Args: bill_id (int): Bill ID to delete. Returns: dict: The JSON response from the API.

  • bill_getread-only

    Get 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-only

    Render 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-only

    Get 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-only

    Get 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-only

    Render 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-only

    Get 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-only

    List 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 data

    Add 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-only

    Get device availability from LibreNMS. Args: hostname (str): Device hostname. Returns: dict: The JSON response from the API.

  • device_deletecan change or delete data

    Delete a device from LibreNMS by hostname. Args: hostname (str): Device hostname to delete. Returns: dict: The JSON response from the API.

  • device_discover

    Trigger device rediscovery in LibreNMS. Args: hostname (str): Device hostname or ID. Returns: dict: The JSON response from the API.

  • device_eventlog_add

    Add 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-only

    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. 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-only

    Get device details from LibreNMS by hostname. Args: hostname (str): Device hostname. Returns: dict: The JSON response from the API.

  • device_graphread-only

    Render 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-only

    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'. Args: hostname (str): Device hostname or device ID. Returns: dict: The JSON response from the API listing available graphs.

  • device_linksread-only

    Get 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-only

    Check 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-only

    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. 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-only

    Get 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-only

    List 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-only

    Get 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 data

    Rename 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_maintenance

    Set 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 data

    Update 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-only

    Get 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 data

    Add 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 data

    Add 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 data

    Delete 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-only

    List 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 data

    Remove 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 data

    Set 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 data

    Update 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-only

    List all device groups from LibreNMS. Returns: dict: The JSON response from the API.

  • devices_listread-only

    List 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-only

    Look 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-only

    Get 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-only

    List 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-only

    Get 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-only

    Get 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-only

    Get 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 data

    Add 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 data

    Delete 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 data

    Edit 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-only

    Get a specific location from LibreNMS by identifier. Args: location (str): Location identifier. Returns: dict: The JSON response from the API.

  • location_set_maintenance

    Set 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-only

    List 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-only

    Get 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-only

    Get 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-only

    Get 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-only

    Get 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_syslogsink

    Add a syslog entry to LibreNMS via API sink. Args: payload (dict): Syslog message data. Returns: dict: The JSON response from the API.

  • nac_listread-only

    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. 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-only

    List all OSPF instances from LibreNMS. Returns: dict: The JSON response from the API.

  • ospf_portsread-only

    List all OSPF ports/interfaces from LibreNMS. Returns: dict: The JSON response from the API.

  • oxidized_config_getread-only

    Get 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-only

    Search 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-only

    List 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-only

    Simple API health check - ping LibreNMS API. Returns: dict: The JSON response from the API.

  • poller_group_getread-only

    Get 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-only

    Get 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 data

    Update 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-only

    List 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-only

    Get port info from LibreNMS by port ID. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.

  • port_graphread-only

    Render 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 data

    Add 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_assign

    Assign 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-only

    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. 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-only

    List 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_remove

    Remove 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-only

    List port groups from LibreNMS. Returns: dict: The JSON response from the API.

  • port_ip_inforead-only

    Get 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-only

    Get 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-only

    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. 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-only

    Get port security configuration for a single port. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.

  • port_transceiverread-only

    Get port transceiver info from LibreNMS by port ID. Args: port_id (int): Port ID. Returns: dict: The JSON response from the API.

  • ports_listread-only

    Get 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-only

    Search 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-only

    Search 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-only

    Find 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-only

    List all IP addresses from LibreNMS. Returns: dict: The JSON response from the API.

  • sensors_listread-only

    List 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 data

    Add 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 data

    Delete 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 data

    Edit 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-only

    Get 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-only

    List 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-only

    List all links from LibreNMS. Returns: dict: The JSON response from the API.

  • switching_vlansread-only

    List all VLANs from LibreNMS. Returns: dict: The JSON response from the API.

  • system_inforead-only

    Get system info from LibreNMS. Returns: dict: The JSON response from the API.

  • vrf_listread-only

    List 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
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from mhajder

    Cite this page

    LibreNMS MCP. Agent Mart. https://agentmart.dev/connectors/mhajder-librenms-mcp (last updated 2026-10-24)