Danube

Governed tool access for AI agents — one Danube API key unlocks your organization's own tools plus a large, growing catalog of services, over MCP or curl, with confirmation before …

Danube

@preston-thiele

Install

$ openclaw skills install @preston-thiele/danube

Danube — Governed Tool Access for Agents

Danube makes an organization's own tools — plus a large and growing catalog of ready-made services — callable by AI agents through a single API key, with permissions, spending limits, and an audit trail handled by the platform. The catalog changes constantly and includes tools the user's organization connected privately, so never assume what is available — search first.

Guardrails (read these first)

  • Read freely, act with consent. Discovery — listing services, searching tools, reading schemas, checking ratings, balances, or limits — needs no confirmation. Before any action that writes, sends, posts, deletes, purchases, spends wallet funds, stores a credential, changes spending limits, or creates/updates/deletes a skill or workflow — and before any batch execution — show the user the exact tool and parameters and get an explicit "yes".
  • Never invent credentials. Only store an API key the user has explicitly handed you in this conversation, and confirm before storing. Otherwise send them to https://danubeai.com/dashboard to connect the service themselves.
  • Least data. Pass only the parameters the task needs; don't forward unrelated personal data to third-party services.
  • Respect limits. Don't raise spending limits or fund wallets unless the user asks for exactly that.
  • Report specifics. After executing, say which tool ran, with what inputs, and what came back — not just "done".

Setup

1. Get an API key

From the dashboard: https://danubeai.com/dashboard → Settings → API Keys (keys start with dk_).

Or let the user authorize this agent with the OAuth 2.0 Device Authorization flow (RFC 8628):

curl -s -X POST https://api.danubeai.com/v1/auth/device/code \
  -H "Content-Type: application/json" -d '{"client_name": "OpenClaw"}'
# → {"device_code": "...", "user_code": "XXXX-XXXX", "verification_url": "...", "expires_in": ..., "interval": 5}

Tell the user to open verification_url in a browser and enter user_code. Then poll:

curl -s -X POST https://api.danubeai.com/v1/auth/device/token \
  -H "Content-Type: application/json" -d '{"device_code": "DEVICE_CODE_FROM_ABOVE"}'

428 = not approved yet (poll every interval seconds) · 200 = {"api_key": "dk_..."} · 410 = expired, start over.

2. Make the key available to OpenClaw

Set DANUBE_API_KEY in the environment, or in openclaw.json:

{ skills: { entries: { danube: { apiKey: "dk_..." } } } }

3a. Connect natively over MCP (recommended)

OpenClaw has a built-in MCP client. Register Danube's server once and its tools become ordinary OpenClaw tools (search_tools, execute_tool, …):

openclaw mcp set danube '{"url":"https://mcp.danubeai.com/mcp","transport":"streamable-http","headers":{"danube-api-key":"dk_..."}}'
openclaw mcp doctor danube --probe

Use the real key value in headers (not ${DANUBE_API_KEY}). The server also speaks MCP OAuth: use "auth":"oauth" instead of headers, then openclaw mcp login danube.

3b. Or use plain curl — no MCP needed

Every capability below is also a REST call against https://api.danubeai.com/v1 with the header danube-api-key: $DANUBE_API_KEY. Copy-paste recipes: {baseDir}/references/rest-api.md.

Working with tools

Every task follows Explore → Inspect → (Confirm) → Execute → Report.

GoalMCP toolREST
See what services existlist_services(query, limit)GET /services
Find a tool for a tasksearch_tools(query, service_id?, limit?)GET /tools/search?query=…
All tools of one serviceget_service_tools(service_id)GET /services/{id}/tools
Full schema of one toolreturned by the calls aboveGET /tools/{tool_id}
Run a toolexecute_tool(tool_id, parameters)POST /tools/call/{tool_id} with {"tool_input": {…}}
Run up to 10 at oncebatch_execute_tools(calls)POST /tools/call/batch

Discovery tips:

  • Describe the outcome in natural language ("send an email", "create a GitHub issue", "translate text"); search is semantic.
  • If the first query misses, rephrase and try again before concluding a capability doesn't exist. The catalog is far larger than you'd guess.
  • Read the tool's parameter schema (required, type, enum, tips) before executing; ask the user for anything required that you don't have. Never reuse tool IDs from memory — search again.

When a tool needs credentials

A result containing "error_type": "auth_required" means this user hasn't connected that service yet:

  1. Prefer sending the user to the configuration_url in the error (or https://danubeai.com/dashboard) to connect it — the only path for OAuth services such as Gmail, Slack, or Google Calendar.
  2. For API-key services, if the user explicitly gives you the key and confirms, call store_credential(service_id, credential_type="bearer", credential_value=…), then retry.

HTTP 429 with an upgrade_url means the account's plan limit is reached — tell the user; don't retry in a loop.

Beyond tools

Available through the same connection, same guardrails:

  • Skills: search_skills, get_skill, create_skill, update_skill, delete_skill
  • Workflows: list_workflows, create_workflow, update_workflow, delete_workflow, execute_workflow, get_workflow_execution
  • Quality signal: get_tool_ratings, get_my_rating, submit_rating, report_tool, get_recommendations — if a tool fails or returns bad output, report_tool it so it gets fixed.
  • Wallet & agents: get_wallet_balance, get_spending_limits, update_spending_limits, fund_agent_wallet, register_agent, get_agent_info

Something not working? {baseDir}/references/troubleshooting.md

Links

Top skills in this category

百度网盘

@wscats

百度网盘(Baidu Drive, pan.baidu.com)文件管理 — 上传、下载、转存、分享、搜索、移动、复制、重命名、创建文件夹、删除(高风险,需用户确认)。 同时支持 Agent 记忆备份/恢复(kimiclaw/maxclaw/qclaw/openclaw)。 TRIGGER: 用户消息明确提及"百...

1922k

wechat-mp-writer-skill-mxx

@hahacatlsq

微信公众号文章全流程写作助手。支持热点选题、文章撰写、AI去味润色(去除机器感)、配图建议、一键发布到公众号草稿箱。适用于技术博主、自媒体创作者、企业公众号运营等场景。当用户需要写公众号文章、润色内容、寻找配图或发布到微信时使用此skill。

376.1k

Weiyun Skills

@wscats

微云网盘 MCP 接口完整技能。包含 weiyun.list、weiyun.list_by_category、weiyun.download、weiyun.delete、weiyun.upload、weiyun.gen_share_link、weiyun.rename_file、weiyun.rename_dir...

921k

Agent Commerce Engine

@nowloady

A production-ready universal engine for Agentic Commerce. This tool enables autonomous agents to interact with any compatible headless e-commerce backend thr...

95.0k

Blog Writer

@tomstools11

This skill should be used when writing blog posts, articles, or long-form content in the writer's distinctive writing style. It produces authentic, opinionated content that matches the writer's voice—direct, conversational, and grounded in personal experience. The skill handles the complete workflow from research review through Notion publication. Use this skill for drafting blog posts, thought leadership pieces, or any writing meant to reflect the writer's perspective on AI, productivity, sales, marketing, or technology topics.

66.9k