MCP Server for BotNEX - VAPT scans, reports and CVE intelligence for AI clients
Project description
mcp-botnex
MCP (Model Context Protocol) server for BotNEX — exposes VAPT scans,
reports, and CVE intelligence to AI clients such as Cursor and the NEXA
platform. It is a thin, secure bridge to the existing botnex-backend REST
API and authenticates with a user-scoped API token (no JWT).
Features
- 8 tools for scan lifecycle, reports, and CVE lookup
- 6 resources (
botnex://…) for@-mentionable context in Cursor - Dual transport: stdio (Cursor / Claude Desktop) and HTTP (NEXA / Docker)
- API-token auth mapped per-user on the backend — RBAC enforced server-side
- AI-friendly formatters (severity-first findings, normalized CVE output)
Installation
pip install mcp-botnex
Authentication
- Log in to the BotNEX UI.
- Create an API token: API Tokens → Create (calls
POST /api/v1/users/api-tokens/). - Copy the raw token once and provide it to the MCP server via
BOTNEX_API_KEY.
The token is sent as Authorization: Bearer <token> on every backend request.
The backend resolves it to your user account and enforces all authorization
and per-user data scoping.
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
BOTNEX_BACKEND_URL |
Yes | – | Backend origin, e.g. https://botnex.example.com (no /api/v1) |
BOTNEX_API_KEY |
Yes | – | User API token |
BOTNEX_MCP_SERVER_PORT |
No | 8001 |
HTTP mode port |
BOTNEX_LOG_LEVEL |
No | INFO |
Log level |
BOTNEX_BACKEND_TIMEOUT |
No | 60.0 |
Backend HTTP timeout (s) |
BOTNEX_FINDINGS_PAGE_SIZE |
No | 50 |
Default findings page size |
BOTNEX_SCAN_PAGE_SIZE |
No | 25 |
Default page size for scan list resources |
BOTNEX_CVE_PAGE_SIZE |
No | 20 |
Default page size for botnex://cve/latest |
See .env.example for the full list.
Usage — Cursor (stdio)
Add to your Cursor MCP config:
{
"mcpServers": {
"botnex": {
"command": "mcp-botnex",
"env": {
"BOTNEX_BACKEND_URL": "https://botnex.example.com",
"BOTNEX_API_KEY": "your-api-token"
}
}
}
}
Usage — HTTP (NEXA / Docker)
mcp-botnex-http
# or
uvicorn botnex_mcp.http_server:app --host 0.0.0.0 --port 8001
Endpoints: GET /mcp/tools, POST /mcp/tools/call, GET /mcp/resources,
POST /mcp/resources/read, GET /health.
Tools
| Tool | Description |
|---|---|
list_scans |
List the user's scans and statuses |
trigger_scan |
Start a security or asset-discovery scan |
get_scan_findings |
Paginated, severity-ordered findings for a scan |
get_scan_summary |
Aggregated dashboard summary |
list_scheduled_scans |
Upcoming scheduled scans |
generate_report |
Generate a PDF/CSV/DOCX report |
search_cves |
Full-text CVE search |
get_cve_by_id |
CVE detail by id |
Resources
All list resources are paginated and field-slimmed to keep responses small
and the LLM context cheap. Pagination is controlled with ?page= and
?size= query parameters; size is capped at 100.
| URI | Paginated | Description |
|---|---|---|
botnex://scans/all |
Yes | Slim list of the user's scans |
botnex://scans/summary |
– | Aggregated severity counts and risk metrics |
botnex://scans/scheduled |
Yes | Upcoming scheduled scans |
botnex://scan/{scan_id}/findings |
Yes | Severity-ordered findings for a scan |
botnex://cve/{cve_id} |
– | Compact CVE summary |
botnex://cve/latest |
Yes | Most recently published CVEs |
Examples:
botnex://scans/all?page=2&size=20botnex://scan/<scan_id>/findings?page=2&size=25botnex://cve/latest?page=1&size=10
Paginated resources return:
{"items": [...], "page": 2, "size": 20, "total": 47, "pages": 3, "has_more": true}
Development
pip install -e ".[dev]"
pytest
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_botnex-0.1.3.tar.gz.
File metadata
- Download URL: mcp_botnex-0.1.3.tar.gz
- Upload date:
- Size: 31.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6405b800d485a60da4dd50d5b51ce4ef7a9b0804cd71b1756c5ff51fb437a739
|
|
| MD5 |
ad3dde6687bf2511b141f119db2841ae
|
|
| BLAKE2b-256 |
600d6f46b4643b96cb4134e378cf510c720d63a67246555dc90d30910f114d00
|
File details
Details for the file mcp_botnex-0.1.3-py3-none-any.whl.
File metadata
- Download URL: mcp_botnex-0.1.3-py3-none-any.whl
- Upload date:
- Size: 33.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4406eaa2600c8e07aabd174bb74d134334d786e58e81617acb6defcfbffeec81
|
|
| MD5 |
04c76e52625a939b2967384c10b46f2e
|
|
| BLAKE2b-256 |
dab97086a58c78780dd28f0b6087830fd6193c99519644824635a05c7ab75ed1
|