SkillAgentSearch skills...

openvas-mcp-server

MCP server for Greenbone Vulnerability Management, communicates with rust-gvm-api.

Install / Use

claude mcp add greenbone-hive -- npx -y github:greenbone-hive/openvas-mcp-server

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

78/100

Category

Security

Supported Platforms

Claude Code
Claude Desktop

Our assessment of openvas-mcp-server

openvas-mcp-server scores 78/100 on our quality scale, 1023rd of 1,119 Security skills we index.

Its MCP Server is 6.7 KB long, well organised into 11 sections with 5 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
29/30
Structure
20/20
Description
12/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 5 days ago, so openvas-mcp-server is actively maintained.
  • It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
  • Its trust signals score 87/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

openvas-mcp-server compared with similar skills

All 4 of these similar skills score higher than openvas-mcp-server; compare them before choosing.

SkillScoreStarsUpdatedFormat
openvas-mcp-server (this skill)by greenbone-hive7835d agoMCP Server
Agent-Reachby Panniantong10098.5k2d agoCLAUDE.md
headroomby headroomlabs-ai10075.6ktodayCLAUDE.md
CowAgentby zhayujie10047.4k1d agoCLAUDE.md
Scraplingby D4Vinci10088.2ktodayMCP Server

Frequently asked questions

How do I install openvas-mcp-server?
Run claude mcp add greenbone-hive -- npx -y github:greenbone-hive/openvas-mcp-server. The install tabs above show the steps for each supported agent.
Which AI agents does openvas-mcp-server work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is openvas-mcp-server safe to use?
It is AGPL-3.0-licensed and scores 87/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is openvas-mcp-server still maintained?
The repository was last updated 5 days ago, so openvas-mcp-server is actively maintained.

OpenVAS MCP Server

MCP server for Greenbone Vulnerability Management (GVM/OpenVAS), written in Rust. A thin, typed MCP front end over the rust-gvm-api REST gateway: all GMP/gvmd knowledge lives in the gateway, this server maps MCP tools onto gateway HTTP endpoints.

CI License: AGPL v3

MCP client (Claude, etc.)
        │  stdio / streamable HTTP
        ▼
      gvm-mcp  (this repo, single binary)
        │  HTTP/JSON — forwards the caller's gvmd identity
        ▼
  rust-gvm-api REST gateway  (/api/v1)
        │  GMP over Unix socket
        ▼
      gvmd

Quick start

Docker (streamable HTTP)

docker run --rm \
  -e GVM_GATEWAY_URL=http://gateway:8080 \
  -e GVM_USERNAME=admin \
  -e GVM_PASSWORD=secret \
  -p 127.0.0.1:8000:8000 \
  ghcr.io/greenbone-hive/openvas-mcp-server:latest

MCP endpoint: http://localhost:8000/mcp. A full stack example (gateway + gvmd socket wiring) is in docker-compose.example.yml.

Binary (stdio)

Download a release binary (or cargo build --release), then register it with your MCP client:

{
  "mcpServers": {
    "openvas": {
      "command": "/path/to/gvm-mcp",
      "env": {
        "GVM_GATEWAY_URL": "http://localhost:8080",
        "GVM_USERNAME": "admin",
        "GVM_PASSWORD": "secret"
      }
    }
  }
}

Start with the openvas_test_connection tool — it checks gateway liveness, the gvmd version and makes one authenticated call to confirm the identity is accepted.

Authentication

gvm-mcp holds no session and invents no auth of its own — it forwards a caller's gvmd identity to the gateway, and the gateway (backed by gvmd) is the sole authority. The Authorization used for each gateway call is resolved per request:

  1. the inbound MCP request's Authorization header, when present — so each streamable-HTTP caller authenticates as themselves (send Basic gvmd credentials, or a gateway session token you obtained); otherwise
  2. a fallback Basic header built from configured GVM_USERNAME / GVM_PASSWORD — used for stdio, and for HTTP callers that send none.

If neither is available, gateway calls go out unauthenticated and are rejected with 401, surfaced as a legible tool error. No credentials are ever cached as a session; --username/--password are optional (omit them to require every HTTP caller to authenticate as themselves).

