# Netra (oci · ghcr.io/zyvorai/netra-mcp)

eBPF network observability and safe emergency control for Linux and Kubernetes.

- Trust score: 37/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-19

## Components

- oci · `ghcr.io/zyvorai/netra-mcp`: 37/100 (this document), [markdown](https://verifymcp.io/servers/zyvorai-netra/ghcr-io-zyvorai-netra-mcp.md), [page](https://verifymcp.io/servers/zyvorai-netra/ghcr-io-zyvorai-netra-mcp)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/zyvorai/netra-mcp`
- Version: `0.32.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-19.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: this image's dependency list comes from an SBOM its publisher attached, which nothing verifies, so we will not report it as a clean result.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this image's dependency list comes from an SBOM its publisher attached. It names packages and versions but not whether each is deprecated, still maintained or linked to its source, so there is nothing we can fairly grade.
- **Provenance & Transparency**: 35/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: the license (NOASSERTION) isn't a recognized OSI-approved license.
  - Actively maintained (last published 0 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 9769 tokens (~66/item across 147 items; 138 tools + 9 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "netra_ebpf_drops" implies "drop" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 139 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Netra MCP server?

Netra runs locally as a container image, launched with docker run --rm -i -e NETRA_URL -e NETRA_API_KEY -e NETRA_MCP_ALLOW_MUTATIONS -e NETRA_MCP_ACTOR ghcr.io/zyvorai/netra-mcp:0.32.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add zyvorai-netra -- docker run --rm -i -e NETRA_URL -e NETRA_API_KEY -e NETRA_MCP_ALLOW_MUTATIONS -e NETRA_MCP_ACTOR ghcr.io/zyvorai/netra-mcp:0.32.0
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Cursor

```json
{
  "mcpServers": {
    "zyvorai-netra": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "NETRA_URL",
        "-e",
        "NETRA_API_KEY",
        "-e",
        "NETRA_MCP_ALLOW_MUTATIONS",
        "-e",
        "NETRA_MCP_ACTOR",
        "ghcr.io/zyvorai/netra-mcp:0.32.0"
      ]
    }
  }
}
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### VS Code

```json
{
  "servers": {
    "zyvorai-netra": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "NETRA_URL",
        "-e",
        "NETRA_API_KEY",
        "-e",
        "NETRA_MCP_ALLOW_MUTATIONS",
        "-e",
        "NETRA_MCP_ACTOR",
        "ghcr.io/zyvorai/netra-mcp:0.32.0"
      ]
    }
  }
}
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Codex

```bash
codex mcp add zyvorai-netra -- docker run --rm -i -e NETRA_URL -e NETRA_API_KEY -e NETRA_MCP_ALLOW_MUTATIONS -e NETRA_MCP_ACTOR ghcr.io/zyvorai/netra-mcp:0.32.0
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zyvorai-netra": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "-e",
        "NETRA_URL",
        "-e",
        "NETRA_API_KEY",
        "-e",
        "NETRA_MCP_ALLOW_MUTATIONS",
        "-e",
        "NETRA_MCP_ACTOR",
        "ghcr.io/zyvorai/netra-mcp:0.32.0"
      ],
      "enabled": true
    }
  }
}
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Hermes

```yaml
mcp_servers:
  zyvorai-netra:
    command: "docker"
    args: ["run", "--rm", "-i", "-e", "NETRA_URL", "-e", "NETRA_API_KEY", "-e", "NETRA_MCP_ALLOW_MUTATIONS", "-e", "NETRA_MCP_ACTOR", "ghcr.io/zyvorai/netra-mcp:0.32.0"]
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Netclaw

```json
{
  "McpServers": {
    "zyvorai-netra": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "-e",
        "NETRA_URL",
        "-e",
        "NETRA_API_KEY",
        "-e",
        "NETRA_MCP_ALLOW_MUTATIONS",
        "-e",
        "NETRA_MCP_ACTOR",
        "ghcr.io/zyvorai/netra-mcp:0.32.0"
      ]
    }
  }
}
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

### Other

```json
{
  "mcpServers": {
    "zyvorai-netra": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "NETRA_URL",
        "-e",
        "NETRA_API_KEY",
        "-e",
        "NETRA_MCP_ALLOW_MUTATIONS",
        "-e",
        "NETRA_MCP_ACTOR",
        "ghcr.io/zyvorai/netra-mcp:0.32.0"
      ]
    }
  }
}
```

This image reads NETRA_URL, NETRA_API_KEY, NETRA_MCP_ALLOW_MUTATIONS and NETRA_MCP_ACTOR. Set them in your client's env block for this server; docker run -e passes each one through to the container.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-19 (score 37, +1)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.10 → unverified
- [functional regression] Capabilities: fail → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional] Package version: 0.31.0 → 0.32.0

### 2026-10-17 (score 36, +1)

- [functional improvement] Stability: unverified → 0.07
- [functional] Package version: 0.30.1 → 0.31.0

### 2026-10-15 (score 35)

First indexed and scored.

## MCP tools (138)

### `netra_agents` (~29 tokens)

List all reporting Netra agents (one per node) with their latest status and staleness.

### `netra_ai_agent` (~157 tokens)

Run the in-process natural-language graph: classify the question, optionally preview a deny/rate/allow draft, then synthesize a brief. Same snapshot and read-only contract as netra_ai_ask. Returns a step trace. Never applies rules.

Input parameters:

- `conversationId` (string): Optional. Web/ChatOps multi-turn id; leave empty from MCP — the calling agent already has its own memory.
- `namespace` (string): Optional namespace hint included in the answer context.
- `preferLlm` (boolean): Hint only; the controller uses the configured provider when a key is set.
- `question` (string, required): Operator question, e.g. "why is DNS failing in kube-system?" or "deny dns malware.example".

### `netra_ai_ask` (~108 tokens)

Ask a natural-language question about the current Netra snapshot. Answers from aggregates only. Optional LLM rewrite when NETRA_AI_API_KEY is set on the controller. Never mutates.

Input parameters:

- `namespace` (string): Optional namespace hint included in the answer context.
- `preferLlm` (boolean): Hint only; the controller uses the configured provider when a key is set.
- `question` (string, required): Operator question, e.g. "why is DNS failing in kube-system?".

### `netra_ai_brief` (~36 tokens)

Deterministic cluster network brief built from live agent/health/insights aggregates. No packet payloads. Read-only.

### `netra_ai_digest` (~34 tokens)

On-call digest: severity, incident fingerprint, copy-paste card. Fingerprint stays stable while only raw counters chatter.

### `netra_ai_draft` (~82 tokens)

Parse a natural-language deny/rate request into a preview eBPF rule. Never applies. Review the body/CLI then use a mutating tool only if the operator explicitly wants it.

Input parameters:

- `question` (string, required): e.g. "deny dns malware.example" or "rate limit 1.2.3.4 to 100 pps".

### `netra_ai_explain` (~115 tokens)

Narrate one structured finding (kind/subject/message/page) against the live snapshot. Read-only.

Input parameters:

- `kind` (string): Finding kind, e.g. dns-failure or kfree_skb.
- `message` (string): Original finding text.
- `page` (string): Dashboard page the finding came from: health, drops, insights.
- `question` (string): Optional override question.
- `severity` (string): info|warning|critical.
- `subject` (string): Workload or node subject.

### `netra_ai_status` (~41 tokens)

Whether the optional LLM rewrite path is configured. Heuristic briefs always work; an API key is required only for prose rewrite. AI endpoints never mutate.

### `netra_ai_suggestions` (~31 tokens)

Live follow-up questions derived from the current snapshot (stale agents, DNS, exposure, lease).

### `netra_audit` (~65 tokens)

List recent Netra audit events: every mutating action taken through the controller API, including by this MCP server, with actor/action/target.

Input parameters:

- `limit` (integer): Max events to return, 1-500 (server caps at 500). Default 100.

### `netra_audit_summary` (~74 tokens)

Rollup of the audit log by actor, action, and hour. Observe-only.

Input parameters:

- `limit` (integer): Max audit events to aggregate, 1-1000. Default 500.
- `since` (string): RFC3339 lower bound.
- `until` (string): RFC3339 upper bound.

### `netra_baselines` (~23 tokens)

Whether behavior and rate baselines exist and how old they are.

### `netra_capture_status` (~40 tokens)

Every node with an active packet-capture session: filter, snap length, requestor, start/expiry time. Does not return captured packets themselves.

### `netra_capture_summaries` (~67 tokens)

Bounded metadata for active and recent capture sessions (frame counts, protocol buckets, duration). Never returns packet payloads or PCAP bytes — use the Capture UI for live frames.

Input parameters:

- `limit` (integer): Max history rows, 1-500. Default 50.

### `netra_compliance` (~33 tokens)

CIS-inspired network hardening pack from sysctl-audit. Review-only; Netra never writes sysctls.

### `netra_dns_board` (~40 tokens)

DNS names ranked by failure count from agent DNS health stats.

Input parameters:

- `limit` (integer): Max rows, 1-200. Default 30.

### `netra_drops_explain` (~99 tokens)

Unified explain-a-drop findings: Netra's own standalone-eBPF Drop Detective findings (always present) plus Hubble/Cilium findings when Hubble is configured. Each finding's source field distinguishes netra from hubble.

Input parameters:

- `limit` (integer): Max dropped flows to explain, 1-100. Default 20.
- `namespace` (string): Filter by namespace.
- `pod` (string): Filter by pod name.

### `netra_ebpf_ai_destinations` (~40 tokens)

Observe known GenAI/MCP SaaS destinations via SNI/HTTP Host/DNS metadata. No payloads. Applies nothing.

### `netra_ebpf_app_categories` (~34 tokens)

Heuristic CDN/SaaS/cloud category labels from SNI/Host/DNS metadata. Not DPI.

### `netra_ebpf_attachments` (~74 tokens)

Read-only BPF attachment inventory and hook drift per node. Lists what the kernel reports; never attaches, detaches, or replaces a program, and never touches Cilium-owned programs or maps. Fix missing Netra hooks by restarting the agent.

Input parameters:

- `node` (string): Limit to one node name.

### `netra_ebpf_auto_mitigate` (~36 tokens)

Status of optional volumetric auto-mitigation (conn-rate / Shield / leased deny). Observe-only.

### `netra_ebpf_auto_mitigate_preview` (~53 tokens)

Shadow preview of volumetric auto-mitigate candidates from current scan findings and UDP deltas. Applies nothing. Metric anomalies never feed this path. Live actions still need an enforce lease.

### `netra_ebpf_capabilities` (~42 tokens)

Static manifest of this Netra deployment's eBPF hooks, observability signals, and enforcement capabilities, including per-rule-type map capacity limits.

### `netra_ebpf_capdrift` (~107 tokens)

Capability-change anomalies (effective-capability gain/loss) on processes the eBPF datapath already tracks — agent-sourced from a periodic /proc scan (requires NETRA_PROCMETA_ENABLED on the agent), not a live kernel credential read. Includes a capdrift-coverage-gap finding when an agent restarted recently, since its in-memory diff state resets on restart.

Input parameters:

- `limit` (integer): Max items, 1-200. Default 50.

### `netra_ebpf_census` (~28 tokens)

Counts of deny/allow list entries. Does not return the entries themselves.

### `netra_ebpf_config` (~64 tokens)

The live eBPF fast-path configuration (mode, all blocked IPs/CIDRs/ports/UIDs/DNS/processes/SNI, rate limits, workload scopes).

Input parameters:

- `node` (string): Also include the current workload inventory for this node.

### `netra_ebpf_coverage` (~34 tokens)

Per-node hook/program coverage matrix: attached vs detached programs, missing maps, stale agents. Observe-only.

### `netra_ebpf_deny_preview` (~227 tokens)

Review-only blast radius for a proposed emergency deny. Matches live non-stale agent flow counters, connect-attempt, DNS, TLS SNI, or sampled process events. Applies nothing, writes nothing, does not flip enforce mode. Absence of a hit is not proof the destination is unused.

Input parameters:

- `direction` (string): Packet direction to match. Default both.
- `kind` (string, required): Deny kind to preview.
- `limit` (integer): Max hits to return, 1-200. Default 50.
- `namespace` (string): Optional workload namespace filter.
- `pod` (string): Optional pod name filter.
- `port` (integer): Optional destination port for kind=port when value is not the port.
- `protocol` (string): Optional L4 protocol filter for ip/cidr/port.
- `value` (string, required): IP, CIDR, port number, DNS name, SNI, or process comm.
- `workloadKind` (string): Optional owner kind filter.
- `workloadName` (string): Optional owner name filter.

### `netra_ebpf_deny_preview_history` (~256 tokens)

Review-only historical blast radius for a proposed emergency deny against the controller flowlog (up to 7 days). Uses counterfactual evaluation over retained flow deltas. Applies nothing. Prefer live netra_ebpf_deny_preview for process matches and current counters; DNS/SNI often empty on historical rows.

Input parameters:

- `direction` (string): Packet direction to match. Default both.
- `kind` (string, required): Deny kind to preview.
- `limit` (integer): Max flow deltas to evaluate, up to 100000. Default 2000.
- `namespace` (string): Optional workload namespace filter.
- `pod` (string): Optional pod name filter.
- `port` (integer): Optional destination port for kind=port when value is not the port.
- `protocol` (string): Optional L4 protocol filter for port.
- `since` (string): Lookback window: duration (default 1h, max 168h) or RFC3339 start.
- `value` (string, required): IP, CIDR, port number, DNS name, or SNI.
- `workloadKind` (string): Optional owner kind filter.
- `workloadName` (string): Optional owner name filter.

### `netra_ebpf_diagnose` (~48 tokens)

Drop-detective findings: likely root causes for observed drops, correlated with the current fast-path config.

Input parameters:

- `limit` (integer): Max findings. Default 50.

### `netra_ebpf_dns_findings` (~98 tokens)

Metadata-only DNS anomaly findings (tunneling, DGA, beaconing, NXDOMAIN/SERVFAIL storms) from a continuously-running detector fed by matched DNS-response events. Observe-only; a miss does not prove a domain is benign. Returns 409 if NETRA_DNSDETECT_ENABLED is not set. Distinct from netra_dns_board, which is per-name query/failure counters, not behavioral detection.

### `netra_ebpf_drops` (~44 tokens)

Drop diagnostics aggregated from kernel skb drop-reason counters across agents.

Input parameters:

- `limit` (integer): Max items, 1-500. Default 50.

### `netra_ebpf_encrypted_dns` (~35 tokens)

DoT (port 853) and known DoH SaaS destinations from metadata. No decryption.

### `netra_ebpf_exehash` (~112 tokens)

Executable-content-hash-change anomalies on processes the eBPF datapath already tracks — a live process's on-disk binary content changing while it runs. Observe-only half of exe-hash leased deny; agent-sourced from the same periodic /proc scan capability-drift uses (requires NETRA_PROCMETA_ENABLED). Includes an exehash-coverage-gap finding when an agent restarted recently.

Input parameters:

- `limit` (integer): Max items, 1-200. Default 50.

### `netra_ebpf_health` (~51 tokens)

Network health diagnostics and anomalies derived from agent reports (TCP health, retransmits, connect latency, etc.).

Input parameters:

- `limit` (integer): Max items, 1-200. Default 20.

### `netra_ebpf_interfaces` (~75 tokens)

Per-interface flow attribution: packets/bytes/blocked and top destinations per network interface, from Netra's TC/TCX-attached hooks only (not cgroup or XDP-early-deny traffic).

Input parameters:

- `limit` (integer): Max top destinations per interface, 1-200. Default 10.

### `netra_ebpf_ipv6` (~57 tokens)

IPv6 extension-header and fragmentation diagnostics: extension-header counts, fragmentation rate, and truncated-chain counts per node, with anomaly detection.

Input parameters:

- `limit` (integer): Max items, 1-500. Default 50.

### `netra_ebpf_l7` (~66 tokens)

Best-effort L7 observability: TLS SNI, cleartext HTTP/1 method+Host, and HTTP/1 status when the status line starts the packet.

Input parameters:

- `limit` (integer): Max items, 1-1000. Default 100.

### `netra_ebpf_maps` (~67 tokens)

Read-only inventory of datapath map contents (controller desired state under /sys/fs/bpf/netra): deny/allow/rate/policy entries with human labels, counts, and limits. Not a raw bpftool dump. See docs/ebpf-maps.md.

### `netra_ebpf_nsdrift` (~98 tokens)

Network-namespace-change anomalies on processes the eBPF datapath already tracks — a live process moving network namespaces after start (setns), agent-sourced from the same periodic /proc scan capability-drift uses (requires NETRA_PROCMETA_ENABLED). Includes an nsdrift-coverage-gap finding when an agent restarted recently.

Input parameters:

- `limit` (integer): Max items, 1-200. Default 50.

### `netra_ebpf_path` (~45 tokens)

Path diagnostics: per-hop/per-hook health signals for traffic across the cluster.

Input parameters:

- `limit` (integer): Max items, 1-500. Default 50.

### `netra_ebpf_reasons` (~27 tokens)

Histogram of FastPathEvent action/reason pairs. No payloads.

### `netra_ebpf_rules_get` (~43 tokens)

Get one eBPF fast-path rule by its stable ID.

Input parameters:

- `id` (string, required): Rule ID from netra_ebpf_rules_list.

### `netra_ebpf_rules_history` (~93 tokens)

Revision history for one eBPF fast-path rule's edits (via netra_ebpf_rules_patch), each with a before/after snapshot. Rule creation/deletion remain visible via netra_audit instead.

Input parameters:

- `id` (string, required): Rule ID from netra_ebpf_rules_list.
- `limit` (integer): Max revisions to return, 1-200. Default 50.

