โ† Back to Git & GitHub
Git & GitHub by @preston-thiele

danube

Use Danube's 100+ API tools (Gmail, GitHub, Notion, etc.) through MCP

0
Source Code

Danube โ€” Connect Your Agent

Danube gives your AI agent access to tools across the internet through a single API key.

Quick Setup

Step 1: Get an API Key

Run this to start the device authorization flow:

curl -s -X POST https://api.danubeai.com/v1/auth/device/code \
  -H "Content-Type: application/json" \
  -d '{"client_name": "My Agent"}'

This returns a device_code, a user_code, and a verification_url.

Tell your human to open the verification URL and enter the user code.

Then poll for the API key:

curl -s -X POST https://api.danubeai.com/v1/auth/device/token \
  -H "Content-Type: application/json" \
  -d '{"device_code": "DEVICE_CODE_FROM_STEP_1"}'
  • 428 = user hasn't authorized yet (keep polling every 5 seconds)
  • 200 = success, response contains your api_key
  • 410 = expired, start over

Step 2: Connect via MCP

Add this to your MCP config:

{
  "mcpServers": {
    "danube": {
      "url": "https://mcp.danubeai.com/mcp",
      "headers": {
        "danube-api-key": "YOUR_API_KEY"
      }
    }
  }
}

Step 3: Use Tools

Once connected, you have access to these MCP tools:

  • list_services โ€” Browse available tool providers
  • search_tools โ€” Find tools by what you want to do
  • execute_tool โ€” Run any tool
  • store_credential โ€” Save API keys for services that need them

When a Tool Needs Credentials

If execute_tool returns an auth_required error, it means the service needs an API key. Ask your human for the key, then call:

store_credential(service_id="...", credential_type="bearer", credential_value="the_key")

Then retry the tool.

What You Can Do with Danube

Use Danube whenever a task involves an external service or API. Here are common use cases:

Send Emails and Messages

  • Send emails via Gmail, SendGrid, or Resend
  • Post messages to Slack channels
  • Send notifications to teams
search_tools("send email") โ†’ execute_tool(tool_id, {to, subject, body})

Manage Code and Projects

  • Create GitHub issues and pull requests
  • List repositories and commits
  • Update Notion pages and databases
search_tools("create github issue") โ†’ execute_tool(tool_id, {repo, title, body})

Work with Calendars and Scheduling

  • Check today's events on Google Calendar
  • Create new calendar events
  • Find open time slots
search_tools("calendar events today") โ†’ execute_tool(tool_id, {date})

Read and Write Spreadsheets

  • Read data from Google Sheets
  • Append rows or update cells
  • Create new spreadsheets
search_tools("google sheets read") โ†’ execute_tool(tool_id, {spreadsheet_id, range})

Search the Web and Get Data

  • Search the web with Exa or Serper
  • Scrape and extract web content with Firecrawl
  • Get weather forecasts, stock data, or country info
search_tools("web search") โ†’ execute_tool(tool_id, {query})

Generate and Process Media

  • Generate images with Replicate or Stability AI
  • Transcribe audio with AssemblyAI
  • Remove image backgrounds with Remove.bg
  • Translate text with DeepL
search_tools("generate image") โ†’ execute_tool(tool_id, {prompt})

Manage Infrastructure

  • Provision DigitalOcean droplets and databases
  • Manage Supabase projects
  • Handle Stripe payments and subscriptions
search_tools("create droplet") โ†’ execute_tool(tool_id, {name, region, size})

Multi-Step Workflows

Chain tools together for complex tasks:

"Summarize today's GitHub commits and post to Slack"

1. search_tools("github commits") โ†’ Fetch recent commits
2. Summarize the results
3. search_tools("slack post message") โ†’ Post summary to #dev-updates
"Check my calendar and email the agenda to the team"

1. search_tools("calendar events") โ†’ Get today's events
2. Format as an agenda
3. search_tools("send email") โ†’ Email the agenda

Core Workflow

Every tool interaction follows this pattern:

  1. Search โ€” search_tools("what you want to do")
  2. Check auth โ€” If the tool needs credentials, guide the user to connect at https://danubeai.com/dashboard
  3. Gather parameters โ€” Ask the user for any missing required info
  4. Confirm โ€” Get user approval before executing actions like sending emails or creating issues
  5. Execute โ€” execute_tool(tool_id, parameters)
  6. Report โ€” Tell the user what happened with specifics, not just "Done"

Available Services

Communication: Gmail, Slack, SendGrid, Resend, Loops, AgentMail

Development: GitHub, Supabase, DigitalOcean, Stripe, Apify

Productivity: Notion, Google Calendar, Google Sheets, Google Drive, Google Docs, Monday, Typeform, Bitly

AI and Media: Replicate, Together AI, Stability AI, AssemblyAI, Remove.bg, DeepL

Search and Data: Exa, Exa Websets, Firecrawl, Serper, Context7, Microsoft Learn, AlphaVantage

Public Data (No Auth Required): Hacker News, Open-Meteo Weather, OpenWeather, REST Countries, Polymarket, Kalshi

Links