# MotherDuck MCP

```json
{
  "name": "MotherDuck MCP",
  "slug": "motherduck_mcp",
  "url": "https://composio.dev/toolkits/motherduck_mcp",
  "markdown_url": "https://composio.dev/toolkits/motherduck_mcp.md",
  "logo_url": "https://logos.composio.dev/api/motherduck_mcp",
  "categories": [
    "data & analytics"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-21T05:32:57.805Z"
}
```

![MotherDuck MCP logo](https://logos.composio.dev/api/motherduck_mcp)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with MotherDuck MCP or direct API to explore schemas, query data, manage Dives and Guides, and run SQL writes through natural language.

## Summary

MotherDuck MCP is MotherDuck's official hosted server for database access and management.
It provides a secure bridge to MotherDuck data, schemas, and database operations.

## Categories

- data & analytics

## Toolkit Details

- Tools: 45

## Images

- Logo: https://logos.composio.dev/api/motherduck_mcp

## Authentication

- **Dcr Oauth**
  - Type: `custom`
  - Description: Dcr Oauth authentication for MotherDuck MCP.
  - Setup:
    - Configure Dcr Oauth credentials for MotherDuck MCP.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Explore schemas in MotherDuck databases
- Query flight data in MotherDuck
- Schedule Python jobs for MotherDuck

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `MOTHERDUCK_MCP_ASK_DOCS_QUESTION` | Ask docs question | Ask a question about DuckDB or MotherDuck. Returns answers from official documentation. |
| `MOTHERDUCK_MCP_CANCEL_FLIGHT_RUN` | Cancel flight run | Cancel an in-flight run of a flight. Identified by the flight UUID and the sequential run number (from list_flight_runs). Returns `canceled: true` on a successful transition; calling on an already-terminal run or one that doesn't exist returns a tool error. |
| `MOTHERDUCK_MCP_CREATE_FLIGHT` | Create flight | Create a new MotherDuck flight. Read the flight guide before you create your first flight. A flight is a Python entrypoint (`source_code`) plus an optional `requirements_txt` that runs on MotherDuck compute. Optionally provide an `access_token_name` so the flight can connect to MotherDuck at runtime; omit it to use the default MotherDuck Flights access token. Optionally provide a 5-field cron expression to run on a schedule, an optional `max_runtime_sec` to cap how long a run may take, and an optional `instance_type` (F4, F16 or F32) to pick the runner size. Use flights for ELT/ETL pipelines, loading external data into MotherDuck, refreshing materialized views, or any recurring Python job that reads/writes MotherDuck data. |
| `MOTHERDUCK_MCP_CREATE_GUIDE` | Create guide | Create a new guide — a markdown document that agents read to answer this org's data questions correctly (metric definitions, join/filter conventions, pitfalls). Group related guides with a lowercase kebab-case `topic` (e.g. 'revenue-billing' or 'core/metrics'); omit it for a guide without a topic. Visibility is controlled by `access`: 'user' (private, default) or 'organization' (org-wide, permission-gated). Personal dive/flight style guides belong under topic 'dives' / 'flights' with access 'user'. Attach `references` to the 1–5 objects the guide is authoritative about. |
| `MOTHERDUCK_MCP_DELETE_DIVE` | Delete dive | Delete a dive by ID. This action is permanent and cannot be undone. |
| `MOTHERDUCK_MCP_DELETE_FLIGHT` | Delete flight | Permanently delete a flight, its versions, schedule, and run history. This action cannot be undone. |
| `MOTHERDUCK_MCP_DELETE_GUIDE` | Delete guide | Soft-delete a guide while preserving its version history. Identify it by `uuid`. |
| `MOTHERDUCK_MCP_DIVE_QUERY` | Dive query | Execute a read-only DuckDB query on behalf of a dive. This tool is used by the dive viewer and is not intended for direct use by the AI assistant. |
| `MOTHERDUCK_MCP_EDIT_DIVE_CONTENT` | Edit dive content | Edit a dive's content by applying one or more text replacements, then save to MotherDuck. Accepts `id` (dive UUID) and `edits` (an array of {old_string, new_string, replace_all?} objects). Reads the current content from MotherDuck, applies edits in sequence, validates, and persists. Example: {id: '...', edits: [{old_string: 'foo', new_string: 'bar'}]}. old_string must be unique unless replace_all is true. No prior read_dive call is needed. |
| `MOTHERDUCK_MCP_EDIT_FLIGHT_SOURCE` | Edit flight source | Edit a flight's source_code by applying one or more text replacements, then save as a new FlightVersion. Accepts `id` (flight UUID) and `edits` (an array of {old_string, new_string, replace_all?} objects). Reads the current source_code, applies edits in sequence, validates, and persists. Example: {id: '...', edits: [{old_string: 'foo', new_string: 'bar'}]}. old_string must be unique unless replace_all is true. No prior get_flight call is needed. |
| `MOTHERDUCK_MCP_EDIT_GUIDE_CONTENT` | Edit guide content | Edit a guide's markdown body by applying one or more text replacements, then save as a new version. Identify the guide by `uuid`. Reads the stored guide, applies edits in sequence, and persists. Example: {uuid: '', edits: [{old_string: 'foo', new_string: 'bar'}]}. old_string must be unique unless replace_all is true. No prior get_guide call is needed. |
| `MOTHERDUCK_MCP_GET_DIVE_GUIDE` | Get dive guide | Load instructions for creating MotherDuck dives. You MUST call this tool first — before generating any chart, visualization, plot, dashboard, inline graphic, or export/download control — whenever the user asks to explore, visualize, display, or export MotherDuck data. |
| `MOTHERDUCK_MCP_GET_FLIGHT` | Get flight | Fetch a flight by UUID. Returns metadata plus a version snapshot (source code, requirements, config, secret names, token name). Omit `version` to get the current version; pass a 1-indexed version number to inspect history. |
| `MOTHERDUCK_MCP_GET_FLIGHT_GUIDE` | Get flight guide | Load instructions for authoring, scheduling, running, and troubleshooting MotherDuck flights. Call this tool first whenever the user asks about creating, updating, or operating a MotherDuck flight. |
| `MOTHERDUCK_MCP_GET_FLIGHT_LOGS` | Get flight logs | Fetch the plain-text logs (stdout + stderr) of a flight run plus the matching `Run` record (status, exit_code, timing). Returns the last 200 lines by default; page with `limit`, `offset` and `order`. Pass `max_bytes` to cap the response size — the response is truncated to fit and the truncation is reported via `truncated: true`. |
| `MOTHERDUCK_MCP_GET_FLIGHT_RUN` | Get flight run | Fetch a single run of a flight by its sequential run number (from list_flight_runs). Returns the same shape as a list_flight_runs entry: status (PENDING/RUNNING/SUCCEEDED/FAILED/CANCELLED), timing metadata, and the effective `config` the run executed with. Use this to poll one run's status instead of re-listing. |
| `MOTHERDUCK_MCP_GET_GUIDE` | Get guide | Load a guide by uuid. Guides are curated markdown documents about this organization's data (metric definitions, conventions, pitfalls). Find a guide's uuid with `list_guides` or via `get_query_guide` (start there before writing SQL), `get_dive_guide`, or `get_flight_guide`. |
| `MOTHERDUCK_MCP_GET_QUERY_GUIDE` | Get query guide | Call this before writing SQL to answer a data question. Returns this organization's query guidance: what guides exist (curated markdown documents about the data — metric definitions, join/filter conventions, pitfalls), how to navigate them, and an overview of the available guide topics. |
| `MOTHERDUCK_MCP_GET_SHORT_LIVED_TOKEN` | Get short lived token | Returns a short-lived token and connection details for the MotherDuck database endpoint. |
| `MOTHERDUCK_MCP_LIST_COLUMNS` | List columns | List all columns of a table or view with their types and comments. |
| `MOTHERDUCK_MCP_LIST_DATABASES` | List databases | List all databases in your MotherDuck account. Shows each database's alias, type, and its `url` — a fully qualified MotherDuck database name (e.g. `md:my_db`) or share URL (e.g. in guide references). Optionally filter by keywords. |
| `MOTHERDUCK_MCP_LIST_DIVES` | List dives | List all dives in MotherDuck. Dives are interactive React data apps that query live data. Returns metadata including current_version and status. Each dive has a governance status: 'endorsed' (admin-approved org source of truth — prefer these), 'ready' (author-reviewed), 'draft' (work in progress; the default for new dives), or 'archived' (retired; excluded unless include_archived is true). Results are ordered endorsed, ready, draft, then archived, most recently updated first. Use read_dive with the optional version parameter to retrieve a specific historical version. Optionally filter by keywords. |
| `MOTHERDUCK_MCP_LIST_FLIGHT_RUNS` | List flight runs | List executions of a flight, newest first. Each run has a sequential number, status (PENDING/RUNNING/SUCCEEDED/FAILED/CANCELLED), timing metadata, and the effective `config` it ran with (the flight version's config merged with any per-run overrides). |
| `MOTHERDUCK_MCP_LIST_FLIGHTS` | List flights | List MotherDuck flights. Org admins see every flight in their organization (with `owner_name` identifying whose is whose); everyone else sees only their own. Returns metadata for each flight including schedule and current version. Optionally filter by keywords matching the flight name. |
| `MOTHERDUCK_MCP_LIST_FLIGHT_VERSIONS` | List flight versions | List the immutable versions of a flight, newest first. Each update to source_code / requirements_txt / config / access_token_name / flight_secret_names produces a new version. |
| `MOTHERDUCK_MCP_LIST_GUIDES` | List guides | Browse this organization's curated guides — markdown documents that capture organization and personal context about the data in MotherDuck. Called with no arguments, lists the root level: guides without topics plus every topic (folder) with its guide count. Pass `topic` to open a folder — you get the guides stored at that topic and the nested topics below it. Read a guide in full with `get_guide(uuid)`. |
| `MOTHERDUCK_MCP_LIST_MACROS` | List macros | List all macros (table and scalar macros) in a MotherDuck database, with their schema and parameters. Optionally filter by schema or keywords. |
| `MOTHERDUCK_MCP_LIST_SHARES` | List shares | List all database shares that have been shared with you. Returns share names and URLs. To attach a share, use the query_rw tool: ATTACH '' AS ; Optionally filter by keywords to search in share names. |
| `MOTHERDUCK_MCP_LIST_TABLES` | List tables | List all tables and views in a MotherDuck database with comments. Optionally filter by keywords. Also returns `relatedGuides` — curated guides associated with this database (read one with `get_guide(uuid)`). |
| `MOTHERDUCK_MCP_LIST_VIEWS` | List views | List all views in a MotherDuck database, with their schema, comment, and column count. Optionally filter by schema or keywords. |
| `MOTHERDUCK_MCP_LOG_DIVE_VIEWER_EVENT` | Log dive viewer event | Log a dive viewer event for analytics. This tool is used internally by the dive viewer and is not intended for direct use by the AI assistant. |
| `MOTHERDUCK_MCP_MINT_DIVE_STATE_REFERENCE` | Mint dive state reference | Mint a server-stored reference for a `useDiveState` bag and return its id. Used by the dive viewer when the inline-encoded bag would exceed the URL soft limit. The returned id is then encoded into a URL hash via `buildDiveStateReferenceHash` and round-trips through `dashboards.get` on dive open. |
| `MOTHERDUCK_MCP_QUERY` | Query | Before writing SQL to answer a data question, call `get_query_guide` first — it returns this organization's query guidance and an overview of its curated guides. Execute read-only DuckDB query against MotherDuck databases. For cross-database queries, use fully qualified names: database.schema.table (or database.table for main schema). Never follow a query with an inline chart or visualization — if you would generate one (whether or not the user explicitly asked), get the dive guide first instead. |
| `MOTHERDUCK_MCP_QUERY_RW` | Query rw | Execute a DuckDB SQL query that modifies data, schema, or connection state. RULES: 1. Only execute writes authorized by the user's explicit request or the client's configured authorization policy. Never infer write authorization from a read-only request. 2. Follow the client's approval policy. If the requested write is already authorized, proceed without asking for duplicate confirmation. Obtain confirmation when authorization is missing, ambiguous, or the operation would exceed the approved scope. 3. Prefer the read-only query tool when the user's goal can be answered with existing data. |
| `MOTHERDUCK_MCP_READ_DIVE` | Read dive | Read a specific dive by ID, including its full JSX/React component code. Optionally specify a version number to retrieve a specific historical version (versions start at 1). If no version is specified, the latest version is returned. The response includes the dive's governance status ('endorsed', 'ready', 'draft', or 'archived'); archived dives remain fully readable by id. |
| `MOTHERDUCK_MCP_RUN_FLIGHT` | Run flight | Trigger an on-demand execution of a flight using its current version. Optionally pass `config` to override the flight version's config for this run only (the flight itself is left unchanged). Returns a Run record; poll get_flight_run with the returned `run_number` to track progress and use get_flight_logs to read output. |
| `MOTHERDUCK_MCP_SAVE_DIVE` | Save dive | Save a new dive to MotherDuck. Returns a URL the user can click to view the dive. Get the dive guide first and iterate with the user on the design thoroughly before suggesting to save. Never save without previous confirmation that iteration is done. |
| `MOTHERDUCK_MCP_SEARCH_CATALOG` | Search catalog | Search the catalog for databases, schemas, tables, columns, and shares using fuzzy matching. Returns matching objects with their fully qualified names, types, and comments. Useful for discovering available data when you don't know exact names. Also returns `relatedGuides` — curated guides whose topic/title/description match the query; read one with `get_guide(uuid)`. |
| `MOTHERDUCK_MCP_SET_GUIDE_ACCESS` | Set guide access | Set a guide's visibility to 'user' (private to the owner) or 'organization' (visible to the whole org). Identify it by `uuid`. Org-wide scoping is permission-gated. |
| `MOTHERDUCK_MCP_SHARE_DIVE_DATA` | Share dive data | Share the data for a dive with your organization. Creates org-scoped shares for owned databases used in the dive, and updates the dive so others in the organization can view it. |
| `MOTHERDUCK_MCP_UPDATE_DIVE` | Update dive | Update an existing dive's title, description, or content. Returns a URL the user can click to view the updated dive. At least one field must be provided. |
| `MOTHERDUCK_MCP_UPDATE_FLIGHT` | Update flight | Update a flight. Any subset of name, source_code, requirements_txt, schedule_cron, config, access_token_name, flight_secret_names, max_runtime_sec, or instance_type may be provided. Updates to source_code/requirements_txt/config/flight_secret_names/access_token_name/max_runtime_sec/instance_type create a new FlightVersion; name and schedule_cron are metadata-only. Pass schedule_cron as `""` (empty string) to remove the schedule; omit it to leave it unchanged. |
| `MOTHERDUCK_MCP_UPDATE_GUIDE` | Update guide | Append a new version to an existing guide, identified by `uuid`. Omit `content` to keep the current text and just change metadata such as references. A supplied `references` list replaces the existing one (pass [] to clear them, omit to carry them forward). For small in-place edits use `edit_guide_content`. Use `create_guide` to make a new guide, `update_guide_metadata` to retitle or re-topic. |
| `MOTHERDUCK_MCP_UPDATE_GUIDE_METADATA` | Update guide metadata | Change a guide's title, description, or topic without appending a content version. Identify it by `uuid`. Pass an empty `description` to clear it; pass an empty `topic` to remove the topic. |
| `MOTHERDUCK_MCP_VIEW_DIVE` | View dive | Open and render a MotherDuck Dive as a live MCP app with interactive charts. Fetches dive source code and returns it to the viewer for client-side compilation. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to MotherDuck MCP
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["motherduck_mcp"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["motherduck_mcp"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run MotherDuck MCP tools with your agent

Send a request, execute the MotherDuck MCP tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List the tables in my MotherDuck database and summarize the schema of the flights table"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List the tables in my MotherDuck database and summarize the schema of the flights table" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to MotherDuck MCP and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["motherduck_mcp"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["motherduck_mcp"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a MotherDuck MCP request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to MotherDuck MCP tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List the tables in my MotherDuck database and summarize the schema of the flights table")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List the tables in my MotherDuck database and summarize the schema of the flights table",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native MotherDuck MCP Integration

- Connects agents to MotherDuck's official hosted MCP server and direct API workflows
- Structured, LLM-friendly schemas for reliable database tool execution
- Supports schema discovery, SQL queries, writes, sharing, deletion, and scheduled Python jobs

### 2. Managed Auth

- Supports DCR OAuth flows for secure MotherDuck MCP access
- Central place to configure, scope, and revoke MotherDuck MCP credentials
- Per-user and per-environment credentials instead of hard-coded secrets

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Agents can discover MotherDuck schemas before writing queries or changing data
- Comprehensive execution logs show what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access MotherDuck MCP
- Scoped, least-privilege access to MotherDuck databases, Dives, Flights, and Guides
- Full audit trail of agent actions to support review and compliance

## Use MotherDuck MCP with any AI Agent Framework

Choose a framework you want to connect MotherDuck MCP with:

- [ChatGPT](https://composio.dev/toolkits/motherduck_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/motherduck_mcp/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/motherduck_mcp/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/motherduck_mcp/framework/atomic-agent)

## Related Toolkits

- [Firecrawl](https://composio.dev/toolkits/firecrawl) - Firecrawl automates large-scale web crawling and data extraction. It helps organizations efficiently gather, index, and analyze content from online sources.
- [Tavily](https://composio.dev/toolkits/tavily) - Tavily offers powerful search and data retrieval from documents, databases, and the web. It helps teams locate and filter information instantly, saving hours on research.
- [Exa](https://composio.dev/toolkits/exa) - Exa is a data extraction and search platform for gathering and analyzing information from websites, APIs, or databases. It helps teams quickly surface insights and automate data-driven workflows.
- [Serpapi](https://composio.dev/toolkits/serpapi) - SerpApi is a real-time API for structured search engine results. It lets you automate SERP data collection, parsing, and analysis for SEO and research.
- [Excel](https://composio.dev/toolkits/excel) - Microsoft Excel is a robust spreadsheet application for organizing, analyzing, and visualizing data. It's the go-to tool for calculations, reporting, and flexible data management.
- [Peopledatalabs](https://composio.dev/toolkits/peopledatalabs) - Peopledatalabs delivers B2B data enrichment and identity resolution APIs. Supercharge your apps with accurate, up-to-date business and contact data.
- [Snowflake](https://composio.dev/toolkits/snowflake) - Snowflake is a cloud data warehouse built for elastic scaling, secure data sharing, and fast SQL analytics across major clouds.
- [Posthog](https://composio.dev/toolkits/posthog) - PostHog is an open-source analytics platform for tracking user interactions and product metrics. It helps teams refine features, analyze funnels, and reduce churn with actionable insights.
- [21risk](https://composio.dev/toolkits/_21risk) - 21RISK is a web app built for easy checklist, audit, and compliance management. It streamlines risk processes so teams can focus on what matters.
- [Abstract](https://composio.dev/toolkits/abstract) - Abstract provides a suite of APIs for automating data validation and enrichment tasks. It helps developers streamline workflows and ensure data quality with minimal effort.
- [AccuWeather](https://composio.dev/toolkits/accu_weather) - AccuWeather is a global weather service providing current conditions, forecasts, MinuteCast precipitation, alerts, and lightning data. Use it for fast, localized forecasts and real-time weather alerts.
- [Adafruit IO](https://composio.dev/toolkits/adafruit_io) - Adafruit IO is Adafruit's cloud platform for connected device and IoT project data. It helps you store, visualize, and act on sensor feeds without running your own backend.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agentql](https://composio.dev/toolkits/agentql) - Agentql is a toolkit that connects AI agents to the web using a specialized query language. It enables structured web interaction and data extraction for smarter automations.
- [Agenty](https://composio.dev/toolkits/agenty) - Agenty is a web scraping and automation platform for extracting data and automating browser tasks—no coding needed. It streamlines data collection, monitoring, and repetitive online actions.
- [Ahrefs MCP](https://composio.dev/toolkits/ahrefs_mcp) - Ahrefs MCP is Ahrefs' hosted MCP server for SEO data and insights. Use it to access backlinks, organic metrics, keyword research, and competitor analysis.
- [Akta](https://composio.dev/toolkits/akta) - Akta is a company intelligence platform providing enrichment, news, and alternative business signals. It helps teams build targeted company lists and enrich data-driven workflows.
- [Ambee](https://composio.dev/toolkits/ambee) - Ambee is an environmental data platform providing real-time, hyperlocal APIs for air quality, weather, and pollen. Get precise environmental insights to power smarter decisions in your apps and workflows.
- [Ambient weather](https://composio.dev/toolkits/ambient_weather) - Ambient Weather is a platform for personal weather stations with a robust API for accessing local, real-time, and historical weather data. Get detailed environmental insights directly from your own sensors for smarter apps and automations.
- [Amplitude](https://composio.dev/toolkits/amplitude) - Amplitude is a digital analytics platform for product and behavioral data insights. It helps teams analyze user journeys and make data-driven decisions quickly.

## Frequently Asked Questions

### Do I need my own developer credentials to use MotherDuck MCP with Composio?

Yes, MotherDuck MCP requires you to configure your own Dcr OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
