{"name":"io.github.mhajder/librenms-mcp","slug":"mhajder-librenms-mcp","title":"LibreNMS MCP","description":"MCP server for LibreNMS network monitoring - query devices, ports, alerts, and manage infrastructure","url":"https://mcp.market/server/mhajder-librenms-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":45,"stars":37,"forks":10,"downloads_week":191,"last_push_at":"2026-09-18T07:54:50.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/mhajder/librenms-mcp","website":"https://github.com/mhajder/librenms-mcp","version":"1.11.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"librenms-mcp","version":"1.11.2","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"LibreNMS instance URL (e.g., https://librenms.example.com)","isRequired":true,"name":"LIBRENMS_URL"},{"description":"LibreNMS API token with appropriate permissions","isRequired":true,"isSecret":true,"name":"LIBRENMS_TOKEN"},{"description":"Verify TLS certificates for LibreNMS requests (true/false)","default":"true","name":"LIBRENMS_VERIFY_SSL"},{"description":"HTTP timeout for LibreNMS API requests in seconds","default":"30","name":"LIBRENMS_TIMEOUT"},{"description":"Enable read-only mode to block write operations","default":"false","name":"READ_ONLY_MODE"},{"description":"Comma-separated tool tags to disable (e.g., alerts,bills)","name":"DISABLED_TAGS"},{"description":"Logging level (DEBUG, INFO, WARNING, ERROR)","default":"INFO","name":"LOG_LEVEL"},{"description":"Enable per-client rate limiting (true/false)","default":"false","name":"RATE_LIMIT_ENABLED"},{"description":"Maximum requests allowed per rate-limit window","default":"100","name":"RATE_LIMIT_MAX_REQUESTS"},{"description":"Rate-limit window duration in minutes","default":"1","name":"RATE_LIMIT_WINDOW_MINUTES"},{"description":"Enable FastMCP tool search transform","default":"false","name":"TOOL_SEARCH_ENABLED"},{"description":"Tool search strategy: 'bm25' (natural language) or 'regex' (pattern match)","default":"bm25","name":"TOOL_SEARCH_STRATEGY"},{"description":"Maximum number of tools returned by search_tools","default":"5","name":"TOOL_SEARCH_MAX_RESULTS"}]},{"registryType":"pypi","identifier":"librenms-mcp","version":"1.11.2","runtimeHint":"uvx","transport":{"type":"streamable-http","url":"http://localhost:{MCP_HTTP_PORT}/mcp"},"environmentVariables":[{"description":"LibreNMS instance URL (e.g., https://librenms.example.com)","isRequired":true,"name":"LIBRENMS_URL"},{"description":"LibreNMS API token with appropriate permissions","isRequired":true,"isSecret":true,"name":"LIBRENMS_TOKEN"},{"description":"Verify TLS certificates for LibreNMS requests (true/false)","default":"true","name":"LIBRENMS_VERIFY_SSL"},{"description":"HTTP timeout for LibreNMS API requests in seconds","default":"30","name":"LIBRENMS_TIMEOUT"},{"description":"Enable read-only mode to block write operations","default":"false","name":"READ_ONLY_MODE"},{"description":"Comma-separated tool tags to disable (e.g., alerts,bills)","name":"DISABLED_TAGS"},{"description":"Logging level (DEBUG, INFO, WARNING, ERROR)","default":"INFO","name":"LOG_LEVEL"},{"description":"Enable per-client rate limiting (true/false)","default":"false","name":"RATE_LIMIT_ENABLED"},{"description":"Maximum requests allowed per rate-limit window","default":"100","name":"RATE_LIMIT_MAX_REQUESTS"},{"description":"Rate-limit window duration in minutes","default":"1","name":"RATE_LIMIT_WINDOW_MINUTES"},{"description":"Enable FastMCP tool search transform","default":"false","name":"TOOL_SEARCH_ENABLED"},{"description":"Tool search strategy: 'bm25' (natural language) or 'regex' (pattern match)","default":"bm25","name":"TOOL_SEARCH_STRATEGY"},{"description":"Maximum number of tools returned by search_tools","default":"5","name":"TOOL_SEARCH_MAX_RESULTS"},{"description":"Port for HTTP server (default: 8000)","default":"8000","name":"MCP_HTTP_PORT"},{"description":"Optional bearer token for HTTP transport authentication","isSecret":true,"name":"MCP_HTTP_BEARER_TOKEN"},{"description":"MCP transport type (http for HTTP, stdio for stdio)","value":"http","name":"MCP_TRANSPORT"}]},{"registryType":"oci","identifier":"ghcr.io/mhajder/librenms-mcp:1.11.2","transport":{"type":"streamable-http","url":"http://localhost:{MCP_HTTP_PORT}/mcp"},"runtimeArguments":[{"description":"Port mapping for HTTP transport","isRequired":true,"value":"{MCP_HTTP_PORT}:{MCP_HTTP_PORT}","type":"named","name":"-p"}],"environmentVariables":[{"description":"LibreNMS instance URL (e.g., https://librenms.example.com)","isRequired":true,"name":"LIBRENMS_URL"},{"description":"LibreNMS API token with appropriate permissions","isRequired":true,"isSecret":true,"name":"LIBRENMS_TOKEN"},{"description":"Verify TLS certificates for LibreNMS requests (true/false)","default":"true","name":"LIBRENMS_VERIFY_SSL"},{"description":"HTTP timeout for LibreNMS API requests in seconds","default":"30","name":"LIBRENMS_TIMEOUT"},{"description":"Enable read-only mode to block write operations","default":"false","name":"READ_ONLY_MODE"},{"description":"Comma-separated tool tags to disable (e.g., alerts,bills)","name":"DISABLED_TAGS"},{"description":"Logging level (DEBUG, INFO, WARNING, ERROR)","default":"INFO","name":"LOG_LEVEL"},{"description":"Enable per-client rate limiting (true/false)","default":"false","name":"RATE_LIMIT_ENABLED"},{"description":"Maximum requests allowed per rate-limit window","default":"100","name":"RATE_LIMIT_MAX_REQUESTS"},{"description":"Rate-limit window duration in minutes","default":"1","name":"RATE_LIMIT_WINDOW_MINUTES"},{"description":"Enable FastMCP tool search transform","default":"false","name":"TOOL_SEARCH_ENABLED"},{"description":"Tool search strategy: 'bm25' (natural language) or 'regex' (pattern match)","default":"bm25","name":"TOOL_SEARCH_STRATEGY"},{"description":"Maximum number of tools returned by search_tools","default":"5","name":"TOOL_SEARCH_MAX_RESULTS"},{"description":"Sentry DSN for optional error tracking","isSecret":true,"name":"SENTRY_DSN"},{"description":"Sentry traces sample rate (0.0-1.0)","default":"1.0","name":"SENTRY_TRACES_SAMPLE_RATE"},{"description":"Allow Sentry to include default PII in events (true/false)","default":"true","name":"SENTRY_SEND_DEFAULT_PII"},{"description":"Sentry environment name (e.g., production)","name":"SENTRY_ENVIRONMENT"},{"description":"Sentry release identifier","name":"SENTRY_RELEASE"},{"description":"Sentry profile session sample rate (0.0-1.0)","default":"1.0","name":"SENTRY_PROFILE_SESSION_SAMPLE_RATE"},{"description":"Sentry profiling lifecycle mode","default":"trace","name":"SENTRY_PROFILE_LIFECYCLE"},{"description":"Enable Sentry log capture integration (true/false)","default":"true","name":"SENTRY_ENABLE_LOGS"},{"description":"Port for HTTP server (default: 8000)","default":"8000","name":"MCP_HTTP_PORT"},{"description":"Optional bearer token for HTTP transport authentication","isSecret":true,"name":"MCP_HTTP_BEARER_TOKEN"},{"description":"MCP transport type (http for HTTP, stdio for stdio)","value":"http","name":"MCP_TRANSPORT"}]}],"tools":[{"name":"alert_acknowledge","description":"Acknowledge an alert in LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_get_by_id","description":"Get a specific alert from LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_rule_add","description":"Add a new alert rule to LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_rule_delete","description":"Delete an alert rule from LibreNMS by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"alert_rule_edit","description":"Edit an existing alert rule in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_rule_get","description":"Get details for a specific alert rule by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_rules_list","description":"List all alert rules from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_template_create","description":"Create a new alert template in LibreNMS.","write_action":true,"price_micros":0,"input_schema":null},{"name":"alert_template_edit","description":"Edit an existing alert template in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_template_get","description":"Get a specific alert template from LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_templates_list","description":"List all alert templates from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alert_unmute","description":"Unmute an alert in LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"alerts_get","description":"Get alerts from LibreNMS with optional filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"arp_search","description":"Retrieve ARP entries from LibreNMS by search query.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bgp_session_edit","description":"Edit BGP session in LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bgp_session_get","description":"Get BGP session from LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bgp_sessions","description":"List BGP sessions from LibreNMS with optional filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bill_create_or_update","description":"Create or update a bill in LibreNMS.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bill_delete","description":"Delete a bill from LibreNMS by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"bill_get","description":"Get a specific bill from LibreNMS by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bill_graph","description":"Render a bill graph as an image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bill_graph_data","description":"Get bill graph data from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bill_history","description":"Get bill history from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bill_history_graph","description":"Render a graph for a past billing period as an image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bill_history_graph_data","description":"Get bill history graph data from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bills_list","description":"List bills from LibreNMS with optional filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_add","description":"Add a new device to LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_availability","description":"Get device availability from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_delete","description":"Delete a device from LibreNMS by hostname.","write_action":true,"price_micros":0,"input_schema":null},{"name":"device_discover","description":"Trigger device rediscovery in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_eventlog_add","description":"Add a custom event log entry for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_fdb","description":"List the forwarding database (learned MAC addresses) for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_get","description":"Get device details from LibreNMS by hostname.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_graph","description":"Render a device-level graph as an image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_graphs_list","description":"List the graph types available for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_links","description":"Get network links for a specific device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_maintenance_status","description":"Check if a device is currently in maintenance mode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_nac","description":"List network access control (802.1X / MAB) sessions on a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_outages","description":"Get device outages from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_ports","description":"List ports for a device from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_ports_get","description":"Get port info for a device by interface name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_rename","description":"Rename a device in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_set_maintenance","description":"Set device maintenance in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"device_update","description":"Update device fields in LibreNMS.","write_action":true,"price_micros":0,"input_schema":null},{"name":"device_vlans","description":"Get VLANs configured on a specific device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"devicegroup_add","description":"Add a new device group to LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"devicegroup_add_devices","description":"Add devices to a device group in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"devicegroup_delete","description":"Delete a device group from LibreNMS by name.","write_action":true,"price_micros":0,"input_schema":null},{"name":"devicegroup_devices","description":"List devices in a device group from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"devicegroup_remove_devices","description":"Remove devices from a device group in LibreNMS.","write_action":true,"price_micros":0,"input_schema":null},{"name":"devicegroup_set_maintenance","description":"Set maintenance for a device group in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"devicegroup_update","description":"Update a device group in LibreNMS.","write_action":true,"price_micros":0,"input_schema":null},{"name":"devicegroups_list","description":"List all device groups from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"devices_list","description":"List devices from LibreNMS with optional filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fdb_lookup","description":"Look up a MAC address in the forwarding database.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health_by_type","description":"Get health data by sensor type for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health_list","description":"List available health graphs for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health_sensor_get","description":"Get a specific sensor by ID for a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"inventory_device","description":"Get inventory for a device from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"inventory_device_flat","description":"Get flattened inventory for a device from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"location_add","description":"Add a new location to LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"location_delete","description":"Delete a location from LibreNMS by identifier.","write_action":true,"price_micros":0,"input_schema":null},{"name":"location_edit","description":"Edit a location in LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"location_get","description":"Get a specific location from LibreNMS by identifier.","write_action":false,"price_micros":0,"input_schema":null},{"name":"location_set_maintenance","description":"Set maintenance mode for all devices in a location.","write_action":false,"price_micros":0,"input_schema":null},{"name":"locations_list","description":"List locations from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"logs_alertlog","description":"Get alert logs for a device from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"logs_authlog","description":"Get authentication logs from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"logs_eventlog","description":"Get event logs for a device from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"logs_syslog","description":"Get syslogs for a device from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"logs_syslogsink","description":"Add a syslog entry to LibreNMS via API sink.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nac_list","description":"List network access control (802.1X / MAB) sessions across all devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ospf_list","description":"List all OSPF instances from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ospf_ports","description":"List all OSPF ports/interfaces from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"oxidized_config_get","description":"Get the stored device configuration from Oxidized for a specific device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"oxidized_config_search","description":"Search all Oxidized device configurations for a string.","write_action":false,"price_micros":0,"input_schema":null},{"name":"oxidized_list","description":"List devices tracked by Oxidized for config backup.","write_action":false,"price_micros":0,"input_schema":null},{"name":"poller_group_get","description":"Get poller group(s) from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_description_get","description":"Get port description from LibreNMS by port ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_description_update","description":"Update port description in LibreNMS by port ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"port_get","description":"Get port info from LibreNMS by port ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_graph","description":"Render a per-port graph as an image, for example interface traffic.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_group_add","description":"Add a port group to LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_group_graph","description":"Render a traffic graph for one or more ports, by port ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_group_list_ports","description":"List ports in a port group from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_groups_list","description":"List port groups from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_ip_info","description":"Get port IP info from LibreNMS by port ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_security_device","description":"Get port security configuration for every port on a device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_security_list","description":"List port security configuration across all devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_security_port","description":"Get port security configuration for a single port.","write_action":false,"price_micros":0,"input_schema":null},{"name":"port_transceiver","description":"Get port transceiver info from LibreNMS by port ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ports_list","description":"Get all ports from LibreNMS with optional filters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ports_search","description":"Search ports in LibreNMS by search string.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ports_search_field","description":"Search ports in LibreNMS by specific field.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ports_search_mac","description":"Search ports in LibreNMS by MAC address.","write_action":false,"price_micros":0,"input_schema":null},{"name":"routing_ip_addresses","description":"List all IP addresses from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sensors_list","description":"List all sensors across all devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"switching_links","description":"List all links from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"switching_vlans","description":"List all VLANs from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vrf_list","description":"List all VRF (Virtual Routing and Forwarding) instances from LibreNMS.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-20T20:09:06.691Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:09:06.563Z","components":{"code":{"score":25,"max":25,"notes":["28 source files scanned","28 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"librenms-mcp","version":"1.11.2","found":true,"weeklyDownloads":191,"dependencyCount":5,"publishedAt":"2026-09-02T09:57:49.032489Z","repositoryUrl":"https://github.com/mhajder/librenms-mcp"},{"registryType":"pypi","identifier":"librenms-mcp","version":"1.11.2","found":true,"dependencyCount":5,"publishedAt":"2026-09-02T09:57:49.032489Z","repositoryUrl":"https://github.com/mhajder/librenms-mcp"}],"repo":{"found":true,"owner":"mhajder","repo":"librenms-mcp","archived":false,"pushedAt":"2026-09-18T07:54:50Z","stars":37,"forks":10,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/6783135?v=4","ownerCreatedAt":"2014-02-25T14:13:55Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/6783135?v=4&s=128","source":"github"},"presence":{"stars":37,"forks":10,"downloadsWeek":191,"license":"MIT","lastPushAt":"2026-09-18T07:54:50.000Z","score":45}}}},"grade_history":[],"reviews":[]}