Skip to main content
Glama
fredriksknese

mcp-centreon

README.md
# mcp-centreon

MCP server for Centreon IT monitoring — hosts, services, alerts, acknowledgements, and downtimes.

Integrates Claude (or any MCP-compatible AI) with [Centreon](https://www.centreon.com/) to query monitoring status, manage acknowledgements and downtimes, and retrieve performance metrics.

## Features

- **Hosts** — list, search, and inspect monitored hosts; acknowledge problems; schedule downtimes
- **Services** — list and filter services by state or host; acknowledge and schedule downtimes
- **Alerts** — browse recent events, active acknowledgements, and scheduled/active downtimes
- **Performance** — list available metrics per service and fetch time-series data
- **Platform status** — cluster-level host/service state counts; poller topology

## API version support

Targets Centreon REST API v2 (`/centreon/api/latest/`), supported in **Centreon 21.04 and later** (including 21.10, 22.x, 23.x, 24.x).

The authentication endpoint used is:

```
POST https://{host}/centreon/api/latest/authentication/providers/configurations/local
```

If you use an older Centreon installation that only exposes the legacy v1 API, the monitoring endpoints will not be available. Upgrade to Centreon 21.04+ to use this server.

## Required Centreon user permissions

A **read-only** user is sufficient for all monitoring and read operations:

| Permission | Reason |
|---|---|
| `View all objects` (or access to relevant host groups) | Needed for listing hosts and services |
| `Reach API configuration` | Required for host/service groups endpoints |
| `Reach API realtime` | Required for monitoring, events, metrics endpoints |

To use acknowledgement and downtime tools the user also needs:

| Permission | Reason |
|---|---|
| `Acknowledge resources` | `acknowledge_host`, `acknowledge_service` |
| `Schedule downtimes` | `add_downtime_host`, `add_downtime_service` |

Create the API user in **Administration > ACL > ACL Access Groups** and assign the relevant ACL menus and actions.

## Setup

### 1. Install

```bash
npm install -g mcp-centreon
```

Or run directly without installing:

```bash
npx mcp-centreon
```

Or clone and build:

```bash
git clone https://github.com/fredriksknese/mcp-centreon
cd mcp-centreon
npm install
npm run build
```

### 2. Environment variables

| Variable | Required | Default | Description |
|---|---|---|---|
| `CENTREON_HOST` | Yes | — | Centreon server hostname or IP (without `https://`) |
| `CENTREON_USERNAME` | No | `admin` | Centreon login username |
| `CENTREON_PASSWORD` | Yes | — | Centreon login password |
| `CENTREON_ALLOW_SELF_SIGNED` | No | `true` | Accept self-signed TLS certificates (`true`/`false`) |

### 3. Claude Desktop configuration

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "centreon": {
      "command": "npx",
      "args": ["mcp-centreon"],
      "env": {
        "CENTREON_HOST": "centreon.example.com",
        "CENTREON_USERNAME": "admin",
        "CENTREON_PASSWORD": "your-password-here",
        "CENTREON_ALLOW_SELF_SIGNED": "true"
      }
    }
  }
}
```

If you installed globally via `npm install -g`:

```json
{
  "mcpServers": {
    "centreon": {
      "command": "mcp-centreon",
      "env": {
        "CENTREON_HOST": "centreon.example.com",
        "CENTREON_USERNAME": "admin",
        "CENTREON_PASSWORD": "your-password-here"
      }
    }
  }
}
```

## Available tools

### Hosts

| Tool | Description |
|---|---|
| `list_hosts` | List monitored hosts; filter by name or state (up/down/unreachable/pending) |
| `get_host` | Get full details for a host by ID |
| `list_host_groups` | List host groups with member counts |
| `acknowledge_host` | Acknowledge a host problem |
| `add_downtime_host` | Schedule a maintenance downtime for a host |

### Services

| Tool | Description |
|---|---|
| `list_services` | List services; filter by host name, service name, or state |
| `get_service` | Get full details for a service by host ID and service ID |
| `list_service_groups` | List service groups |
| `acknowledge_service` | Acknowledge a service problem |
| `add_downtime_service` | Schedule a maintenance downtime for a service |

### Alerts

| Tool | Description |
|---|---|
| `list_events` | List recent monitoring events; filter by host, state, or check type (soft/hard) |
| `list_acknowledgements` | List active acknowledgements — who acknowledged what and when |
| `list_downtimes` | List active and scheduled downtimes |

### Performance

| Tool | Description |
|---|---|
| `get_service_metrics` | List available performance metrics for a service |
| `get_metrics_data` | Get time-series data for a specific metric |

### Platform status

| Tool | Description |
|---|---|
| `get_platform_status` | Platform-level host/service counts broken down by state |
| `get_poller_list` | List pollers and remote servers with connectivity status |

## State mappings

| Code | Host state | Service state |
|---|---|---|
| 0 | Up | Ok |
| 1 | Down | Warning |
| 2 | Unreachable | Critical |
| 3 | — | Unknown |
| 4 | Pending | Pending |

## License

SEE LICENSE IN LICENSE

TDQS

A3.7/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct resource and action (list vs get, host vs service, acknowledge vs downtime, metrics discovery vs data retrieval). No two tools appear to do the same thing, and action verbs clearly differentiate between read and write operations.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_, list_, acknowledge_, add_downtime_), using snake_case throughout. The pattern is predictable and makes it easy to guess the purpose of a tool from its name.

Tool Count4/5

At 17 tools, the server is slightly above the ideal 3-15 range but each tool serves a distinct purpose within the monitoring domain. The count feels justified, covering hosts, services, groups, events, acknowledgements, downtimes, metrics, and pollers, though it is a bit heavy.

Completeness4/5

The tool surface covers the core monitoring lifecycle: viewing hosts/services, acknowledging problems, scheduling downtimes, and fetching performance metrics. Missing operations like canceling a downtime or listing acknowledgements in detail are minor gaps that agents could work around, but the set is largely complete for common monitoring tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues