Skip to main content

GreenNode MCP Server — AI assistant tools for all VNG Cloud products

Project description

GreenNode MCP Server

MCP (Model Context Protocol) Server for VNG Cloud. Provides AI assistants with tools to manage all VNG Cloud services from natural language.

Key Features

  • Dynamic API Call — Two tools (search_api + call_api) cover all VNG Cloud REST APIs
  • OpenAPI-driven — Adding a new product = adding a spec file to specs/
  • Kubernetes Resources — List pods/deployments/services, get logs, apply YAML manifests
  • Safety Controls — Read-only by default, write operations require explicit opt-in
  • Streamable HTTP — Remote hosting via --transport streamable-http

Prerequisites

  • Python 3.10 or later
  • uv package manager (recommended) or pip
  • GreenNode credentials — via environment variables or credentials file

Credential setup

Option A: Environment variables

export GRN_ACCESS_KEY_ID=your-client-id
export GRN_SECRET_ACCESS_KEY=your-client-secret
export GRN_DEFAULT_REGION=HCM-3

Option B: Credentials file (via GreenNode CLI)

pip install grncli
grn configure

This creates ~/.greenode/credentials which the server reads automatically.

Quickstart

uvx greenode-mcp-server

Claude Desktop / Cursor configuration

{
  "mcpServers": {
    "greennode": {
      "command": "uvx",
      "args": ["greenode-mcp-server", "--allow-write"]
    }
  }
}

Tools

search_api

Search VNG Cloud API endpoints by keyword. Use this to discover which endpoint to call.

search_api(query="create cluster")
search_api(query="list load balancers", product="vlb")

call_api

Execute any VNG Cloud REST API call. IAM auth token is injected automatically.

call_api(method="GET", path="/v1/clusters")
call_api(method="POST", path="/v1/clusters", body={"name": "my-cluster", ...})

Kubernetes Resource Management

Requires kubeconfig from VKS API.

Tool Description
list_k8s_resources List K8s resources (Pods, Services, Deployments, etc.)
get_pod_logs View pod logs
get_k8s_events View resource events
list_api_versions List available API versions
manage_k8s_resource CRUD single K8s resource
apply_yaml Apply YAML manifest

CLI Flags

Flag Default Description
--allow-write false Enable write operations (POST, PUT, PATCH, DELETE)
--allow-sensitive-data-access false Enable reading K8s Secrets
--transport stdio stdio or streamable-http
--host 127.0.0.1 Bind host for HTTP transport
--port 8000 Bind port for HTTP transport
--api-key Bearer token for HTTP endpoint (env: GRN_MCP_API_KEY)

Supported Products

Products are added by bundling OpenAPI specs in specs/. Currently available:

Product Spec file Endpoints
VKS (VNG Kubernetes Service) vks.json 28

More products (vServer, vLB, vStorage, vNetwork, DNS, CDN, vMonitor, vDB) will be added incrementally.

Security

  • Read-only by default — Write operations require --allow-write
  • Sensitive data protection — K8s Secrets require --allow-sensitive-data-access
  • Path validation — Rejects ../ and non-path strings before any HTTP call
  • Token injection — IAM token managed by server, never exposed to AI model
  • Tokens in memory only — Never written to disk or logged
  • HTTP auth — Streamable HTTP protected via --api-key with constant-time comparison
  • Request timeout — 30s for all HTTP requests

License

Apache License 2.0 — see LICENSE.

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

greenode_mcp_server-0.3.1.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

greenode_mcp_server-0.3.1-py3-none-any.whl (32.4 kB view details)

Uploaded Python 3

File details

Details for the file greenode_mcp_server-0.3.1.tar.gz.

File metadata

  • Download URL: greenode_mcp_server-0.3.1.tar.gz
  • Upload date:
  • Size: 33.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for greenode_mcp_server-0.3.1.tar.gz
Algorithm Hash digest
SHA256 a41e8c5855fa1f431928ff8210e9dd9e5f5d0da90d58cab2788fa87fa38e5c39
MD5 0934b2fb193c25ab0f9710c70c7fa6e7
BLAKE2b-256 c87d2d75d20a49713c53c99dd89ee325d7c21a9e04f87b0705b024f98344372c

See more details on using hashes here.

Provenance

The following attestation bundles were made for greenode_mcp_server-0.3.1.tar.gz:

Publisher: release.yml on vngcloud/greennode-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file greenode_mcp_server-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for greenode_mcp_server-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1776347fdfe32022136e9878160c4c1b96406261582109f820e43ae456007d8d
MD5 b2bde0711c3599d3dcf35dc74d4780fa
BLAKE2b-256 6372d4c67eb57a15a45b0bcb8674f1a95d126d5abe5db5b76819ef4a0874288b

See more details on using hashes here.

Provenance

The following attestation bundles were made for greenode_mcp_server-0.3.1-py3-none-any.whl:

Publisher: release.yml on vngcloud/greennode-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page