### `netra_ebpf_rules_list` (~76 tokens)

List every eBPF fast-path deny rule (exact IP, CIDR, port, UID, process, DNS, SNI, rate limit) with its stable ID, so it can be referenced by netra_ebpf_rules_patch/_delete/_history instead of the legacy value-keyed add/delete tools.

### `netra_ebpf_scan_findings` (~90 tokens)

Port-scan, fan-out, lateral-movement, and SYN-flood findings from a continuously-running detector fed by per-connection-attempt TCP flag data. Allowed (non-blocked) traffic is only sampled by the datapath, so absence of a finding is not proof a workload made no such attempts. Returns 409 if NETRA_SCANDETECT_ENABLED is not set.

### `netra_ebpf_scope_preview` (~74 tokens)

Preview which pods would match a set of eBPF workload scopes, without changing the active scope (see netra_ebpf_scope_set to apply).

Input parameters:

- `scopes` (array, required): Workload scopes to test. Each may specify namespace/pod/workloadKind/workloadName/labels/cgroupId.

### `netra_ebpf_shield` (~74 tokens)

XDP Shield diagnostics: allowed/dropped/audited traffic broken out by class (SYN/UDP/ICMP/other) per node, plus the top offending sources across the cluster, with anomaly detection.

Input parameters:

- `limit` (integer): Max items, 1-500. Default 50.

### `netra_ebpf_stack_histograms` (~57 tokens)

Observe-only softirq/softnet pressure and listen-queue depth buckets from agent reports. Not entry→exit softirq latency. Never changes tunables.

Input parameters:

- `node` (string): Limit to one node name.

### `netra_ebpf_summary` (~28 tokens)

A high-level rollup of eBPF fast-path activity across all agents.

### `netra_ebpf_sysctl_audit` (~159 tokens)

Network-hardening/tuning sysctl inventory across agents: per-interface security posture (rp_filter, redirects, source-route, martians, proxy_arp), IPv6 posture, TCP tuning/lifecycle, conntrack timeouts, and ARP/neighbor/bridge settings, flagged against an established hardening baseline where one exists. Context-dependent settings (ip_forward, disable_ipv6, tcp_congestion_control, conntrack timeout durations, etc.) are reported informationally, without a pass/fail verdict. Distinct from netra_ebpf_drops/kernel-network, which are evidence-correlated congestion diagnostics.

Input parameters:

- `limit` (integer): Max findings/outlier rows per node, 1-500. Default 50.

### `netra_ebpf_tls_fingerprint_risk` (~42 tokens)

Rare JA3 / missing-SNI / ECH-extension risk board from capture fingerprints.

Input parameters:

- `limit` (integer): Max items.

### `netra_ebpf_tls_fingerprints` (~36 tokens)

JA3/JA4 fingerprints observed from capture-stream ClientHello frames (single-skb). Observe-only.

### `netra_ebpf_topology` (~46 tokens)

A derived service/workload topology view built from current agent reports.

Input parameters:

- `limit` (integer): Max topology items, 1-1000. Default 100.

### `netra_ebpf_workloads` (~51 tokens)

List workload identities (pod/cgroup/container attribution) known to the cluster, optionally for one node.

Input parameters:

- `node` (string): Restrict to this node. Omit for all nodes.

### `netra_export_audit` (~85 tokens)

Export recent audit events for a SIEM or log pipeline. Formats: json (default), jsonl, cef, syslog (RFC5424), otlp (OTLP/HTTP JSON Logs). Observe-only; no payloads.

Input parameters:

- `format` (string): Export encoding.
- `limit` (integer): Max events, 1-500. Default 100.

### `netra_export_blocks` (~88 tokens)

Export current blocked/dropped FastPathEvents (5-tuple + reason + process identity) in the SIEM encodings, including otlp-trace — each blocked event becomes one OTLP span for a trace-based backend. No payloads.

Input parameters:

- `format` (string): Export encoding.
- `limit` (integer): Max blocked events, 1-2000. Default 200.

### `netra_export_events` (~100 tokens)

Export current health anomalies and incident clusters (optionally audit) in the same SIEM encodings as netra_export_audit. include is a comma list of anomaly,incident,audit.

Input parameters:

- `format` (string): Export encoding.
- `include` (string): Comma list of anomaly, incident, audit. Default anomaly,incident.
- `limit` (integer): Audit cap when include lists audit, 1-500. Default 100.

### `netra_export_flows` (~70 tokens)

Export current non-stale destination-flow counters (5-tuple + packets/bytes/blocked) in the SIEM encodings. No payloads.

Input parameters:

- `format` (string): Export encoding.
- `limit` (integer): Max flow rows, 1-2000. Default 200.

### `netra_export_status` (~30 tokens)

Whether optional syslog push is configured, plus the pull-export endpoints and encodings this controller supports.

### `netra_fleet` (~19 tokens)

Compact per-node agent inventory. Observe-only.

### `netra_fleet_clusters` (~40 tokens)

Multi-cluster read-only aggregator: local fleet plus optional NETRA_FLEET_PEERS remotes (name|url|key|tenant).

### `netra_fleet_tenants` (~28 tokens)

Partner/MSSP tenant rollup from fleet cluster tenant labels. Read-only.

### `netra_flow_history` (~165 tokens)

Queryable flow history (pod, peer, port, protocol, bytes, drops, comm). 7-day sidecar, no payloads.

Input parameters:

- `app` (string): Well-known-port hint: mysql, postgres, redis, kafka, grpc, http, https.
- `limit` (integer): Max records, 1-2000. Default 200.
- `namespace` (string): Filter by namespace.
- `node` (string): Filter by node.
- `peer` (string): Filter by peer IP.
- `pod` (string): Filter by pod name.
- `protocol` (string): Filter by protocol, for example tcp.
- `since` (string): Duration (1h) or RFC3339. Default 1h. Max 168h.

### `netra_flow_summary` (~155 tokens)

