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-keywith constant-time comparison - Request timeout — 30s for all HTTP requests
License
Apache License 2.0 — see LICENSE.
Project details
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a41e8c5855fa1f431928ff8210e9dd9e5f5d0da90d58cab2788fa87fa38e5c39
|
|
| MD5 |
0934b2fb193c25ab0f9710c70c7fa6e7
|
|
| BLAKE2b-256 |
c87d2d75d20a49713c53c99dd89ee325d7c21a9e04f87b0705b024f98344372c
|
Provenance
The following attestation bundles were made for greenode_mcp_server-0.3.1.tar.gz:
Publisher:
release.yml on vngcloud/greennode-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
greenode_mcp_server-0.3.1.tar.gz -
Subject digest:
a41e8c5855fa1f431928ff8210e9dd9e5f5d0da90d58cab2788fa87fa38e5c39 - Sigstore transparency entry: 1325075400
- Sigstore integration time:
-
Permalink:
vngcloud/greennode-mcp@5b8bfd85fcf6a86e764f32bb22bcf85e407366af -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/vngcloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5b8bfd85fcf6a86e764f32bb22bcf85e407366af -
Trigger Event:
push
-
Statement type:
File details
Details for the file greenode_mcp_server-0.3.1-py3-none-any.whl.
File metadata
- Download URL: greenode_mcp_server-0.3.1-py3-none-any.whl
- Upload date:
- Size: 32.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1776347fdfe32022136e9878160c4c1b96406261582109f820e43ae456007d8d
|
|
| MD5 |
b2bde0711c3599d3dcf35dc74d4780fa
|
|
| BLAKE2b-256 |
6372d4c67eb57a15a45b0bcb8674f1a95d126d5abe5db5b76819ef4a0874288b
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
greenode_mcp_server-0.3.1-py3-none-any.whl -
Subject digest:
1776347fdfe32022136e9878160c4c1b96406261582109f820e43ae456007d8d - Sigstore transparency entry: 1325075540
- Sigstore integration time:
-
Permalink:
vngcloud/greennode-mcp@5b8bfd85fcf6a86e764f32bb22bcf85e407366af -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/vngcloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5b8bfd85fcf6a86e764f32bb22bcf85e407366af -
Trigger Event:
push
-
Statement type: