opennms-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@opennms-mcplist critical alarms"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
opennms-mcp
An MCP (Model Context Protocol) server that connects Claude to OpenNMS. Ask Claude to list alarms, inspect nodes, send events, update asset records, manage categories, and control service collection — all in plain language.
Prerequisites
Node.js 22+
An OpenNMS instance reachable over HTTP/HTTPS
A user account with API access (admin or a read/write role)
Related MCP server: openwebui-mcp-server
Installation
git clone https://github.com/c-perronnet/opennms-mcp.git
cd opennms-mcp
npm install
npm run buildConfiguration
Create a JSON file with your OpenNMS credentials. Two auth formats are supported:
Basic auth (opennms/myserver.json):
{
"url": "https://opennms.example.com",
"username": "admin",
"password": "secret"
}Token auth (opennms/myserver.json):
{
"url": "https://opennms.example.com",
"token": "your-api-token"
}Add "insecure": true to either format to skip TLS certificate validation (useful for self-signed certs).
Store config files in the opennms/ directory — it is git-ignored so credentials are never committed.
Connecting to Claude Desktop
Add the server to your claude_desktop_config.json:
{
"mcpServers": {
"opennms": {
"command": "node",
"args": ["/absolute/path/to/opennms-mcp/dist/index.js"],
"env": {
"OPENNMS_CONFIG": "/absolute/path/to/opennms-mcp/opennms/myserver.json"
}
}
}
}Alternatively, pass the config path as a positional argument:
{
"mcpServers": {
"opennms": {
"command": "node",
"args": [
"/absolute/path/to/opennms-mcp/dist/index.js",
"/absolute/path/to/opennms-mcp/opennms/myserver.json"
]
}
}
}Connecting to Claude Code
Claude Code reads MCP server config from ~/.claude/claude_mcp_settings.json. Add the server there:
{
"mcpServers": {
"opennms": {
"command": "node",
"args": ["/absolute/path/to/opennms-mcp/dist/index.js"],
"env": {
"OPENNMS_CONFIG": "/absolute/path/to/opennms-mcp/opennms/myserver.json"
}
}
}
}Or configure it via the CLI:
claude mcp add opennms \
-e OPENNMS_CONFIG=/absolute/path/to/opennms-mcp/opennms/myserver.json \
-- node /absolute/path/to/opennms-mcp/dist/index.jsVerify the server is loaded with /mcp in the Claude Code prompt. The tools listed below will then be available in any conversation.
Available tools
Connectivity
Tool | Description |
| Verify connectivity and return OpenNMS version |
Alarms
Tool | Description |
| List alarms, optionally filtered by FIQL expression |
| Get full details for an alarm by ID |
| Acknowledge an alarm |
| Unacknowledge, clear, or escalate an alarm |
Nodes
Tool | Description |
| List nodes, optionally filtered by FIQL expression |
| Get full node details (accepts numeric ID or |
| List IP interfaces for a node |
| List SNMP interfaces for a node |
| List outages for a node |
| Trigger a capability rescan for a node |
Events
Tool | Description |
| List events, optionally filtered by FIQL expression |
| Get full details for an event by ID |
| Send a custom event to the OpenNMS event bus |
Asset records
Tool | Description |
| Get the asset record for a node |
| Update one or more asset fields for a node |
Categories
Tool | Description |
| List all categories defined in OpenNMS |
| List categories assigned to a node |
| Assign a category to a node |
| Remove a category from a node |
Collection / polling
Tool | Description |
| List monitored services on a node's IP interface |
| Enable collection for a service (set to Active) |
| Disable collection for a service (set to Forced Unmanaged) |
FIQL filtering
Several list tools accept a filter parameter using FIQL syntax:
Operator | Meaning |
| equals |
| not equals |
| less than |
| greater than |
| AND |
| OR |
Examples:
severity==CRITICAL— critical alarms onlynode.label==web*— nodes whose label starts with "web"severity==MAJOR,severity==CRITICAL— major or critical alarmscategory.name==Routers— nodes in the Routers category
Development
npm run dev # watch mode — recompiles on file changes
npm run build # one-shot compile to dist/
npm start # run compiled server (requires OPENNMS_CONFIG)License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Create projects, nodes, and tasks in UluP Spaces by conversation with Claude.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
- sentinelOAuthio.rootstuff
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables Claude Desktop to connect to a ServiceNow instance for debugging and monitoring through natural conversation.-
- AlicenseAqualityDmaintenanceConnects Claude to Open WebUI, enabling chat management, RAG knowledge bases, files, functions, and prompts directly from Claude.2615 npm2MIT
- FlicenseNot gradedqualityBmaintenanceConnects Claude Desktop to a ServiceNow instance, enabling natural-language interactions to read incidents, inspect CMDB and table schemas, and create records with guardrails like update set scoping and dry-run preview.-
- AlicenseNot gradedqualityCmaintenanceConnects Claude Code to any ObjectStack deployment, enabling discovery, querying, and updating of objects and records, plus running business actions, all under user permissions and row-level security.Apache 2.0