# Data warehouse MCP tools

> For AI agents: a documentation index is available at [/docs/llms.txt](/docs/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

The [Amplitude MCP server](https://amplitude.com/docs/amplitude-ai/amplitude-mcp) gives you tools for data warehouse and cloud storage connections. Connect from ChatGPT, Claude, Cursor, or another MCP client, then ask in plain language which sources and destinations exist and how recent import or export jobs went.

These tools mirror what you see in the Amplitude UI for warehouse imports (Snowflake, BigQuery, Databricks, and similar) and warehouse or cloud storage exports. Ask about the connection by name or type. Your client finds the right connection and pulls the job history.

## Available tools

| Tool | Description |
| --- | --- |
| `get_data_ingestion_sources` | List ingestion sources for a project, including SDKs, warehouse imports, and third party integrations, with status and recent volume. |
| `get_data_source_details` | Get configuration and metadata for one ingestion source. |
| `get_data_warehouse_destinations` | List export destinations for a project, including type, status, and last export timing. |
| `get_data_warehouse_jobs` | Get batch job history for one import source or export destination: status, timing, records processed, errors, and failure reason. |

> **Note:**
>
> Some sessions show these capabilities as `use_amplitude_data_connections` instead of the individual tools. Ask for the same outcome either way. Export destinations still come from `get_data_warehouse_destinations`.

## get\_data\_ingestion\_sources

Use `get_data_ingestion_sources` to see what sends data into a project. Start here for import questions: which warehouse imports exist, which SDKs are connected, and which source to dig into next.

### Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The project ID (appId) to list ingestion sources for. |

### Example prompts

> What data sources are configured for my project?

> List the warehouse imports sending data into this project.

> Which Snowflake or BigQuery sources does this project use?

## get\_data\_source\_details

Use `get_data_source_details` when you want the configuration for one ingestion source. Ask for the source by name or type after listing sources. This tool covers ingestion sources only. For export destinations, use `get_data_warehouse_destinations` and `get_data_warehouse_jobs`.

### Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The project ID (appId) the data source belongs to. |
| `dataSourceId` | string | Yes | The source id returned by `get_data_ingestion_sources`. Your client supplies this. |

### Example prompts

> Show me the configuration for my Snowflake import.

> What's the schedule and schema for my warehouse import?

> Get details for my S3 import.

## get\_data\_warehouse\_destinations

Use `get_data_warehouse_destinations` to see where a project exports data. After you pick a destination, ask to see its export jobs.

### Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The numeric project ID (appId) to list destinations for. |

### Response fields

| Field | Description |
| --- | --- |
| `id` | Connection id your client passes to `get_data_warehouse_jobs`. |
| `eventDestinationType` | Destination type, such as Snowflake, BigQuery, or S3. |
| `status` / `enabled` | Connection status and whether exports are on. |
| `latestSuccessfulJobStartTime` | Start time of the latest successful automatic job, including runs that exported 0 rows. |
| `latestFailedJobStartTime` | Start time of the latest failed automatic job. |
| `latestExportCompletionTime` | Completion time of the latest successful run that exported data. This can lag `latestSuccessfulJobStartTime` when recent successes exported 0 rows. |

> **Note:**
>
> `get_data_warehouse_jobs` skips successful automatic export jobs that exported 0 rows. A destination can show a recent `latestSuccessfulJobStartTime` while the jobs list has no matching SUCCESS row. Check `latestExportCompletionTime` and the jobs list together if you need to confirm data landed.

### Example prompts

> Where does this project export its data?

> List my Snowflake export destinations.

> What export destinations are configured, and when did each last succeed?

## get\_data\_warehouse\_jobs

Use `get_data_warehouse_jobs` to review batch jobs for one connection. Ask about a source or destination by name. Your client resolves the connection and returns the same job fields for imports and exports.

It covers:

- File drop imports from S3 or GCS
- Warehouse imports from Snowflake, BigQuery, Databricks, or GA4
- Scheduled exports
- Manual or backfill exports

It doesn't cover Salesforce V2 group property imports yet. Those responses include `supported: false` and a short note. Check those jobs in the Amplitude UI on the source's **Ingestion Jobs** tab.

### Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The numeric project ID (appId) the connection belongs to. |
| `connectionId` | string | Yes | Connection id from `get_data_ingestion_sources` (imports) or `get_data_warehouse_destinations` (exports). Your client supplies this from a listing. |
| `direction` | string | No | `import` or `export`. Only set this if the inferred direction is wrong. |
| `jobMode` | string | No | For exports only. Defaults to `automatic` for scheduled exports. Use `manual` for manual or backfill jobs. Ignored for imports. |
| `status` | string | No | Filter by `SUCCESS`, `FAILURE`, `IN_PROGRESS`, `WAITING`, `COMPLETED_WITH_ERRORS`, `CANCELLED`, or `ALL`. |
| `limit` | integer | No | Maximum jobs per page, from 1 to 100. Defaults to 25. |
| `cursor` | string | No | Pagination token from a previous response's `nextCursor`. Leave this out for the first page. |

### Response fields

| Field | Description |
| --- | --- |
| `id` | Job id. |
| `status` | Job status. |
| `startTime` / `endTime` | When the job started and finished. Manual exports may omit `startTime`. |
| `durationMs` | How long the job ran in milliseconds, or `null` if it's still running. |
| `recordCount` | Records ingested or exported when Amplitude reported a count. |
| `recordCountReported` | `true` if Amplitude reported a count, including zero. `false` if it didn't (`recordCount` is `null`). |
| `errorCount` | Number of row or file errors. |
| `failureReason` | Plain language reason when the job failed or finished with errors and the backend provides one. Otherwise `null`. |
| `errorLogUrl` | Link to the full error log when one exists. Otherwise `null`. |

How to read status:

- **FAILURE**: The whole job failed.
- **COMPLETED\_WITH\_ERRORS**: The job finished, but some rows or files had errors. A `SUCCESS` job can also have `errorCount > 0`.
- **SUCCESS** with `errorCount > 0`: The job finished, but it rejected some or all rows.

If you want jobs that had errors, filter by `COMPLETED_WITH_ERRORS` and check `errorCount`. Filtering by `FAILURE` alone misses successful jobs that still rejected rows.

### Example prompts

> Show me the recent import jobs for my S3 source.

> Did any of my Snowflake import jobs fail this week?

> How many records did the last BigQuery import bring in?

> Show me the export jobs for my Snowflake destination.

> Show me the manual backfill export jobs for that destination.

> Which import jobs completed with errors?

## Common workflows

### Find a failing import

List sources, then check jobs for the connection you care about:

> What warehouse import sources are configured for this project?

> Show me the recent jobs for my Snowflake import. Which ones failed or completed with errors?

### Check whether an export delivered data

List destinations, then check scheduled and manual export jobs:

> List my export destinations and when each last completed.

> Show the automatic export jobs for my Snowflake destination.

> Now show the manual backfill export jobs for the same destination.

### Check one source's configuration

If you already know which source you mean, ask for details directly:

> Get details for my Snowflake import in this project.

## Connect the MCP server

To use these tools, connect the Amplitude MCP server to your AI editor. Refer to [Amplitude MCP Server](https://amplitude.com/docs/amplitude-ai/amplitude-mcp) for setup instructions.
