DashyNMS MCP support

Setting it up, or stuck? Here’s how to get going and how to get help.

What you need

Setting it up

1. Get the image.

docker pull ghcr.io/dashynms/mcp:latest

2a. Claude Code: add the server with one command. Put in your own LibreNMS address and token.

claude mcp add dashynms -e LIBRENMS_URL=https://librenms.example.com -e LIBRENMS_TOKEN=your-token -- docker run -i --rm -e LIBRENMS_URL -e LIBRENMS_TOKEN ghcr.io/dashynms/mcp:latest

2b. Claude Desktop: first make a settings file somewhere outside any code repository, say dashynms.env, with one setting per line and no quotes:

LIBRENMS_URL=https://librenms.example.com
LIBRENMS_TOKEN=your-token

Then in Claude Desktop, open Settings → Developer → Edit Config and add this, pointing at your file:

{
  "mcpServers": {
    "dashynms": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--env-file", "C:\\path\\to\\dashynms.env", "ghcr.io/dashynms/mcp:latest"]
    }
  }
}

Quit Claude Desktop completely, from its tray icon rather than just closing the window, and open it again.

3. Ask it something. “What’s alerting right now?” is a good first question.

Common questions

“It won’t start.”

When it starts, the server checks its settings and tests your LibreNMS address and token before it answers anything. If something’s wrong, it stops with one plain line explaining why. In Claude Desktop you’ll find that line under Settings → Developer.

“My server uses a self-signed certificate.”

The server can’t stop and ask you, so it stops and prints the certificate’s details, including its fingerprint. Check that fingerprint against your server’s own certificate, then add it to LIBRENMS_TRUSTED_CERTS. Only that exact certificate is trusted, so you’ll add the new one when it’s renewed.

“Can it change anything on my network?”

No. It has no tools that change anything. With a read-only token, LibreNMS would refuse a change even if one were asked for. Do the same for Unimus and Graylog.

“I don’t want config backups leaving my network.”

Secrets are redacted from backups and diffs, but what’s left is still your configuration. Set MCP_CONFIG_TEXT=summary to only say whether a config changed, when, and by how much, or off to leave Unimus out entirely.

“The health overview says it can’t see every device.”

LibreNMS only shares its network-wide sensor list with users who have global read access. Without it, you can still check one device at a time, or a device group or location of up to 25 devices.

“The log and config questions don’t work.”

Those need Graylog and Unimus connected, with GRAYLOG_URL, GRAYLOG_USERNAME and GRAYLOG_PASSWORD, and UNIMUS_URL and UNIMUS_TOKEN. They aren’t tested at startup, so if one can’t be reached, the answer will say so.

“How do I update it?”

Docker keeps using the copy it already has. Pull the image again, then restart your AI app. If you’d rather choose when to update, use a version tag such as 1.1 instead of latest.

“Does it work with apps other than Claude?”

Yes. It’s a standard MCP server, so any app that supports MCP servers over stdio can use it. The instructions above are for Claude Desktop and Claude Code because they’re the most common.

“Do I need DashyNMS Desktop or Mobile too?”

No. It works on its own with any LibreNMS server. Desktop and Mobile are there if you want alerts on your screen or your phone as well.

Contact

Report a bug or ask for a feature: GitHub issues. For a security problem, please report it privately; see the security policy.

You can also reach us at dashynms@pckp.net.