NE

Netdata MCP Server: Observability Metrics, Logs, Processes

Explore observability with the MCP server: discover, analyze and report metrics, logs, processes, containers and network connections for root-cause resolution.

Overview

The Netdata MCP (Model Context Protocol) server is a component of Netdata that exposes contextual observability models — metrics, logs, processes, containers, and network connections — in a structured, machine-friendly way. Instead of raw time-series alone, MCP surfaces contextual objects and relationships so tooling can discover, correlate and reason about what is happening on a host or cluster for faster root-cause analysis.

MCP is useful when you want programmatic access to high-level observability constructs: subscribe to the events and models that describe running processes, their container surroundings, related metrics and network connections, and then combine those with logs and traces. This makes it easier to build automation, incident investigation tools, or richer UIs that can join signals across layers.

Features

  • Exposes context models for:
    • Metrics (collected time-series and metric metadata)
    • Logs (indexed log entries and streams)
    • Processes (process metadata, parents, resource usage)
    • Containers (container metadata, images, runtime info)
    • Network connections (active sockets, endpoints)
  • Model discovery: enumerate available models, fields, and relationships
  • Subscription/streaming: subscribe to model changes and real-time events
  • Designed for automation: enable programmatic root-cause reasoning and incident workflows
  • Integrates with the rest of Netdata (collectors, dashboards, Cloud)

Installation / Configuration

The MCP server is shipped as part of Netdata. Install Netdata first, then enable/verify the MCP server.

  1. Install Netdata (official installer):
# From the Netdata GitHub
git clone https://github.com/netdata/netdata.git
cd netdata
sudo ./netdata-installer.sh
  1. Enable MCP in Netdata configuration
  • Edit the Netdata config file (commonly /etc/netdata/netdata.conf or conf.d/web.conf).
  • Ensure the web interface and API are enabled so the MCP server can accept connections.

Example (edit the appropriate config file; keys may vary by Netdata version):

[web]
# ensure the web/API subsystem is enabled
# (file and keys may differ by release; consult your Netdata version docs)
enable web = yes
# if there are explicit options for MCP, enable them here (example placeholders)
# enable mcp = yes
# mcp listen port = 19999
  1. Restart Netdata
sudo systemctl restart netdata
# or, if not using systemd:
sudo service netdata restart
  1. Verify the server is listening (default Netdata port is 19999):
ss -ltnp | grep 19999
# or
curl -sS http://localhost:19999/ | head

Note: exact configuration keys and endpoints can change between Netdata releases. Refer to the Netdata repository or your installed version’s documentation for precise options.

Available Resources

  • Source and official README: https://github.com/netdata/netdata/blob/master/src/web/mcp/README.md
  • Netdata main repository: https://github.com/netdata/netdata
  • Netdata docs / configuration: check /usr/share/doc/netdata or the project’s documentation site

Common model types exposed by MCP:

ModelWhat it describes
metricsTime-series data, metric names, units, charts and dimensions
logsLog streams and indexed log entries from collectors
processesProcess lists, PIDs, command-line, resource usage
containersContainer/Pod metadata: image, id, runtime, labels
connectionsActive network sockets, local/remote endpoints, protocol

Interacting with the MCP Server

MCP is designed for programmatic consumption. Typical interactions include:

  • Model discovery: request a list of available models and fields
  • Subscription: open a stream (HTTP/WebSocket or long poll) to receive events/changes
  • Query: request a snapshot or filtered view of a model (for example, processes for a container)

Example (pseudo-HTTP subscription pattern):

POST /mcp/subscribe HTTP/1.1
Host: localhost:19999
Content-Type: application/json

{
  "model": "processes",
  "filter":