A bounded, point-in-time summary of recent Hubble flows (top talkers/destinations), optionally filtered. This is the request/response equivalent of the flows/stream SSE endpoint, which this MCP server does not expose.

Input parameters:

- `destination` (string): Filter by destination IP address or CIDR.
- `direction` (string): Filter by direction.
- `namespace` (string): Filter by namespace.
- `number` (integer): Max underlying flows to sample, 1-5000. Default 500.
- `pod` (string): Filter by pod name.
- `protocol` (string): Filter by L4 protocol, e.g. TCP or UDP.
- `verdict` (string): Filter by Hubble verdict.

### `netra_handoff` (~37 tokens)

On-call pack: report + playbook + coverage + fleet + audit + drop reasons.

Input parameters:

- `format` (string): Pack encoding.

### `netra_incidents` (~148 tokens)

Cross-signal incident clusters: health anomalies, behavior/rate drift, exposure, drop-detective findings, and audit events joined by a shared canonical source (workload/pod/cgroup/node), only surfaced once at least two different signal kinds agree on the same source. Drop-detective and audit-event joins are best-effort (joinConfidence="probable") since neither carries direct namespace/pod attribution; joinConfidence="" means the finding is real but couldn't be attributed to a specific workload at all (grouped under sourceKey="control-plane" instead of being dropped).

Input parameters:

- `auditLimit` (integer): Max audit events considered, 1-1000. Default 200.

### `netra_incidents_timeline` (~128 tokens)

Chronological, human-readable timeline merging the audit log with cluster-health-signature (AI digest fingerprint) transitions. Each entry is a plain sentence, never raw counters. An optional LLM prose rewrite (engine="llm") is attempted only when NETRA_AI_API_KEY is set; the deterministic bullet-point entries are always present and complete on their own.

Input parameters:

- `since` (string): RFC3339 timestamp; only entries at or after this time are returned. Omit for everything retained (audit: up to 1000 events; health samples: up to 2h).

### `netra_insights_baseline_get` (~34 tokens)

The currently captured behavior baseline, if any (see netra_insights_baseline_capture to create one).

### `netra_insights_blast_radius` (~140 tokens)

Multi-hop reachability from one dependency-graph node, breadth-first over observed traffic edges. This is OBSERVED TRAFFIC REACHABILITY, not a policy allow/deny determination — a node with no edges here may still be permitted to reach further destinations that simply weren't observed in this window. Edges may be stale relative to the currently applied policy.

Input parameters:

- `hops` (integer): Max hops to traverse, 1-6. Default 3.
- `root` (string, required): Dependency-graph node ID to start from (see netra_insights_dependencies for IDs, e.g. "workload:prod:deployment:api").

### `netra_insights_category_deny` (~50 tokens)

Review-only leased SNI deny drafts for selected app categories (default social,finance).

Input parameters:

- `categories` (string): Comma-separated categories.
- `limit` (integer): Max drafts.

### `netra_insights_dependencies` (~45 tokens)

The inferred service dependency graph (who talks to whom, including external destinations).

Input parameters:

- `limit` (integer): Max edges, 1-5000. Default 500.

### `netra_insights_destination_risk` (~47 tokens)

Combined destination risk from intel hits, categories, AI/MCP, DoH/DoT, and volume. Observe-only.

Input parameters:

- `limit` (integer): Max destinations.

### `netra_insights_drift` (~25 tokens)

Behavior drift findings: how current traffic differs from the captured baseline.

### `netra_insights_ech_blind` (~38 tokens)

ECH / missing-SNI blindness board. Observe-only; no decrypt.

Input parameters:

- `limit` (integer): Max findings.

### `netra_insights_exfil` (~39 tokens)

Exfil heuristics: destination fan-out, volume, rare hosts. Not DLP.

Input parameters:

- `limit` (integer): Max findings.

### `netra_insights_experience` (~44 tokens)

Workload digital-experience scorecard from connect latency, TCP retrans/RTO, DNS failures. No endpoint agent.

Input parameters:

- `limit` (integer): Max workloads.

### `netra_insights_exposure` (~58 tokens)

Exposure findings combining the dependency graph with behavior and rate drift (e.g. workloads newly reachable from outside the cluster).

Input parameters:

- `window` (string): Rate-drift window, e.g. "5m". Default 5m.

### `netra_insights_health_trend` (~117 tokens)

Linear time-to-breach projection from recent cluster health-score history. A heuristic trend over a coarse, step-function score, never a statistical guarantee — confidence is always "low" or "medium", never "high". Returns no projection (with an explanatory note) when there's too little history, the trend is flat/improving, the fit is too noisy, or the breach would be beyond a 24h horizon.

Input parameters:

- `threshold` (integer): Health-score breach threshold, 0-99. Default 50.

### `netra_insights_identity_drafts` (~40 tokens)

ServiceAccount + label identity drafts with review-only CNP sketches. Never auto-applied.

Input parameters:

- `limit` (integer): Max drafts.

### `netra_insights_kernel_notes` (~38 tokens)

Scrubbed kernel log lines about netdev, TCP, UDP, conntrack, and OOM. Not the application journal.

### `netra_insights_lateral` (~37 tokens)

Lateral-movement playbooks from scan findings with review-only lease drafts.

Input parameters:

- `limit` (integer): Max playbooks.

### `netra_insights_microseg` (~51 tokens)

East-west microsegmentation guidance: prefer PacketWolf on Cilium; Netra lease drafts only when Cilium is absent.

Input parameters:

- `limit` (integer): Max Netra lease drafts when applicable.

### `netra_insights_new_since_start` (~151 tokens)

Behavior-drift findings (new destinations since the captured baseline) whose owning pod/workload started after that baseline — a plausible "first egress after start" correlation, not a precise timing claim (no conversion exists between kernel-boot-monotonic packet timestamps and Kubernetes wall-clock pod start times). Stateless and on-demand: may repeat the same finding across a pod's crash loop, unlike the alert-poller's equivalent which suppresses that for one cycle. Requires a captured behavior baseline (see netra_insights_baseline_capture).

