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 "Deploy 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: airflow-mcp-server
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.
Available Tools
9 toolsfind_duplicate_destination_tablesA
Detect multiple active connections writing the same BigQuery project.dataset.table.
Best-effort audit using connection stream config and destination settings. Skips non-BigQuery destinations and inactive connections.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the tool is a 'best-effort audit' and specifies what it skips (non-BigQuery, inactive). This gives honest behavioral expectations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding value. The main action is first sentence, limitations follow. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter and a likely simple output (duplicate destinations), the description covers the main functionality and its caveats. It is sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not mention the single parameter 'env' or its purpose. The description adds no value over the schema for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Detect' and clearly identifies the resource: 'multiple active connections writing the same BigQuery project.dataset.table'. This distinguishes it from sibling tools like list_connections and get_active_syncs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool's scope ('Best-effort audit using connection stream config and destination settings') and its limitations ('Skips non-BigQuery destinations and inactive connections'). It does not explicitly state when not to use or name alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_syncsB
List all currently running sync jobs with connection names.
Best tool to answer 'what is blocking the Airbyte worker pool?' or 'why is this sync taking so long?'
| Name | Required | Description | Default |
|---|---|---|---|
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states that the tool lists running syncs, without mentioning scope (e.g., per user or environment), side effects, permissions needed, or the meaning of the 'env' parameter. This lack of transparency limits agent understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief (three sentences) and front-loaded with the main purpose. However, it sacrifices important parameter information. It is concise but incomplete, earning a middle score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter and an output schema, the description should explain the 'env' parameter and the return value structure. It does neither, leaving the description incomplete for effective tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains one parameter, 'env', with no description in the schema (0% coverage) and no mention in the tool description. The description adds no meaning beyond the schema, leaving the agent uncertain about the parameter's purpose and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's function: 'List all currently running sync jobs with connection names.' This is a specific verb and resource, and it distinguishes from sibling tools like list_jobs and get_job that have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating it is the 'Best tool to answer' specific questions about worker pool blocking or slow syncs. This implies when to use it but does not explicitly exclude alternative tools or mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connectionA
Get one connection by exact name or connectionId UUID.
Returns connection metadata with stream summaries (name, namespace, prefix, syncMode) and the three most recent sync jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| connection | Yes | ||
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns metadata with stream summaries and recent sync jobs, but does not cover error behavior (e.g., if connection not found), authorization requirements, or rate limits. Since no annotations are provided, the description carries full burden but offers only basic behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no redundancy. The first sentence states the purpose and lookup method, the second describes the output. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently explains the tool's behavior for a simple get-by-ID operation. It identifies the lookup parameter and output shape. Although error handling and env parameter are missing, the presence of an output schema reduces the burden. Minor gap in not explaining the env parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'connection' parameter by stating it can be an exact name or UUID, but does not explain the optional 'env' parameter. With 0% schema description coverage, the description partially compensates but leaves one parameter unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'one connection', and the lookup criteria 'by exact name or connectionId UUID'. It also specifies the return value includes stream summaries and recent sync jobs, distinguishing it from siblings like list_connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (to get a specific connection by name or UUID). It does not provide explicit when-not-to-use or alternatives, but the context of sibling tools is clear enough for an agent to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instance_statusA
Global Airbyte health snapshot. Start here for monitoring workflows.
Returns health text, workspace count, connection counts by status, and counts of running / pending / failed sync jobs (recent sample).
| Name | Required | Description | Default |
|---|---|---|---|
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that job counts are from a 'recent sample,' which is a useful behavioral detail. However, it does not disclose whether the operation is read-only, requires special permissions, or has any side effects. The description adds some value but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the most important info ('Global Airbyte health snapshot. Start here for monitoring workflows.'). Every word earns its place; no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown), the description appropriately summarizes return values without repeating schema details. However, it omits any explanation of the 'env' parameter and does not clarify 'recent sample' bounds. Adequate but missing some context for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'env' with 0% description coverage, and the description does not mention this parameter at all. It adds no meaning beyond the schema, failing to compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a 'Global Airbyte health snapshot' and lists specific return data (health text, workspace count, connection counts, job counts). It positions itself as the starting point for monitoring, distinguishing it from more specific sibling tools like get_connection or get_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Start here for monitoring workflows' explicitly guides when to use this tool—as a first check for overall health. It does not list exclusions, but the context from sibling tools implies alternatives for detailed views. A clear context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobC
Get public job metadata for a sync job id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility. It indicates a read operation ('Get') but does not disclose any behavioral traits such as idempotency, authentication needs, rate limits, or side effects. The minimal phrasing provides only a hint of safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. It is front-loaded and efficient, though it sacrifices detail that could be included without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and two parameters (one undocumented), the description is insufficient. It does not explain what 'public job metadata' entails, nor does it cover the optional 'env' parameter. The output schema might compensate, but the description does not reference it or prepare the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It indirectly explains 'job_id' by stating 'for a sync job id', but it entirely omits the 'env' parameter, leaving its purpose unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'public job metadata' for a 'sync job id', using a specific verb and resource. However, it does not explicitly distinguish this from the sibling tool 'get_job_details', though the word 'public' suggests a subset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_job_details' or 'list_jobs'. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_detailsA
Get job plus attempt stats via the internal OSS jobs API.
Includes per-attempt totalStats and failure summaries (without raw logs).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the tool is read-only ('get') and mentions the internal API endpoint, but does not discuss side effects, permissions, rate limits, or other behavioral traits. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with purpose, followed by specific detail on includes/excludes. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (so return values are covered), the description covers the tool's purpose and main output. However, it omits the env parameter and does not mention any prerequisites or limitations beyond raw logs. Moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It implicitly references job_id via 'job', but completely fails to describe the 'env' parameter, leaving its purpose and valid values unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets job plus attempt stats, including per-attempt totalStats and failure summaries. It differentiates from siblings like get_job and get_job_failure_summary by specifying the inclusion of attempt statistics and exclusion of raw logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool by stating what it includes (attempt stats and failure summaries) and excludes (raw logs). However, it does not explicitly name alternative tools or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_failure_summaryA
Consolidated failure diagnosis for a sync job (prefer over raw logs).
Returns root-cause failure messages from the latest failed attempt, plus job/connection context and row/byte stats when available.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains the tool returns root-cause failure messages from the latest failed attempt plus context and stats, but does not mention idempotence, permissions, or behavior when no failure exists. It is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, with the primary purpose front-loaded. Every sentence adds value, and there is no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and no annotations, the description covers the essential purpose and output, but lacks parameter details and behavioral context like when to call this vs. raw logs. It is minimally complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no information about the parameters (job_id and env). While parameter names are somewhat self-explanatory, the description fails to elaborate on their meaning or usage, leaving a gap for the AI agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it returns consolidated failure diagnosis for a sync job. It specifies the verb 'returns' and the resource 'failure summary', and distinguishes itself from raw logs and sibling tools like get_job or get_job_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises 'prefer over raw logs', giving clear context for when to use this tool. It does not explicitly state when not to use it or mention alternatives, but the preference guidance is strong enough for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionsA
List Airbyte connections with schedule and status metadata.
Filters:
name_prefix: case-insensitive substring on connection name
status: exact status filter (e.g. 'active')
limit: max results (paginates beyond the 100-item API page size when needed)
offset: skip first N connections from the API ordering
| Name | Required | Description | Default |
|---|---|---|---|
| name_prefix | No | ||
| status | No | ||
| limit | No | ||
| offset | No | ||
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden. It discloses pagination behavior and case-insensitive filtering, but omits authentication, rate limits, or output shape details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one sentence for purpose and a bullet list for filters. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key functions but does not explain the ordering or provide context for the 'env' parameter. With an output schema, missing return details are acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains 4 of 5 parameters (name_prefix, status, limit, offset) with concrete details, but misses 'env' entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'List Airbyte connections with schedule and status metadata,' clearly specifying the verb and resource. It distinguishes from siblings like 'get_connection' (single) and 'list_jobs' (jobs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides filters but no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsA
List recent sync jobs, newest first.
Returns jobId, status, startTime, duration, bytesSynced, rowsSynced, connectionId, and connectionName.
Filters:
connection: connection name, UUID, or substring (must match exactly one)
status: pending, running, incomplete, failed, succeeded, cancelled
limit: max results (paginates beyond the 100-item API page size when needed)
offset: skip first N jobs from the API ordering
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| status | No | ||
| limit | No | ||
| offset | No | ||
| env | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses pagination behavior (limit, offset, and that it handles beyond 100-item pages) and the ordering. It does not explicitly state read-only nature or permissions, but the listing operation implies no side effects. The description is fairly transparent but could mention idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (approximately 6 sentences) and well-structured with a header line followed by a list of fields and then a bulleted filter list. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context signals show it exists), the description's list of returned fields is helpful but not strictly required. It covers filters and pagination thoroughly. The missing 'env' parameter is a gap. Overall, it provides sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains connection, status, limit, and offset in detail, including format and constraints. However, it omits the 'env' parameter entirely. The explanation of connection's matching rule (exactly one) is valuable. Overall adds meaning but incomplete due to missing parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists recent sync jobs in newest-first order. It specifies the verb (list) and resource (sync jobs), and distinguishes from sibling tools like get_job (single job) and get_job_details (full details) by focusing on listing multiple jobs with key fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use it (to list recent jobs) but does not explicitly contrast with alternatives like get_active_syncs or provide when-not-to-use guidance. The filtering options are described but no tactical advice on which tool to use for specific needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.2.0- First observed
find_duplicate_destination_tables - First observed
get_active_syncs - First observed
get_connection - First observed
get_instance_status - First observed
get_job - First observed
get_job_details - First observed
get_job_failure_summary - First observed
list_connections - First observed
list_jobs
TDQS
Scored across 9 tools
Tools are mostly distinct, but there is overlap among get_job, get_job_details, and get_job_failure_summary, which could confuse an agent about which to use. Additionally, get_active_syncs overlaps with list_jobs filtered by status. Descriptions help but ambiguity remains.
Most tools follow a 'get_' or 'list_' pattern, but get_active_syncs uses 'get' for a list operation and find_duplicate_destination_tables uses 'find_', which is a minor deviation from the prevailing pattern.
With 9 tools, the server is well-scoped for its intended purpose of monitoring and auditing Airbyte instances. Each tool has a clear role and no unnecessary redundancy.
The tool set is heavily biased towards read and monitoring operations, missing essential CRUD capabilities like creating or updating connections and triggering syncs. This leaves significant gaps for a full Airbyte management server.
Maintenance
Related MCP Connectors
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
- mcpOAuthcom.airtable
Official Airtable MCP server — database and operations layer for agents.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- AlicenseBqualityCmaintenanceA read-only MCP server for OpenObserve Community Edition that works over the REST API. Provides tools for searching logs, traces, stream schemas, and dashboards - no Enterprise license required.8196 PyPI16GPL 3.0
- AlicenseAqualityBmaintenanceAirflow MCP server — read DAGs, runs, task instances, log tails; trigger and clear (write-gated).863 npm2MIT
- AlicenseAqualityBmaintenanceRead-only MCP server for safe Kubernetes inspection, diagnosis, and debugging. Supports Kubernetes core, Helm, Argo Workflows, and Argo CD.2191 npm5MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server for Hevo Data API, enabling monitoring of pipelines, objects, destinations, models, and workflows with secure self-hosted credentials.-