@datanimbus/dnio-mcp
v1.0.3
Published
MCP Server for DataNimbus BaaS platform - dynamically exposes CRUD tools for all Data Services
Downloads
564
Keywords
Readme
@datanimbus/dnio-mcp
Model Context Protocol (MCP) server for the DataNimbus BaaS platform. Exposes Data Services, Connectors, Plugins, Data Pipes (flows), Deployment Groups, and Data Formats as MCP tools — drive the platform from Claude Desktop, Cursor, or any MCP client through natural language.
CRUD tools for every Data Service in the selected app are registered dynamically at runtime, so the agent gets typed list/get/create/update/delete/count per service the moment you select_app.
Prerequisites
- Node.js ≥ 18 (for native
fetch). - A running DataNimbus instance reachable over HTTPS.
- Admin credentials (
DNIO_STUDIO_USERNAME/DNIO_STUDIO_PASSWORD) for management APIs. - A pre-provisioned MCP service account on the platform (
DNIO_OPS_USER/DNIO_OPS_PASSWORD). Server logs in as the service account for data-plane operations and adds it to all apps on first boot. Seedocs/authentication.md.
Quick Start (Claude Desktop)
Add to claude_desktop_config.json:
{
"mcpServers": {
"@datanimbus/dnio-mcp": {
"command": "npx",
"args": [
"-y",
"@datanimbus/dnio-mcp@latest"
],
"env": {
"DNIO_BASE_URL": "https://your-datanimbus-instance.com",
"DNIO_STUDIO_USERNAME": "<admin-username>",
"DNIO_STUDIO_PASSWORD": "<admin-password>",
"DNIO_OPS_USER": "<mcp-service-account-email>",
"DNIO_OPS_PASSWORD": "<mcp-service-account-password>",
"TRANSPORT": "stdio"
}
}
}
}Restart Claude Desktop. The agent now has access to every DNIO domain tool. Same shape works in Cursor (.cursor/mcp.json) or any MCP-compliant client.
For HTTP transport (multi-tenant / remote deployment):
TRANSPORT=http MCP_PORT=3100 \
DNIO_BASE_URL=https://your-datanimbus-instance.com \
DNIO_STUDIO_USERNAME=<admin-username> \
DNIO_STUDIO_PASSWORD=<admin-password> \
DNIO_OPS_USER=<mcp-service-account-email> \
DNIO_OPS_PASSWORD=<mcp-service-account-password> \
npx -y @datanimbus/dnio-mcp@latestServer listens at http://localhost:3100/mcp (authless — protect at the network layer).
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
| DNIO_BASE_URL | ✅ | — | Platform base URL (e.g. https://qa.datanimbus.io). |
| DNIO_STUDIO_USERNAME | ✅ | — | Admin username for management APIs (list apps, fetch schemas, deploy services). |
| DNIO_STUDIO_PASSWORD | ✅ | — | Admin password. |
| DNIO_OPS_USER | ✅ | — | Service-account email/ID the server logs in as for data-plane operations. |
| DNIO_OPS_PASSWORD | ✅ | — | Service-account password. |
| TRANSPORT | — | stdio | stdio for local clients (Claude Desktop / Cursor); http for deployed mode. |
| MCP_PORT | — | 3100 | HTTP port (only when TRANSPORT=http). |
| DNIO_NAMESPACE | — | DNIO | DNIO namespace used for service-account provisioning. |
| DNIO_TOKEN_TTL | — | 1800 | Token TTL in seconds — both admin + MCP-user tokens auto-refresh before expiry. |
| LOG_LEVEL | — | info | debug / info / warn / error. |
| SESSION_TTL | — | 7200 | HTTP-session lifetime in seconds (HTTP transport only). |
Server fails fast with [FATAL] Missing required env var: <name> if any required variable is unset.
Two-token model: admin token for management APIs, MCP-user token for data plane. Both managed in memory, never written to disk, never logged. Tool handlers switch tokens explicitly per operation. Full lifecycle in docs/authentication.md.
Available Tools
Tools are organized into product domains. After select_app, per-service typed CRUD tools are also registered dynamically (<servicePrefix>_list / _get / _create / _update / _delete / _count).
App context
list_apps, select_app, list_services, refresh_services, get_service_schema
Records (CRUD)
list_records, get_record, create_record, update_record, delete_record, count_records — generic, takes serviceName arg. Plus the per-service typed tools mentioned above.
Data Services (definitions)
get_data_service_spec, create_data_service, get_data_service, list_data_services, update_data_service, deploy_data_service, start_stop_data_service. Auto-injects app, default connectors, and role (3 standard roles + per-field permission map).
Connectors
list_connectors, list_connector_types (marketplace), create_connector. Common types: MONGODB, S3, SFTP, ACTIVEMQ, SMTP.
Plugins (workflow nodes)
list_marketplace_plugins, install_plugins, list_installed_plugins, update_plugins, uninstall_plugins. Note: V1_CODEBLOCK is a platform built-in — pass directly to flow tools without installing.
Data Pipes (flows)
list_trigger_plugins, list_process_plugins, list_flows, get_flow, create_flow, add_node_to_flow, update_node_in_flow, connect_nodes, remove_node_from_flow, publish_flow. Auto-maps fields by name match; surfaces unmapped inputs; returns the public invocation URL for HTTP triggers.
Deployment Groups (Kubernetes)
list_available_flows, list_deployment_groups, get_deployment_group, create_deployment_group, add_flows_to_deployment_group, remove_flows_from_deployment_group, rename_deployment_group, start_deployment_group, stop_deployment_group, sync_deployment_group, delete_deployment_group, get_deployment_group_yamls. Enforces the one-flow-one-group rule atomically.
Data Formats
list_data_formats, get_data_format, create_data_format, update_data_format, delete_data_format, add_attribute, update_attribute, remove_attribute. Handles the rigid HRSF skeleton (Header/Records/Footer) for FLATFILE/TXT/CSV/DELIMITER.
Docker
docker run -d --name dnio-mcp -p 3100:3100 \
-e DNIO_BASE_URL=https://your-datanimbus-instance.com \
-e DNIO_STUDIO_USERNAME=<admin-username> \
-e DNIO_STUDIO_PASSWORD=<admin-password> \
-e DNIO_OPS_USER=<mcp-service-account-email> \
-e DNIO_OPS_PASSWORD=<mcp-service-account-password> \
-e TRANSPORT=http \
ghcr.io/datanimbus/dnio-mcp:latestOr build from source — Dockerfile in repo root, K8s manifests in yamls/.
Documentation
docs/architecture.md— codebase layout, master client + per-domain pattern, transports.docs/authentication.md— token model, refresh lifecycle, app provisioning.docs/workflows.md— end-to-end recipes (build a data service, design a flow, deploy to K8s).docs/tools/— per-domain tool reference with endpoints + auto-injection rules.
License
ISC.