Input parameters:

- `maxRestarts` (integer): Exclude pods/workloads with more cumulative container restarts than this. 0 disables the filter. Default 5.

### `netra_insights_policy_packs` (~50 tokens)

Review-only sanctioned-egress CiliumNetworkPolicy packs from NETRA_SANCTIONED_HOSTS + observed traffic. Prefer PacketWolf to apply.

Input parameters:

- `limit` (integer): Max packs.

### `netra_insights_policy_review` (~125 tokens)

Full review for one policy recommendation (from netra_insights_recommendations): which live CiliumNetworkPolicy actually governs the workload (best-effort label match, may be ambiguous), a semantic diff against it, a traffic-aware blast-radius check for each destination the diff would remove (CIDR destinations checked against live traffic; FQDN/entity destinations honestly marked "could not correlate", never a false negative), and recent policy revision history. Read-only — never applies anything.

Input parameters:

- `recommendationId` (string, required): Recommendation ID from netra_insights_recommendations.

### `netra_insights_profiles` (~41 tokens)

Bounded kernel stacks for the hottest host comms, plus the kernel wait channel (wchan). Not a user-space flame graph. No argv.

### `netra_insights_protocol_downgrades` (~138 tokens)

Workload/host pairs with TLS handshake history at baseline capture time that now also show cleartext HTTP to the same host. Coexistence-tolerant correlation, never a verdict — do not describe a finding as a "downgrade attack", "MITM", or "stripped" TLS. Check l7Degraded/l7DegradedNodes before reading an empty result as "no downgrades": when true, the L7 (TLS SNI / HTTP Host) BPF programs failed to load on those nodes, so visibility there is genuinely incomplete, not clean. Requires a captured behavior baseline.

### `netra_insights_rate_baseline_get` (~37 tokens)

The currently captured traffic-rate baseline, if any (see netra_insights_rate_baseline_capture to create one).

### `netra_insights_rate_drift` (~54 tokens)

How current traffic rates differ from the captured rate baseline.

Input parameters:

- `window` (string): Duration string, e.g. "5m", between 30s and 2h. Default 5m.

### `netra_insights_rates` (~56 tokens)

Current traffic-rate window (packets/bytes per second) across agents.

Input parameters:

- `window` (string): Duration string, e.g. "5m", between 30s and 2h. Default 5m.

### `netra_insights_recommendations` (~82 tokens)

Suggested NetworkPolicy changes derived from the dependency graph and observed behavior. Always requires human review before applying (applyRequiresReview is always true in the result).

Input parameters:

- `limit` (integer): Max recommendations, 1-200. Default 50.
- `namespace` (string): Filter by namespace.
- `workload` (string): Filter by workload name.

### `netra_insights_red` (~57 tokens)

Per-workload rate, errors, and TCP SRTT over a window. Errors are drops and retransmits, not HTTP status.

Input parameters:

- `window` (string): Duration, for example 5m. Max 168h.

### `netra_insights_remediations` (~85 tokens)

Proposed remediations combining exposure and drift findings. Always requires human review before applying (reviewRequired is always true, autoApply always false in the result).

Input parameters:

- `limit` (integer): Max proposals, 1-200. Default 50.
- `window` (string): Rate-drift window, e.g. "5m". Default 5m.

### `netra_insights_shadow_saas` (~53 tokens)

Shadow SaaS / unsanctioned destinations from SNI/Host/DNS vs NETRA_SANCTIONED_HOSTS. Observe-only CASB-lite.

Input parameters:

- `limit` (integer): Max findings.

### `netra_insights_summary` (~30 tokens)

Rollup counts across dependency graph, behavior drift, rate drift, exposure, and remediation insights.

### `netra_insights_traces` (~70 tokens)

Inferred service-path spans from flow edges and pod IPs. Not propagated trace context.

Input parameters:

- `namespace` (string): Filter by namespace.
- `pod` (string): Filter by pod name.
- `since` (string): Duration, for example 15m. Max 168h.

### `netra_insights_workload_events` (~60 tokens)

Kubernetes Warning events for pods (OOMKilled, probe failures, BackOff). Not journal or dmesg.

Input parameters:

- `namespace` (string): Restrict to this namespace.
- `pod` (string): Restrict to this pod name.

### `netra_insights_zero_trust` (~61 tokens)

Identity-aware Zero Trust allow/deny drafts from live workload traffic. Review-only; never applies. Durable NetPol remains PacketWolf/Cilium when present.

Input parameters:

- `limit` (integer): Max drafts, 1-200. Default 50.

### `netra_intel_dns_hits` (~38 tokens)

DNS/C2-style domain board: intel suffix match + NX/DGA heuristics.

Input parameters:

- `limit` (integer): Max hits.

### `netra_intel_feed_get` (~35 tokens)

Return the active threat-intel feed status and entries. Loading a feed (PUT) is a separate mutate tool.

### `netra_intel_history` (~26 tokens)

Read retained threat-feed revisions, expiry and status. No rollback or mutation.

### `netra_intel_hits` (~26 tokens)

Match the active threat-intel feed against live agent metadata. Observe-only.

### `netra_intel_preview` (~83 tokens)

Parse a threat-intel or deny list (JSON entries, CSV type,value,direction, or bare IPs/CIDRs/DNS names) into the shape POST /api/v1/ebpf/deny/import accepts. Applies nothing.

Input parameters:

- `text` (string, required): Feed body: JSON, CSV, or newline-separated IPs/CIDRs/names.

### `netra_investigate_connection` (~140 tokens)

Compose DNS, flow, netlink, policy explain, path/drop evidence and a confidence scorecard into one failed-connection timeline. Observe-only; never mutates.

Input parameters:

- `namespace` (string): Workload namespace.
- `node` (string): Optional node filter.
- `peer` (string): Peer IP or hostname.
- `pod` (string): Pod name.
- `port` (integer): Destination port.
- `since` (string): Duration or RFC3339 start.
- `until` (string): RFC3339 end.
- `window` (string): Lookback duration, e.g. 15m. Default 15m.

