Skip to main content

CloudNex MCP Server

Enterprise MCP server exposing CloudNex cloud security data to AI assistants via the Model Context Protocol.

Features

  • 21 read-only tools for scans, findings, providers, compliance, overviews, users, roles, and resources
  • Hub catalog tools for compliance frameworks and security check metadata (no auth)
  • 2 MCP resources for quick scan and findings summaries
  • stdio mode for Cursor / Claude Desktop
  • HTTP mode with per-request API key override via headers
  • JSON:API backend with Authorization: Api-Key {prefix.key} authentication

Quick Start

cd cloudnex_mcp
cp .env.example .env
# Edit .env with your CLOUDNEX_API_URL and CLOUDNEX_API_KEY

pip install -e ".[dev]"
python run_server.py          # stdio MCP
python run_http_server.py     # HTTP on port 8001

Docker

docker compose up --build
curl http://localhost:8001/health

Cursor Configuration

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "cloudnex": {
      "command": "mcp-cloudnex",
      "env": {
        "CLOUDNEX_API_URL": "https://your-instance.com/api/v1",
        "CLOUDNEX_API_KEY": "cn_your-prefix.your-key"
      }
    }
  }
}

Or using the run script:

{
  "mcpServers": {
    "cloudnex": {
      "command": "python",
      "args": ["/path/to/cloudnex_mcp/run_server.py"],
      "env": {
        "CLOUDNEX_API_URL": "https://your-instance.com/api/v1",
        "CLOUDNEX_API_KEY": "cn_your-prefix.your-key"
      }
    }
  }
}

Claude Desktop Configuration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "cloudnex": {
      "command": "mcp-cloudnex",
      "env": {
        "CLOUDNEX_API_URL": "https://your-instance.com/api/v1",
        "CLOUDNEX_API_KEY": "cn_your-prefix.your-key",
        "CLOUDNEX_HUB_URL": "https://hub.cloudnex.com"
      }
    }
  }
}

HTTP API

Endpoint Method Description
/health GET Health check
/mcp/tools GET List tools
/mcp/tools/call POST Execute a tool
/mcp/resources GET List resources
/mcp/resources/read POST Read a resource

Pass API key per request:

X-API-Key: cn_prefix.key
# or
Authorization: Api-Key cn_prefix.key

Environment Variables

Variable Default Description
CLOUDNEX_API_URL "" CloudNex JSON:API base URL
CLOUDNEX_API_KEY "" Tenant API key (prefix.key)
CLOUDNEX_HUB_URL https://hub.cloudnex.com Public check catalog
CLOUDNEX_MCP_SERVER_PORT 8001 HTTP server port
CLOUDNEX_LOG_LEVEL INFO Log level
CLOUDNEX_CORS_ORIGINS * Comma-separated CORS origins

Testing

pip install -e ".[dev]"
pytest tests/ -q

# Include integration tests (live backend):
pytest tests/ -m integration

Full end-to-end guide (API key, Cursor, Claude Desktop, NEXA chat): docs/TESTING.md

RBAC

All backend tools respect CloudNex tenant RBAC. API keys are tenant-scoped; data visibility depends on role permissions and provider group assignments. Use get_my_profile to verify the authenticated context.

Metadata

Release files for mcp-cloudnex 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-cloudnex 1.0.0
File Size Uploaded Provenance Actions
mcp_cloudnex-1.0.0.tar.gz 22.3 kB Without provenance Details for mcp_cloudnex-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-cloudnex 1.0.0
File Interpreter ABI Platform Actions
mcp_cloudnex-1.0.0-py3-none-any.whl Python 3 none any Details for mcp_cloudnex-1.0.0-py3-none-any.whl

Total release size: 50.0 kB

Release files / mcp_cloudnex-1.0.0.tar.gz

Download URL mcp_cloudnex-1.0.0.tar.gz
Size 22.3 kB
Tags Source
SHA-256 checksum
How to use checksums
84a843dc6f4afe010932c29bc36cd3d2c3ac847fa9bc921681adc1f5b0626eb2
BLAKE2b-256 checksum
How to use checksums
c144a02c695e18451284a1a77f03f09afc73e3237bf06f4192966418a5e08474
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / mcp_cloudnex-1.0.0-py3-none-any.whl

Download URL mcp_cloudnex-1.0.0-py3-none-any.whl
Size 27.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
239175b1e2b655f97901880ad6f4e645005fe676982e524ce95c6ee4b5c84a98
BLAKE2b-256 checksum
How to use checksums
92859413099969dea05e8e099aa9f39e2b3ec9d5c4b97b13da3792395c53ba4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Security for mcp-cloudnex 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page