airbyte-mcp
Enables interaction with an Airbyte instance through natural language, supporting workspaces, sources, destinations, connections, jobs, logs, tags, streams, and connector definitions.
README
Airbyte MCP Server (airbyte-mcp)
MCP server for the Airbyte Public API. Built with the official MCP Python SDK (FastMCP).
Lets any MCP-compatible client (Cursor, Claude Desktop, Claude Code, MCP Inspector, etc.) interact with your Airbyte instance through natural language.
Features
- 30 tools covering workspaces, sources, destinations, connections, jobs, job logs, tags, streams, and connector definitions
- Read and write operations for core resources (create, update, delete)
- Job diagnostics via the internal Configuration API (self-managed): detailed failure reasons, per-stream stats, and structured logs
- Automatic token exchange with in-memory caching and transparent 401 retry
- Markdown and JSON response formats on summary tools; JSON-only for log tools
- Pagination support (limit/offset) on all list tools
- Two transport modes: stdio (local) and streamable HTTP (remote)
- Works with self-managed Airbyte (abctl) and Airbyte Cloud
Available Tools
| Tool | Description |
|---|---|
| Health | |
airbyte_health_check |
Ping the Airbyte API |
| Workspaces | |
airbyte_list_workspaces |
List workspaces with pagination |
airbyte_get_workspace |
Get workspace details by ID |
| Sources | |
airbyte_list_sources |
List source connectors (filter by workspace) |
airbyte_get_source |
Get source details by ID |
airbyte_create_source |
Create a new source connector |
airbyte_update_source |
Update an existing source |
| Destinations | |
airbyte_list_destinations |
List destination connectors (filter by workspace) |
airbyte_get_destination |
Get destination details by ID |
airbyte_create_destination |
Create a new destination connector |
airbyte_update_destination |
Update an existing destination |
| Connections | |
airbyte_list_connections |
List connections / pipelines (filter by workspace) |
airbyte_get_connection |
Get connection details including stream config |
airbyte_create_connection |
Create a new connection (pipeline) |
airbyte_update_connection |
Update an existing connection |
| Jobs | |
airbyte_list_jobs |
List jobs (filter by connection, type, status, dates) |
airbyte_get_job |
Get job details (status, duration, bytes/rows synced) |
airbyte_trigger_sync |
Trigger a sync or reset job |
airbyte_cancel_job |
Cancel a running job |
| Job Logs (Internal API) | |
airbyte_get_job_details |
Per-attempt stats, failure reasons, and stacktraces |
airbyte_get_job_logs |
Structured log entries for all attempts |
airbyte_get_attempt_logs |
Structured log entries for a specific attempt |
| Streams | |
airbyte_get_stream_properties |
Get stream properties for a source/destination pair |
| Tags | |
airbyte_list_tags |
List tags |
airbyte_create_tag |
Create a tag |
airbyte_update_tag |
Update a tag |
airbyte_delete_tag |
Delete a tag |
| Connector Definitions | |
airbyte_list_source_definitions |
List source connector definitions |
airbyte_get_source_definition |
Get a source connector definition |
airbyte_list_destination_definitions |
List destination connector definitions |
airbyte_get_destination_definition |
Get a destination connector definition |
See docs/endpoints.md for the full Airbyte API endpoint checklist.
Prerequisites
- A running Airbyte instance — either:
- Self-managed via abctl (see docs/local-setup.md)
- Airbyte Cloud
- One of the following to run the server:
Quickstart
1. Clone and install
git clone https://github.com/trustxai/airbyte-mcp.git
cd airbyte-mcp
uv sync
2. Configure credentials
cp .env.example .env
For self-managed (abctl), retrieve credentials:
abctl local credentials
Edit .env with your client-id and client-secret. See docs/authentication.md for details.
3. Run the server
stdio (Cursor / Claude Desktop / Docker)
uv run airbyte-mcp
Streamable HTTP (remote / MCP Inspector)
uv run airbyte-mcp-http
# Listening on http://127.0.0.1:8080/mcp
Client Configuration
Every MCP client (Cursor, Claude Desktop, etc.) can run the server in one of two ways:
- uv — quickest to set up, but requires uv installed locally.
- Docker — no Python / uv required on the host; everything runs in a container. Build the image once and every client config reuses it.
Host networking note: if Airbyte is running on your host machine (e.g. via
abctl), inside the Docker containerlocalhostdoes not point to your host. Usehttp://host.docker.internal:8000/api/public/v1on macOS/Windows, or add--network=hostto thedocker runargs on Linux.
Build the Docker image (one-time)
docker build -t airbyte-mcp:latest .
Cursor
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
Option A — uv
{
"mcpServers": {
"airbyte": {
"command": "uv",
"args": ["--directory", "/path/to/airbyte-mcp", "run", "airbyte-mcp"],
"env": {
"AIRBYTE_API_URL": "http://localhost:8000/api/public/v1",
"AIRBYTE_CLIENT_ID": "<your-client-id>",
"AIRBYTE_CLIENT_SECRET": "<your-client-secret>"
}
}
}
}
Option B — Docker
{
"mcpServers": {
"airbyte": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--name", "airbyte-mcp",
"-e", "AIRBYTE_API_URL",
"-e", "AIRBYTE_CLIENT_ID",
"-e", "AIRBYTE_CLIENT_SECRET",
"airbyte-mcp:latest"
],
"env": {
"AIRBYTE_API_URL": "http://host.docker.internal:8000/api/public/v1",
"AIRBYTE_CLIENT_ID": "<your-client-id>",
"AIRBYTE_CLIENT_SECRET": "<your-client-secret>"
}
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
Option A — uv
{
"mcpServers": {
"airbyte": {
"command": "uv",
"args": ["--directory", "/path/to/airbyte-mcp", "run", "airbyte-mcp"],
"env": {
"AIRBYTE_API_URL": "http://localhost:8000/api/public/v1",
"AIRBYTE_CLIENT_ID": "<your-client-id>",
"AIRBYTE_CLIENT_SECRET": "<your-client-secret>"
}
}
}
}
Option B — Docker
{
"mcpServers": {
"airbyte": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--name", "airbyte-mcp",
"-e", "AIRBYTE_API_URL",
"-e", "AIRBYTE_CLIENT_ID",
"-e", "AIRBYTE_CLIENT_SECRET",
"airbyte-mcp:latest"
],
"env": {
"AIRBYTE_API_URL": "http://host.docker.internal:8000/api/public/v1",
"AIRBYTE_CLIENT_ID": "<your-client-id>",
"AIRBYTE_CLIENT_SECRET": "<your-client-secret>"
}
}
}
}
Claude Code (HTTP)
Option A — uv
uv run airbyte-mcp-http &
claude mcp add --transport http airbyte http://127.0.0.1:8080/mcp
Option B — Docker
docker build -f Dockerfile.http -t airbyte-mcp-http:latest .
docker run -d --rm --name airbyte-mcp-http \
-p 8080:8080 \
-e AIRBYTE_API_URL=http://host.docker.internal:8000/api/public/v1 \
-e AIRBYTE_CLIENT_ID=<your-client-id> \
-e AIRBYTE_CLIENT_SECRET=<your-client-secret> \
airbyte-mcp-http:latest
claude mcp add --transport http airbyte http://127.0.0.1:8080/mcp
MCP Inspector
# Start the server in HTTP mode (uv or docker — either works)
uv run airbyte-mcp-http
# or: docker run --rm -p 8080:8080 --env-file .env airbyte-mcp-http:latest
# In another terminal
npx @modelcontextprotocol/inspector
# Then connect to http://127.0.0.1:8080/mcp in the inspector UI
Running Manually (without a client)
If you just want to exercise the server from the CLI:
# stdio (uv)
uv run airbyte-mcp
# stdio (Docker)
docker run --rm -i --env-file .env airbyte-mcp:latest
# HTTP (uv)
uv run airbyte-mcp-http
# HTTP (Docker)
docker run --rm -p 8080:8080 --env-file .env airbyte-mcp-http:latest
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
AIRBYTE_API_URL |
No | http://localhost:8000/api/public/v1 |
Airbyte API base URL |
AIRBYTE_CLIENT_ID |
Yes* | — | Application client ID |
AIRBYTE_CLIENT_SECRET |
Yes* | — | Application client secret |
AIRBYTE_ACCESS_TOKEN |
No | — | Pre-fetched token (skips exchange) |
HTTP_HOST |
No | 127.0.0.1 |
HTTP transport bind address |
HTTP_PORT |
No | 8080 |
HTTP transport port |
*Not required if AIRBYTE_ACCESS_TOKEN is provided.
Documentation
- Authentication — token exchange, credentials setup
- Architecture — system design, package layout, token lifecycle
- Endpoints Checklist — full Airbyte API coverage status
- Local Setup — abctl installation walkthrough
- Contributing — development workflow, PR guidelines
- Security — vulnerability reporting
- Changelog — release history
Contributing
Contributions are welcome! See docs/CONTRIBUTING.md to get started.
License
Apache-2.0 — see LICENSE for details.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。