### `netra_lease` (~27 tokens)

Enforce-mode lease clock: remaining seconds, expired, or none. Observe-only.

### `netra_listen_queues` (~43 tokens)

Per-node TCP listen queue depth (inet_diag). Observe-only; never changes backlog tunables.

Input parameters:

- `node` (string): Limit to one node name.

### `netra_metrics_alerts` (~38 tokens)

Active metric health alerts (warning/critical), recent transitions, rules and silences from the declarative metric alert engine. Read-only.

### `netra_metrics_anomalies` (~139 tokens)

Machine-learning anomaly summary: anomaly rate per node and the most anomalous metrics in a window. With highlight_after/highlight_before it also ranks metrics whose distribution changed versus the preceding baseline (metric correlations). Read-only.

Input parameters:

- `after` (integer): Window start. Default -900.
- `before` (integer): Window end. Default now.
- `highlight_after` (integer): Highlighted range start for correlation ranking.
- `highlight_before` (integer): Highlighted range end for correlation ranking.
- `nodes` (string): Comma list of node globs.
- `top` (integer): Ranked rows to return, default 30.

### `netra_metrics_contexts` (~91 tokens)

List per-second metric contexts (for example system.cpu, net.net, disk.space, cgroup.cpu, app.cpu_utilization) with chart instances, dimensions, units and labels per node. Read-only. See docs/metrics.md.

Input parameters:

- `family` (string): Family glob, for example net or disk.
- `nodes` (string): Comma list of node globs. Default all nodes.

### `netra_metrics_evidence` (~169 tokens)

Evidence behind a metric over a window: top flow-history peers (ranked by blocked packets for drop metrics, retransmissions for TCP metrics, bytes otherwise), current kernel drop reasons, overlapping capture sessions, other anomalous metrics, and links to drop explain, TCP events, DNS findings and flow history. Read-only.

Input parameters:

- `after` (integer): Window start (unix seconds, or negative relative). Default -900.
- `before` (integer): Window end. Default now.
- `context` (string, required): Metric context, e.g. ebpf.kernel_drops, net.net, workload.red_errors.
- `labels` (string): Chart labels to narrow flows, e.g. namespace:shop,workload:cart.
- `node` (string): Node name; empty for all nodes.

### `netra_metrics_fleet` (~68 tokens)

Fleet metrics roll-up: this cluster plus every NETRA_FLEET_PEERS peer — nodes, series, anomaly rate over the last 15 minutes, raised metric alerts by severity, top alerts and anomalous dimensions per cluster. Peers are read best-effort. Read-only.

### `netra_metrics_query` (~247 tokens)

Query one metric context as evenly spaced points with a per-point anomaly rate. after/before are unix seconds or negative seconds relative to now (after=-600 is the last ten minutes). The tier (1s, 1m, 1h) is picked from the time range. Read-only.

Input parameters:

- `after` (integer): Start, unix seconds or negative relative seconds. Default -600.
- `aggregate` (string): How series in one group combine.
- `before` (integer): End, unix seconds or 0 for now.
- `charts` (string): Comma list of chart globs.
- `context` (string): Metric context, for example system.cpu. Required.
- `dimensions` (string): Comma list of dimension globs.
- `group` (string): Reduction inside a time bucket.
- `group_by` (string): dimension (default), chart, node, instance, all or label:<key>.
- `labels` (string): Comma list of key:value label filters; values may use *.
- `nodes` (string): Comma list of node globs.
- `points` (integer): Number of points, max 3000.

### `netra_namespace_heat` (~44 tokens)

Packets/bytes/blocked rolled up by Kubernetes namespace from agent destination stats.

Input parameters:

- `limit` (integer): Max rows, 1-200. Default 30.

### `netra_netlink` (~122 tokens)

Read-only RTNL change recorder: link, address, route, neighbor events and optional per-node state snapshots. Never mutates routes, links, addresses, neighbors, or rules. view=events|state|all.

Input parameters:

- `kind` (string): Event kind filter.
- `limit` (integer): Max events, 1-5000.
- `node` (string): Limit to one node name.
- `since` (string): Duration (e.g. 30m) or RFC3339 lower bound.
- `view` (string): Response shape.

### `netra_netlink_findings` (~76 tokens)

Level-triggered netlink findings (default-route loss, uplink down, failed neighbors, recorder overruns). Observe-only; never mutates the stack.

Input parameters:

- `node` (string): Limit to one node name.
- `window` (string): Lookback window, e.g. 1h. Default server window.

### `netra_node_resources` (~78 tokens)

Per-node CPU/memory/load-average snapshot plus per-workload cgroup v2 CPU/memory usage, top-N by CPU. A "top"-like view attributed to Kubernetes workloads rather than raw host PIDs. Observe-only.

Input parameters:

- `limit` (integer): Max top-CPU workload rows, 1-200. Default 20.

### `netra_playbooks` (~53 tokens)

Review-only operator playbook derived from the current report snapshot. AutoApply is always false; steps suggest netractl/API actions a human still has to run.

Input parameters:

- `format` (string): Playbook encoding.

### `netra_pods` (~39 tokens)

List pods known to the cluster, with lockdown status.

Input parameters:

- `namespace` (string): Restrict to this namespace. Omit for all namespaces.

### `netra_policies_history` (~78 tokens)

List recorded policy revisions (checkpoints, applies, rollbacks, deletes) Netra has captured, optionally filtered by namespace/name.

Input parameters:

- `limit` (integer): Max revisions to return, 1-200. Default 50.
- `name` (string): Filter by policy name.
- `namespace` (string): Filter by namespace.

### `netra_policies_history_export` (~35 tokens)

Export the full policy revision archive as JSON (for backup or transfer to another controller via netra_policy_history_import).

### `netra_policies_list` (~50 tokens)

List CiliumNetworkPolicies in a namespace, raw from the cluster. Requires Cilium integration to be enabled on the controller.

Input parameters:

- `namespace` (string): Namespace to list. Default "default".

