# LibreNMS MCP

Connect an AI agent to LibreNMS to inspect devices, ports, and alerts, or manage network resources from your coding environment.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 42
- Author: mhajder
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/mhajder/librenms-mcp
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/librenms-mcp

## What it does

LibreNMS MCP gives an agent access to network data such as device health, interface statistics, topology, event logs, alert history, and endpoints found by MAC or IP address. It can also look up device and port groups, routing details, and network services. Queries support filtering.

The server can create, edit, and remove devices, ports, and groups. Set `READ_ONLY_MODE` to disable write operations before connecting if the agent should only inspect your network. Running it requires Python 3.11–3.15, access to LibreNMS, and a token with suitable permissions.

For Claude Code, the setup runs the server with `uvx` and passes the LibreNMS URL and token as environment variables. SSL verification and request timeouts are configurable. A token without permission for a requested action will prevent that operation from succeeding.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `LIBRENMS_URL`, `LIBRENMS_TOKEN`, `LIBRENMS_VERIFY_SSL`, `LIBRENMS_TIMEOUT`, `READ_ONLY_MODE`, `DISABLED_TAGS`, `LOG_LEVEL`, `RATE_LIMIT_ENABLED`, `RATE_LIMIT_MAX_REQUESTS`, `RATE_LIMIT_WINDOW_MINUTES` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env LIBRENMS_URL=<LIBRENMS_URL> --env LIBRENMS_TOKEN=<LIBRENMS_TOKEN> --env LIBRENMS_VERIFY_SSL=<LIBRENMS_VERIFY_SSL> --env LIBRENMS_TIMEOUT=<LIBRENMS_TIMEOUT> --env READ_ONLY_MODE=<READ_ONLY_MODE> --transport stdio librenms-mcp -- uvx librenms-mcp
```
Replace <…> with your own values. 19 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from librenms-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add librenms-mcp --env LIBRENMS_URL=<LIBRENMS_URL> --env LIBRENMS_TOKEN=<LIBRENMS_TOKEN> --env LIBRENMS_VERIFY_SSL=<LIBRENMS_VERIFY_SSL> --env LIBRENMS_TIMEOUT=<LIBRENMS_TIMEOUT> --env READ_ONLY_MODE=<READ_ONLY_MODE> -- uvx librenms-mcp
```
Replace <…> with your own values. 19 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from librenms-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "librenms-mcp": {
            "command": "uvx",
            "args": [
                "librenms-mcp"
            ],
            "env": {
                "LIBRENMS_URL": "<LIBRENMS_URL>",
                "LIBRENMS_TOKEN": "<LIBRENMS_TOKEN>",
                "LIBRENMS_VERIFY_SSL": "<LIBRENMS_VERIFY_SSL>",
                "LIBRENMS_TIMEOUT": "<LIBRENMS_TIMEOUT>",
                "READ_ONLY_MODE": "<READ_ONLY_MODE>"
            }
        }
    }
}
```
Replace <…> with your own values. 19 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from librenms-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "librenms-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "librenms-mcp"
            ],
            "env": {
                "LIBRENMS_URL": "<LIBRENMS_URL>",
                "LIBRENMS_TOKEN": "<LIBRENMS_TOKEN>",
                "LIBRENMS_VERIFY_SSL": "<LIBRENMS_VERIFY_SSL>",
                "LIBRENMS_TIMEOUT": "<LIBRENMS_TIMEOUT>",
                "READ_ONLY_MODE": "<READ_ONLY_MODE>"
            }
        }
    }
}
```
Replace <…> with your own values. 19 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from librenms-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e LIBRENMS_URL=<LIBRENMS_URL> -e LIBRENMS_TOKEN=<LIBRENMS_TOKEN> -e LIBRENMS_VERIFY_SSL=<LIBRENMS_VERIFY_SSL> -e LIBRENMS_TIMEOUT=<LIBRENMS_TIMEOUT> -e READ_ONLY_MODE=<READ_ONLY_MODE> librenms-mcp uvx librenms-mcp
```
Replace <…> with your own values. 19 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from librenms-mcp <command>

## When to use it
- check device health and find affected ports
- inspect traffic and interface status
- review alert history and event logs
- locate endpoints by MAC or IP address
- update LibreNMS devices and groups

## Example prompts
- Find devices in LibreNMS that have a problem status and list their ports.
- Review the alert history and event logs for the selected period.
- Look up the device with this IP address and update its LibreNMS details.

## Similar
- [aws-network-monitoring](https://affpapa.org/en/nevibecode/skills/aws-network-monitoring.md) — skill · 4900 installs
- [cx-infra](https://affpapa.org/en/nevibecode/skills/cx-infra.md) — skill · 2600 installs
- [chatting-with-aws-devops-agent](https://affpapa.org/en/nevibecode/skills/chatting-with-aws-devops-agent.md) — skill · 1500 installs
- [aracli-deploy-management](https://affpapa.org/en/nevibecode/skills/aracli-deploy-management.md) — skill · 1200 installs
- [catalyst-zoho-mcp](https://affpapa.org/en/nevibecode/skills/catalyst-zoho-mcp.md) — skill · 1000 installs
- [use-railway](https://affpapa.org/en/nevibecode/skills/use-railway.md) — skill · 951 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
