airbyte-oss-mcp
The airbyte-oss-mcp server provides read-only monitoring and diagnostic tools for self-hosted Airbyte OSS instances, with optional write capabilities.
get_instance_status— Get a global health snapshot including workspace count, connection counts by status, and running/pending/failed job counts.list_connections— Browse and filter connections by name prefix or status, with automatic pagination beyond the default 100-item API page size.get_connection— Retrieve detailed metadata for a single connection (by name or UUID), including stream summaries and the three most recent sync jobs.list_jobs— List recent sync jobs (newest first), filterable by connection and status, with fields like jobId, status, duration, and bytes/rows synced.get_active_syncs— See all currently running sync jobs with connection names — useful for diagnosing worker pool bottlenecks.get_job— Fetch public metadata for a specific sync job by ID.get_job_details— Retrieve detailed job and attempt stats via the internal OSS API, including per-attempt statistics and failure summaries.get_job_failure_summary— Get a consolidated root-cause failure diagnosis for a failed sync job, including job/connection context and row/byte stats.find_duplicate_destination_tables— Detect multiple active connections writing to the same BigQuery project/dataset/table to identify potential data overwrite issues.Multi-environment support — All tools accept an optional
envparameter to query multiple named Airbyte instances configured viaAIRBYTE_ENVSandAIRBYTE_DEFAULT_ENV.Optional write tools —
cancel_jobandtrigger_syncare available whenAIRBYTE_READ_ONLY=false(disabled by default).
Provides tools for interacting with a self-hosted Airbyte OSS instance, including checking health, listing connections and jobs, retrieving job details and failure summaries, and optionally triggering syncs or canceling jobs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@airbyte-oss-mcpshow me the current health and active syncs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Airbyte OSS MCP
Read-only MCP server for self-hosted Airbyte OSS 1.6.x.
Wraps:
Public API —
/api/public/v1(connections, jobs, health)Internal API —
/api/v1/jobs/get_without_logs(attempt failure summaries)
Modeled after dagster-mcp (FastMCP + env-based config).
Install (Cursor + uvx)
Prerequisites: uv installed, network access to your Airbyte instance.
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"airbyte": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/NGRThomson/airbyte-oss-mcp.git@main",
"airbyte-mcp"
],
"env": {
"AIRBYTE_URL": "https://airbyte.example.com",
"AIRBYTE_READ_ONLY": "true"
}
}
}
}Replace AIRBYTE_URL with your instance URL. Default (if unset) is http://localhost:8000.
Pin a tag or commit for slower upgrades:
git+https://github.com/NGRThomson/airbyte-oss-mcp.git@v0.3.0See examples/cursor-mcp.json for a team install template.
Optional persistent install:
uv tool install --from 'git+https://github.com/NGRThomson/airbyte-oss-mcp.git@main' airbyte-mcpLocal dev
"args": ["--from", "/path/to/airbyte-oss-mcp", "airbyte-mcp"]Or:
cd airbyte-oss-mcp
uv sync --extra dev
uv run ruff check airbyte_mcp/
uv run pytest
uv run airbyte-mcpRelated MCP server: openobserve-community-mcp
Environment variables
Variable | Default | Purpose |
|
| Base URL of your Airbyte instance |
| (empty) | Bearer token if public API auth is enabled |
|
| When false, exposes |
| (empty) | JSON map of named envs for multi-instance setups |
| (empty) | Default key when |
Multi-env example:
"AIRBYTE_ENVS": "{\"prod\":{\"url\":\"https://airbyte.example.com\"},\"staging\":{\"url\":\"https://airbyte-staging.example.com\"}}",
"AIRBYTE_DEFAULT_ENV": "prod"Optional bearer token:
"AIRBYTE_API_TOKEN": "<token from Airbyte Settings → Applications>"Tools
Tool | Purpose |
| Health, connection counts, running/pending/failed job counts (bounded samples) |
| Browse/filter connections |
| One connection + recent jobs |
| Recent jobs (filter by connection/status) |
| Public job metadata |
| Attempt stats + failure summaries |
| Root-cause failure messages for a failed sync |
Write tools (cancel_job, trigger_sync) register only when AIRBYTE_READ_ONLY=false.
Smoke test
uv run python -c "
from airbyte_mcp.client import AirbyteClient
c = AirbyteClient('https://airbyte.example.com')
print(c.health())
print('running', len(c.list_jobs(status='running', limit=10)))
"Notes
Always pass
orderBy=updatedAt|DESCwhen listing jobs (default in client) — otherwise Airbyte returns oldest jobs first.Raw job logs are not exposed (public API has no log endpoint); failure summaries come from internal
get_without_logs.Internal OSS API:
get_job_detailsandget_job_failure_summaryuse/api/v1/jobs/get_without_logs, which is not part of the public API and may break on Airbyte upgrades.list_connections/list_jobspaginate automatically whenlimitexceeds the API page size (100).Runtime data: when pointed at a live instance, tool responses include connection names, job errors, and IDs from your Airbyte workspace — keep MCP read-only in shared Cursor configs if that metadata is sensitive.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NGRThomson/airbyte-oss-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server