Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 50 additions & 20 deletions airbyte/mcp/_cloud_ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,25 @@ def deploy_source_to_cloud(
*,
config: Annotated[
dict | str | None,
Field(description="The configuration for the source connector."),
] = None,
Field(
description="The configuration for the source connector.",
default=None,
),
],
config_secret_name: Annotated[
str | None,
Field(description="The name of the secret containing the configuration."),
] = None,
Field(
description="The name of the secret containing the configuration.",
default=None,
),
],
unique: Annotated[
bool,
Field(description="Whether to require a unique name."),
] = True,
Field(
description="Whether to require a unique name.",
default=True,
),
],
) -> str:
"""Deploy a source connector to Airbyte Cloud.

Expand Down Expand Up @@ -102,16 +111,25 @@ def deploy_destination_to_cloud(
*,
config: Annotated[
dict | str | None,
Field(description="The configuration for the destination connector."),
] = None,
Field(
description="The configuration for the destination connector.",
default=None,
),
],
config_secret_name: Annotated[
str | None,
Field(description="The name of the secret containing the configuration."),
] = None,
Field(
description="The name of the secret containing the configuration.",
default=None,
),
],
unique: Annotated[
bool,
Field(description="Whether to require a unique name."),
] = True,
Field(
description="Whether to require a unique name.",
default=True,
),
],
) -> str:
"""Deploy a destination connector to Airbyte Cloud.

Expand Down Expand Up @@ -173,8 +191,11 @@ def create_connection_on_cloud(
],
table_prefix: Annotated[
str | None,
Field(description="Optional table prefix to use when syncing to the destination."),
] = None,
Field(
description="Optional table prefix to use when syncing to the destination.",
default=None,
),
],
) -> str:
"""Create a connection between a deployed source and destination on Airbyte Cloud.

Expand Down Expand Up @@ -212,12 +233,18 @@ def run_cloud_sync(
*,
wait: Annotated[
bool,
Field(description="Whether to wait for the sync to complete."),
] = True,
Field(
description="Whether to wait for the sync to complete.",
default=True,
),
],
wait_timeout: Annotated[
int,
Field(description="Maximum time to wait for sync completion (seconds)."),
] = 300,
Field(
description="Maximum time to wait for sync completion (seconds).",
default=300,
),
],
) -> str:
"""Run a sync job on Airbyte Cloud.

Expand Down Expand Up @@ -311,8 +338,11 @@ def get_cloud_sync_status(
],
job_id: Annotated[
int | None,
Field(description="Optional job ID. If not provided, the latest job will be used."),
] = None,
Field(
description="Optional job ID. If not provided, the latest job will be used.",
default=None,
),
],
) -> JobStatusEnum | None:
"""Get the status of a sync job from the Airbyte Cloud.

Expand Down
51 changes: 30 additions & 21 deletions airbyte/mcp/_connector_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,44 @@
def list_connectors(
keyword_filter: Annotated[
str | None,
Field(description="Filter connectors by keyword."),
] = None,
Field(
description="Filter connectors by keyword.",
default=None,
),
],
connector_type_filter: Annotated[
Literal["source", "destination"] | None,
Field(description="Filter connectors by type ('source' or 'destination')."),
] = None,
Field(
description="Filter connectors by type ('source' or 'destination').",
default=None,
),
],
install_types: Annotated[
Literal["java", "python", "yaml", "docker"]
| list[Literal["java", "python", "yaml", "docker"]]
| None,
Field(
description="""
Filter connectors by install type.
These are not mutually exclusive:
- "python": Connectors that can be installed as Python packages.
- "yaml": Connectors that can be installed simply via YAML download.
These connectors are the fastest to install and run, as they do not require any
additional dependencies.
- "java": Connectors that can only be installed via Java. Since PyAirbyte does not
currently ship with a JVM, these connectors will be run via Docker instead.
In environments where Docker is not available, these connectors may not be
runnable.
- "docker": Connectors that can be installed via Docker. Note that all connectors
can be run in Docker, so this filter should generally return the same results as
not specifying a filter.
If no install types are specified, all connectors will be returned.
"""
description=(
"""
Filter connectors by install type.
These are not mutually exclusive:
- "python": Connectors that can be installed as Python packages.
- "yaml": Connectors that can be installed simply via YAML download.
These connectors are the fastest to install and run, as they do not require any
additional dependencies.
- "java": Connectors that can only be installed via Java. Since PyAirbyte does not
currently ship with a JVM, these connectors will be run via Docker instead.
In environments where Docker is not available, these connectors may not be
runnable.
- "docker": Connectors that can be installed via Docker. Note that all connectors
can be run in Docker, so this filter should generally return the same results as
not specifying a filter.
If no install types are specified, all connectors will be returned.
"""
),
default=None,
),
] = None,
],
) -> list[str]:
"""List available Airbyte connectors with optional filtering.
Expand Down
Loading
Loading