--allowed-hosts is a DNS-rebinding guard, not authentication. For a public HTTP deployment, terminate TLS and (if you want a single shared identity) authenticate at a reverse proxy in front.

Configuration

Every flag has an environment variable.

| Flag | Env | Default | Purpose | | ---- | --- | ------- | ------- | | --gateway-url | GVM_GATEWAY_URL | http://127.0.0.1:8080 | rust-gvm-api origin (without /api/v1) | | --username | GVM_USERNAME | — | gvmd username for the fallback identity (optional) | | --password | GVM_PASSWORD | — | gvmd password for the fallback identity (optional) | | --password-file | GVM_PASSWORD_FILE | — | file containing the password (takes precedence) | | --transport | MCP_TRANSPORT | stdio | stdio or streamable-http | | --bind-addr | MCP_BIND_ADDR | 127.0.0.1:8000 | HTTP bind address | | --allowed-hosts | MCP_ALLOWED_HOSTS | localhost,127.0.0.1,::1 | Host-header allow list (* disables) | | --toolsets | GVM_TOOLSETS | default | comma-separated toolset selection | | --read-only | GVM_READ_ONLY | false | expose only non-mutating tools | | --timeout-secs | GVM_HTTP_TIMEOUT | 30 | gateway HTTP timeout | | --log-level | GVM_LOG_LEVEL | info | log level when RUST_LOG unset |

Toolsets

The full surface is 104 tools — far too many to hand an LLM by default, so tools are grouped into toolsets (gvm-mcp --list-toolsets prints them all). The default selection is every toolset except identity; add it explicitly with --toolsets default,identity. --read-only additionally strips every mutating tool from the listing.

| Selection | Tools | | --------- | ----- | | default | 81 | | default, read-only | 49 | | default + identity | 104 |

Highlights:

  • targets / tasks — CRUD plus the scan lifecycle (openvas_start_task → report UUID, stop, resume).
  • reports — list/get, drill-down pages (results, vulnerabilities, errors, closed CVEs, TLS certificates) and asynchronous exports: openvas_export_report → poll openvas_get_job → openvas_download_job_result (JSON inline, binary formats base64 up to 3 MB).
  • scan-configs / scanners / schedules / credentials / alerts / port-lists / notes / overrides — reads everywhere, writes where the gateway supports them.
  • nvts / results / assets / feeds / tickets / filters / tags / report-formats — read surface with GMP filter expressions (filter: "severity>7 and host=10.0.0.5").
  • identity (opt-in) — users, groups, roles, permissions, user settings.

List tools return summarized rows plus pagination to protect the model's token budget; get tools return the gateway's full JSON.

Development

cargo test                                    # unit + mock-gateway tests
cargo fmt --all && cargo clippy --all-targets --all-features -- -D warnings
cargo run -- --list-toolsets

The test suite runs entirely against a mock gateway (wiremock) — no GVM installation needed. End-to-end tests against a live stack are gated behind #[ignore]:

export GVM_E2E_GATEWAY_URL=http://localhost:8080
export GVM_USERNAME=admin GVM_PASSWORD=secret
cargo test --test e2e_live -- --ignored

DTOs and endpoint shapes mirror the gateway's spec/rest-api contract. See docs/ for detailed install/usage/development guides.

Limitations

  • Requires a running rust-gvm-api gateway; the server never speaks GMP directly.
  • Clone operations and ticket/filter/tag/host write tools are not exposed yet — the gateway does not serve those endpoints. They land once the gateway does.
  • Compliance (audits/policies) tools depend on the gateway's compliance surface and are not yet available.

Contributing

See CONTRIBUTING.md for the development loop, how to add a tool, and PR conventions. Security issues: see SECURITY.md. Releases follow RELEASING.md.

License

AGPL-3.0-or-later.

Related Skills

View on GitHub
GitHub Stars3
CategorySecurity
Updated5d ago
Forks0

Languages

Rust

Trust signals

87/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 low
openvas-mcp-server — MCP Server: Install & Safety Check | SkillAgent