PluginBench
MCP Server

LibreNMS MCP MCP Server

io.github.mhajder/librenms-mcp

What is the LibreNMS MCP MCP server?

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

How to install LibreNMS MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • LIBRENMS_URL
    required

    LibreNMS instance URL (e.g., https://librenms.example.com)

  • LIBRENMS_TOKEN
    required
    secret

    LibreNMS API token with appropriate permissions

  • LIBRENMS_VERIFY_SSL

    Verify TLS certificates for LibreNMS requests (true/false)

  • LIBRENMS_TIMEOUT

    HTTP timeout for LibreNMS API requests in seconds

  • READ_ONLY_MODE

    Enable read-only mode to block write operations

  • DISABLED_TAGS

    Comma-separated tool tags to disable (e.g., alerts,bills)

  • LOG_LEVEL

    Logging level (DEBUG, INFO, WARNING, ERROR)

  • RATE_LIMIT_ENABLED

    Enable per-client rate limiting (true/false)

  • RATE_LIMIT_MAX_REQUESTS

    Maximum requests allowed per rate-limit window

  • RATE_LIMIT_WINDOW_MINUTES

    Rate-limit window duration in minutes

  • TOOL_SEARCH_ENABLED

    Enable FastMCP tool search transform

  • TOOL_SEARCH_STRATEGY

    Tool search strategy: 'bm25' (natural language) or 'regex' (pattern match)

  • TOOL_SEARCH_MAX_RESULTS

    Maximum number of tools returned by search_tools

  • MCP_HTTP_PORT

    Port for HTTP server (default: 8000)

  • MCP_HTTP_BEARER_TOKEN
    secret

    Optional bearer token for HTTP transport authentication

  • MCP_TRANSPORT

    MCP transport type (http for HTTP, stdio for stdio)

  • SENTRY_DSN
    secret

    Sentry DSN for optional error tracking

  • SENTRY_TRACES_SAMPLE_RATE

    Sentry traces sample rate (0.0-1.0)

  • SENTRY_SEND_DEFAULT_PII

    Allow Sentry to include default PII in events (true/false)

  • SENTRY_ENVIRONMENT

    Sentry environment name (e.g., production)

  • SENTRY_RELEASE

    Sentry release identifier

  • SENTRY_PROFILE_SESSION_SAMPLE_RATE

    Sentry profile session sample rate (0.0-1.0)

  • SENTRY_PROFILE_LIFECYCLE

    Sentry profiling lifecycle mode

  • SENTRY_ENABLE_LOGS

    Enable Sentry log capture integration (true/false)

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "librenms-mcp": {
      "command": "uvx",
      "args": [
        "librenms-mcp"
      ],
      "env": {
        "LIBRENMS_URL": "<YOUR_LIBRENMS_URL>",
        "LIBRENMS_TOKEN": "<YOUR_LIBRENMS_TOKEN>",
        "LIBRENMS_VERIFY_SSL": "<YOUR_LIBRENMS_VERIFY_SSL>",
        "LIBRENMS_TIMEOUT": "<YOUR_LIBRENMS_TIMEOUT>",
        "READ_ONLY_MODE": "<YOUR_READ_ONLY_MODE>",
        "DISABLED_TAGS": "<YOUR_DISABLED_TAGS>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "RATE_LIMIT_ENABLED": "<YOUR_RATE_LIMIT_ENABLED>",
        "RATE_LIMIT_MAX_REQUESTS": "<YOUR_RATE_LIMIT_MAX_REQUESTS>",
        "RATE_LIMIT_WINDOW_MINUTES": "<YOUR_RATE_LIMIT_WINDOW_MINUTES>",
        "TOOL_SEARCH_ENABLED": "<YOUR_TOOL_SEARCH_ENABLED>",
        "TOOL_SEARCH_STRATEGY": "<YOUR_TOOL_SEARCH_STRATEGY>",
        "TOOL_SEARCH_MAX_RESULTS": "<YOUR_TOOL_SEARCH_MAX_RESULTS>",
        "MCP_HTTP_PORT": "<YOUR_MCP_HTTP_PORT>",
        "MCP_HTTP_BEARER_TOKEN": "<YOUR_MCP_HTTP_BEARER_TOKEN>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "SENTRY_DSN": "<YOUR_SENTRY_DSN>",
        "SENTRY_TRACES_SAMPLE_RATE": "<YOUR_SENTRY_TRACES_SAMPLE_RATE>",
        "SENTRY_SEND_DEFAULT_PII": "<YOUR_SENTRY_SEND_DEFAULT_PII>",
        "SENTRY_ENVIRONMENT": "<YOUR_SENTRY_ENVIRONMENT>",
        "SENTRY_RELEASE": "<YOUR_SENTRY_RELEASE>",
        "SENTRY_PROFILE_SESSION_SAMPLE_RATE": "<YOUR_SENTRY_PROFILE_SESSION_SAMPLE_RATE>",
        "SENTRY_PROFILE_LIFECYCLE": "<YOUR_SENTRY_PROFILE_LIFECYCLE>",
        "SENTRY_ENABLE_LOGS": "<YOUR_SENTRY_ENABLE_LOGS>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "librenms-mcp": {
      "command": "uvx",
      "args": [
        "librenms-mcp"
      ],
      "env": {
        "LIBRENMS_URL": "<YOUR_LIBRENMS_URL>",
        "LIBRENMS_TOKEN": "<YOUR_LIBRENMS_TOKEN>",
        "LIBRENMS_VERIFY_SSL": "<YOUR_LIBRENMS_VERIFY_SSL>",
        "LIBRENMS_TIMEOUT": "<YOUR_LIBRENMS_TIMEOUT>",
        "READ_ONLY_MODE": "<YOUR_READ_ONLY_MODE>",
        "DISABLED_TAGS": "<YOUR_DISABLED_TAGS>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "RATE_LIMIT_ENABLED": "<YOUR_RATE_LIMIT_ENABLED>",
        "RATE_LIMIT_MAX_REQUESTS": "<YOUR_RATE_LIMIT_MAX_REQUESTS>",
        "RATE_LIMIT_WINDOW_MINUTES": "<YOUR_RATE_LIMIT_WINDOW_MINUTES>",
        "TOOL_SEARCH_ENABLED": "<YOUR_TOOL_SEARCH_ENABLED>",
        "TOOL_SEARCH_STRATEGY": "<YOUR_TOOL_SEARCH_STRATEGY>",
        "TOOL_SEARCH_MAX_RESULTS": "<YOUR_TOOL_SEARCH_MAX_RESULTS>",
        "MCP_HTTP_PORT": "<YOUR_MCP_HTTP_PORT>",
        "MCP_HTTP_BEARER_TOKEN": "<YOUR_MCP_HTTP_BEARER_TOKEN>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "SENTRY_DSN": "<YOUR_SENTRY_DSN>",
        "SENTRY_TRACES_SAMPLE_RATE": "<YOUR_SENTRY_TRACES_SAMPLE_RATE>",
        "SENTRY_SEND_DEFAULT_PII": "<YOUR_SENTRY_SEND_DEFAULT_PII>",
        "SENTRY_ENVIRONMENT": "<YOUR_SENTRY_ENVIRONMENT>",
        "SENTRY_RELEASE": "<YOUR_SENTRY_RELEASE>",
        "SENTRY_PROFILE_SESSION_SAMPLE_RATE": "<YOUR_SENTRY_PROFILE_SESSION_SAMPLE_RATE>",
        "SENTRY_PROFILE_LIFECYCLE": "<YOUR_SENTRY_PROFILE_LIFECYCLE>",
        "SENTRY_ENABLE_LOGS": "<YOUR_SENTRY_ENABLE_LOGS>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "librenms-mcp": {
      "command": "uvx",
      "args": [
        "librenms-mcp"
      ],
      "env": {
        "LIBRENMS_URL": "<YOUR_LIBRENMS_URL>",
        "LIBRENMS_TOKEN": "<YOUR_LIBRENMS_TOKEN>",
        "LIBRENMS_VERIFY_SSL": "<YOUR_LIBRENMS_VERIFY_SSL>",
        "LIBRENMS_TIMEOUT": "<YOUR_LIBRENMS_TIMEOUT>",
        "READ_ONLY_MODE": "<YOUR_READ_ONLY_MODE>",
        "DISABLED_TAGS": "<YOUR_DISABLED_TAGS>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "RATE_LIMIT_ENABLED": "<YOUR_RATE_LIMIT_ENABLED>",
        "RATE_LIMIT_MAX_REQUESTS": "<YOUR_RATE_LIMIT_MAX_REQUESTS>",
        "RATE_LIMIT_WINDOW_MINUTES": "<YOUR_RATE_LIMIT_WINDOW_MINUTES>",
        "TOOL_SEARCH_ENABLED": "<YOUR_TOOL_SEARCH_ENABLED>",
        "TOOL_SEARCH_STRATEGY": "<YOUR_TOOL_SEARCH_STRATEGY>",
        "TOOL_SEARCH_MAX_RESULTS": "<YOUR_TOOL_SEARCH_MAX_RESULTS>",
        "MCP_HTTP_PORT": "<YOUR_MCP_HTTP_PORT>",
        "MCP_HTTP_BEARER_TOKEN": "<YOUR_MCP_HTTP_BEARER_TOKEN>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "SENTRY_DSN": "<YOUR_SENTRY_DSN>",
        "SENTRY_TRACES_SAMPLE_RATE": "<YOUR_SENTRY_TRACES_SAMPLE_RATE>",
        "SENTRY_SEND_DEFAULT_PII": "<YOUR_SENTRY_SEND_DEFAULT_PII>",
        "SENTRY_ENVIRONMENT": "<YOUR_SENTRY_ENVIRONMENT>",
        "SENTRY_RELEASE": "<YOUR_SENTRY_RELEASE>",
        "SENTRY_PROFILE_SESSION_SAMPLE_RATE": "<YOUR_SENTRY_PROFILE_SESSION_SAMPLE_RATE>",
        "SENTRY_PROFILE_LIFECYCLE": "<YOUR_SENTRY_PROFILE_LIFECYCLE>",
        "SENTRY_ENABLE_LOGS": "<YOUR_SENTRY_ENABLE_LOGS>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "librenms-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "librenms-mcp"
      ],
      "env": {
        "LIBRENMS_URL": "<YOUR_LIBRENMS_URL>",
        "LIBRENMS_TOKEN": "<YOUR_LIBRENMS_TOKEN>",
        "LIBRENMS_VERIFY_SSL": "<YOUR_LIBRENMS_VERIFY_SSL>",
        "LIBRENMS_TIMEOUT": "<YOUR_LIBRENMS_TIMEOUT>",
        "READ_ONLY_MODE": "<YOUR_READ_ONLY_MODE>",
        "DISABLED_TAGS": "<YOUR_DISABLED_TAGS>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "RATE_LIMIT_ENABLED": "<YOUR_RATE_LIMIT_ENABLED>",
        "RATE_LIMIT_MAX_REQUESTS": "<YOUR_RATE_LIMIT_MAX_REQUESTS>",
        "RATE_LIMIT_WINDOW_MINUTES": "<YOUR_RATE_LIMIT_WINDOW_MINUTES>",
        "TOOL_SEARCH_ENABLED": "<YOUR_TOOL_SEARCH_ENABLED>",
        "TOOL_SEARCH_STRATEGY": "<YOUR_TOOL_SEARCH_STRATEGY>",
        "TOOL_SEARCH_MAX_RESULTS": "<YOUR_TOOL_SEARCH_MAX_RESULTS>",
        "MCP_HTTP_PORT": "<YOUR_MCP_HTTP_PORT>",
        "MCP_HTTP_BEARER_TOKEN": "<YOUR_MCP_HTTP_BEARER_TOKEN>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "SENTRY_DSN": "<YOUR_SENTRY_DSN>",
        "SENTRY_TRACES_SAMPLE_RATE": "<YOUR_SENTRY_TRACES_SAMPLE_RATE>",
        "SENTRY_SEND_DEFAULT_PII": "<YOUR_SENTRY_SEND_DEFAULT_PII>",
        "SENTRY_ENVIRONMENT": "<YOUR_SENTRY_ENVIRONMENT>",
        "SENTRY_RELEASE": "<YOUR_SENTRY_RELEASE>",
        "SENTRY_PROFILE_SESSION_SAMPLE_RATE": "<YOUR_SENTRY_PROFILE_SESSION_SAMPLE_RATE>",
        "SENTRY_PROFILE_LIFECYCLE": "<YOUR_SENTRY_PROFILE_LIFECYCLE>",
        "SENTRY_ENABLE_LOGS": "<YOUR_SENTRY_ENABLE_LOGS>"
      }
    }
  }
}
Claude Code
claude mcp add librenms-mcp --env LIBRENMS_URL=<YOUR_LIBRENMS_URL> --env LIBRENMS_TOKEN=<YOUR_LIBRENMS_TOKEN> --env LIBRENMS_VERIFY_SSL=<YOUR_LIBRENMS_VERIFY_SSL> --env LIBRENMS_TIMEOUT=<YOUR_LIBRENMS_TIMEOUT> --env READ_ONLY_MODE=<YOUR_READ_ONLY_MODE> --env DISABLED_TAGS=<YOUR_DISABLED_TAGS> --env LOG_LEVEL=<YOUR_LOG_LEVEL> --env RATE_LIMIT_ENABLED=<YOUR_RATE_LIMIT_ENABLED> --env RATE_LIMIT_MAX_REQUESTS=<YOUR_RATE_LIMIT_MAX_REQUESTS> --env RATE_LIMIT_WINDOW_MINUTES=<YOUR_RATE_LIMIT_WINDOW_MINUTES> --env TOOL_SEARCH_ENABLED=<YOUR_TOOL_SEARCH_ENABLED> --env TOOL_SEARCH_STRATEGY=<YOUR_TOOL_SEARCH_STRATEGY> --env TOOL_SEARCH_MAX_RESULTS=<YOUR_TOOL_SEARCH_MAX_RESULTS> --env MCP_HTTP_PORT=<YOUR_MCP_HTTP_PORT> --env MCP_HTTP_BEARER_TOKEN=<YOUR_MCP_HTTP_BEARER_TOKEN> --env MCP_TRANSPORT=<YOUR_MCP_TRANSPORT> --env SENTRY_DSN=<YOUR_SENTRY_DSN> --env SENTRY_TRACES_SAMPLE_RATE=<YOUR_SENTRY_TRACES_SAMPLE_RATE> --env SENTRY_SEND_DEFAULT_PII=<YOUR_SENTRY_SEND_DEFAULT_PII> --env SENTRY_ENVIRONMENT=<YOUR_SENTRY_ENVIRONMENT> --env SENTRY_RELEASE=<YOUR_SENTRY_RELEASE> --env SENTRY_PROFILE_SESSION_SAMPLE_RATE=<YOUR_SENTRY_PROFILE_SESSION_SAMPLE_RATE> --env SENTRY_PROFILE_LIFECYCLE=<YOUR_SENTRY_PROFILE_LIFECYCLE> --env SENTRY_ENABLE_LOGS=<YOUR_SENTRY_ENABLE_LOGS> -- uvx librenms-mcp

Related MCP servers

MCP server for Ghostfolio portfolio management and financial data access

View repository →

MCP server for Zabbix monitoring and automation

View repository →