Greenbone/OpenVAS MCP Server for AI-assisted Vulnerability Management
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"greenbonemcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP (Model Context Protocol) server that connects AI clients to Greenbone/OpenVAS through GMP (python-gvm).
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in security
An evil MCP server used for redteam testing
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.
Proof primitive for AI agents on MultiversX. Anchor file hashes on-chain as verifiable proofs.
Security-first platform for AI agents. 38 specialized agents, 15 AI-powered extensions, zero-knowledge multi-agent orchestration. SENTINEL WAF, Ed25519 auth, 2.6M grounding facts.
MCP Security Weekly
Get CVE alerts and security updates for GreenboneMCP and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server that connects AI clients to Greenbone/OpenVAS through GMP (python-gvm).
GreenboneMCP exposes MCP tools for scan/report workflows in Greenbone/OpenVAS, so an assistant can:
The server runs on stdio transport and talks to gvmd through a Unix socket.
This project is part of my Master's thesis and is currently a Proof of Concept (PoC).
It may be developed further only if there is clear community/user interest.
Contributions are welcome: feel free to open Issues and submit Pull Requests. (See the Contributing section below.)
These are always registered:
start_scanscan_statusfetch_latest_reportrestart_scandelta_reportThese are always registered:
get_targetsget_targetget_tasksget_port_listsstart_taskstop_tasksrc/
├── main.py # App entrypoint (stdio MCP server)
├── constants.py # Default UUIDs and report format constants
├── config/
│ ├── gvm_client_config.py # Env-based GVM client settings (USERNAME, PASSWORD, ...)
│ └── logging_config.py # Logging configuration settings
├── core/
│ └── mcp_server.py # MCP wiring, GVM connection, tool registration
├── services/
│ └── gvm_client.py # Typed wrapper around python-gvm + XML parsing
├── tools/
│ ├── vm_workflow_tools.py # VM workflow orchestration tools
│ ├── inspection_control_tools.py # Inspection/control tools for existing scan state
│ └── utils/
│ ├── constants.py # Tool-scoped constants (scanner/config/port list IDs, formats)
│ └── helpers.py # Internal parsing/formatting helpers for tool outputs
└── models/
└── generated/ # Auto-generated dataclasses (xsdata output)
gvmd Unix socketThis server has been tested only with Greenbone/OpenVAS deployed via containers, particularly Greenbone Community Edition with the official container setup: https://greenbone.github.io/docs/latest/22.4/container/
Ensure the official Greenbone Community Edition container setup is running by executing the following command in the directory where you have the docker-compose.yml for Greenbone:
docker compose -f <path-to-greenbone-compose>/docker-compose.yml up -d
Note: The official Greenbone compose setup uses the gvmd_socket_vol volume mounted at /run/gvmd in the containers.
With the default compose configuration, this named volume is usually available as:
greenbone-community-edition_gvmd_socket_vol.
In this project the same named volume is used to access the gvmd socket from the MCP server container.
git clone https://github.com/matteocolazilli/GreenboneMCP.git
cd GreenboneMCP
docker build -t greenbonemcp:latest .
.env configuration and set configuration valuescp .env.example .env
Edit .env with your credentials and desired settings.
You can use this .env by passing it at runtime with --env-file to the docker run command.
The server reads configuration from the following environment variables, which if not set it falls back to defaults:
USERNAME: GMP username (default: admin)PASSWORD: GMP password (required: no default, must be set)LOG_LEVEL: application log level (default: INFO)Configure your MCP client/agent, accord