### `netra_policy_build` (~181 tokens)

Generate a CiliumNetworkPolicy manifest from a simple description, without applying it. Pass the result to netra_policy_plan then netra_policy_apply to actually apply it.

Input parameters:

- `includeDns` (boolean): Also allow DNS (UDP/53) egress.
- `kind` (string): Workload kind the selector targets, e.g. "pod".
- `name` (string, required): Policy name.
- `namespace` (string, required): Namespace the policy applies to.
- `port` (integer): Allowed destination port. Omit to allow all ports.
- `protocol` (string): Allowed protocol, e.g. TCP or UDP. Omit for any.
- `selector` (object): Pod label selector, e.g. {"app":"checkout"}.
- `to` (array): Allowed egress destinations (CIDRs, FQDNs, or entities).

### `netra_policy_gitops_status` (~78 tokens)

GitOps reconciler status: every manifest under NETRA_GITOPS_DIR, its computed change plan, whether it applied, and whether it's drifted (live policy differs from the last GitOps-applied revision — never auto-applied over). 409 if GitOps is not enabled (NETRA_GITOPS_DIR unset).

### `netra_policy_lockdown` (~125 tokens)

Generate a deny-all CiliumNetworkPolicy manifest for one workload, without applying it. This only produces the manifest — pass it to netra_policy_plan/netra_policy_apply to actually lock the workload down, and use netra_policy_unlock to remove an already-applied lockdown.

Input parameters:

- `kind` (string): Workload kind. Default "pod".
- `name` (string, required): Workload name.
- `namespace` (string): Namespace of the workload. Default "default".
- `selector` (object): Pod label selector. Auto-detected from the live workload if omitted.

### `netra_policy_simulate` (~116 tokens)

Evaluate a candidate CiliumNetworkPolicy manifest's egress rules against the observed dependency graph and live workload labels — read-only, applies nothing. toCIDR/toCIDRSet/toEntities/toServices/toEndpoints destinations are precisely computed; toFQDNs destinations are always "unverified" (never a false "denied"), since there is no DNS/SNI→IP correlation to confirm or rule out a match.

Input parameters:

- `manifest` (string, required): Full CiliumNetworkPolicy manifest (YAML or JSON) to simulate.

### `netra_ports` (~38 tokens)

Top destination ports by packet count (protocol/port).

Input parameters:

- `limit` (integer): Max rows, 1-200. Default 30.

### `netra_protocols` (~25 tokens)

L4 protocol mix (TCP/UDP/…) across current destination stats.

### `netra_report` (~56 tokens)

Point-in-time operator briefing (health, drift, exposure, incidents, recent audit). format=markdown (default) or json. Observe-only; never applies policy or extends a lease.

Input parameters:

- `format` (string): Briefing encoding.

### `netra_report_prevention` (~43 tokens)

Threat-prevention-style coverage snapshot: intel hits, lease state, detector findings, AI/DoH/DoT/JA3. Not IPS efficacy %.

### `netra_scorecard` (~31 tokens)

Single 0-100 board from health, stale agents, detached programs, missing maps, blocked events.

### `netra_security_incidents` (~42 tokens)

Correlate recent DNS, scan and IP/CIDR intel evidence by exact node/namespace/pod. No attack or causal verdict and no enforcement.

### `netra_security_optimizer` (~31 tokens)

Read-only review of flat deny predicates. Sampled matches are not rule-hit counters; never applies changes.

### `netra_status` (~42 tokens)

Overall Netra controller status: fast-path config, agent counts/staleness, baseline and rate-baseline capture state, Hubble status, HA/Cilium flags.

### `netra_talkers` (~41 tokens)

Top destination IPs by packet count across current agent reports.

Input parameters:

- `limit` (integer): Max rows, 1-200. Default 20.

### `netra_vms` (~57 tokens)

List KubeVirt VMs known to the cluster, with lockdown status. `available` in the result indicates whether KubeVirt is installed.

Input parameters:

- `namespace` (string): Restrict to this namespace. Omit for all namespaces.

### `netra_watchlist_match` (~38 tokens)

Match an intel-grammar list against current flows/events/DNS/SNI. Applies nothing.

Input parameters:

- `text` (string, required): Feed body.

### `netra_workload_detail` (~66 tokens)

Detailed info for one workload: phase, node, IP, labels, recommended NetworkPolicy selector, matching policies, and lockdown status.

Input parameters:

- `kind` (string, required): Workload kind.
- `name` (string, required): Workload name.
- `namespace` (string, required): Kubernetes namespace.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/zyvorai-netra/ghcr-io-zyvorai-netra-mcp#diagnostics

## Score history

- 2026-10-19: 37
- 2026-10-18: 36
- 2026-10-17: 36
- 2026-10-16: 35
- 2026-10-15: 35

## Common questions

### What is the Netra MCP server?

Netra is an MCP server listed in the public MCP registry as io.github.zyvorai/netra. eBPF network observability and safe emergency control for Linux and Kubernetes. This page covers its container image (ghcr.io/zyvorai/netra-mcp).

### Is the Netra MCP server safe to use?

Netra scores 37 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Netra MCP server expose?

Netra exposes 138 tools: netra_agents, netra_ai_agent, netra_ai_ask, netra_ai_brief, netra_ai_digest, and 133 more. Their descriptions and schemas cost roughly 9,562 tokens of context every time the server is loaded.

### Is the Netra MCP server still maintained?

Netra is still listed as active in the MCP registry. We last reached this channel on 19 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Netra MCP server under?

Netra declares the NOASSERTION licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.

## Links

- GitHub Container Registry: https://ghcr.io/zyvorai/netra-mcp
- Repository: https://github.com/zyvorai/zyvor-netra
- Changelog RSS feed: https://verifymcp.io/servers/zyvorai-netra/ghcr-io-zyvorai-netra-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/zyvorai-netra/ghcr-io-zyvorai-netra-mcp.json
- HTML version of this page: https://verifymcp.io/servers/zyvorai-netra/ghcr-io-zyvorai-netra-mcp
