Skip to main content
Glama
Apache AIops

Apache AIops

README.md
<!-- mcp-name: io.github.AIops-tools/apache-aiops -->
# Apache AIops

A dedicated, governed MCP server, CLI and skill for Apache HTTP Server with 17 MCP tools. It uses Apache's own `apachectl` diagnostics, optional operator-configured HTTP health and `mod_status` URLs, and bounded reads of an operator-configured error log plus a privacy-preserving access-log status summary. Every call is audited and budgeted by the vendored governance harness.

## What it checks

- Apache version, config syntax, parsed virtual hosts and loaded modules.
- Build options and parsed runtime configuration.
- Parsed config include tree, compiled modules and directives from static modules.
- Optional machine-readable `mod_status` metrics, bounded error-log tail and privacy-preserving access-status summary.
- Optional HTTP health status without downloading the response body.
- `apache_diagnose` correlates the checks and preserves failures as errors with `data: null`.

## Setup from source

Requires Python 3.11+, `uv`, and `apachectl` on the operator host. Run `uv sync --dev`, `uv run apache-aiops init`, then `uv run apache-aiops doctor`. Manual `~/.apache-aiops/config.yaml`:

```yaml
targets:
  - name: local
    apachectl_bin: apachectl
    probe_url: http://127.0.0.1/health
    status_url: http://127.0.0.1/server-status?auto
    error_log: /var/log/apache2/error.log
    access_log: /var/log/apache2/access.log
    timeout: 10
    verify_ssl: true
```

Run `uv run apache-aiops diagnose`. The MCP entry point is `uv run apache-aiops-mcp`. The optional HTTP probe is configured by the operator, not chosen by a tool caller. TLS verification is enabled by default, and `ca_file` accepts a custom CA PEM.

## Scope and verification

`graceful-reload` first runs `configtest`, supports dry-run and two CLI confirmations, and reports an unknown final outcome even if the command returned: existing workers may still serve the old config. It has no safe inverse when the prior config file is not snapshotted. Vhost editing, TLS certificate management and module changes remain outside this release. See [verification](docs/VERIFICATION.md). Missing operations and live-environment feedback are welcome as issues or PRs.

TDQS

B3.2/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target distinct diagnostic facets such as build info, loaded vs compiled modules, access logs, error logs, server status, and probes. There is some overlap among apache_runtime_config, apache_static_directives, apache_config_includes, apache_vhosts, and apache_diagnose, but the descriptions and aggregate-vs-specific framing make selection reasonably clear.

Naming Consistency4/5

The Apache domain tools consistently use an apache_ snake_case prefix, and the undo helpers use a consistent undo_ prefix. The mixed prefix families are logical rather than chaotic, though the set is not a single uniform verb_noun pattern.

Tool Count4/5

Seventeen tools is slightly above the ideal compact range, but the surface spans several legitimate Apache diagnostic areas: config, modules, vhosts, logs, status, reload, and undo. Each tool has a plausible operational role rather than being redundant filler.

Completeness4/5

The set covers key Apache AIops workflows: version/build inspection, config checking, module and vhost discovery, log/status inspection, diagnosis, graceful reload, and undo support. It lacks broader service lifecycle controls such as start/stop/restart and config mutation, but those are minor gaps for a primarily diagnostic server.

Maintenance

ActivityMaintained
ResponsivenessNo issues