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-serverIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
SecuritySupported Platforms
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.
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.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| openvas-mcp-server (this skill)by greenbone-hive | 78 | 3 | 5d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 98.5k | 2d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.6k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.4k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 88.2k | today | MCP 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.
Skill content
View source on GitHubOpenVAS 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.
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:
- the inbound MCP request's
Authorizationheader, when present — so each streamable-HTTP caller authenticates as themselves (sendBasicgvmd credentials, or a gateway session token you obtained); otherwise - a fallback
Basicheader built from configuredGVM_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→ pollopenvas_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
Agent-Reach
98.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.4kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
88.2k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
