Loading...
Loading...
Sets up and operates Airbyte Agent Connectors — strongly typed Python packages for accessing 51+ third-party SaaS APIs through a unified entity-action interface. Supported services include Salesforce, HubSpot, Stripe, GitHub, Slack, Jira, Shopify, Zendesk, Google Ads, Notion, Linear, Intercom, Gong, and 36 more connectors spanning CRM, billing, payments, e-commerce, marketing, analytics, project management, helpdesk, developer tools, HR, and communication platforms. Make sure to use this skill when the user wants to connect to any SaaS API, install an airbyte-agent connector package, integrate third-party service data into a Python application or AI agent, query or search records from any supported service, or configure Airbyte MCP tools for Claude. Covers Platform Mode (Airbyte Cloud) and OSS Mode (local Python SDK).
npx skill4agent add airbytehq/airbyte-agent-connectors airbyte-agent-connectorsTerminology: Platform Mode = Airbyte Cloud at app.airbyte.ai (managed credentials, UI visibility). OSS Mode = local Python SDK (self-managed credentials, no cloud dependency). Definition ID = UUID that identifies a connector type in the Airbyte API (used infields, notdefinition_idorconnector_type).connector_definition_id
Important: This skill provides documentation and setup guidance. When helping users set up connectors, follow the documented workflows below. Do NOT attempt to import Python modules, verify package installations, or run code to check configurations -- simply guide users through the steps using the code examples provided.
AIRBYTE_CLIENT_IDAIRBYTE_CLIENT_SECRETSee Agent Engine Platform docs and the hosted quickstart tutorial for full details.
Ask if unclear: "Are you using Airbyte Platform (app.airbyte.ai) or open source connectors?"
connector.execute(entity, action, params)| Connector | Package | Auth Type | Key Entities |
|---|---|---|---|
| Stripe | | Token | Customers, Invoices, Charges, Subscri... |
| HubSpot | | OAuth, Token | Contacts, Companies, Deals, Tickets, ... |
| GitHub | | OAuth, Token | Repositories, Org Repositories, Branc... |
| Salesforce | | OAuth | Sobjects, Accounts, Contacts, Leads, ... |
| Gong | | OAuth, Token | Users, Calls, Calls Extensive, Call A... |
Full table: See references/connector-index.md for all 51 connectors with auth types, key entities, and documentation status.
AIRBYTE_CLIENT_IDAIRBYTE_CLIENT_SECRETfrom airbyte_agent_stripe import StripeConnector
from airbyte_agent_stripe.models import StripeAuthConfig
connector = await StripeConnector.create_hosted(
external_user_id="user_123",
airbyte_client_id="...",
airbyte_client_secret="...",
auth_config=StripeAuthConfig(api_key="sk_live_...")
)connector = StripeConnector(
external_user_id="user_123",
airbyte_client_id="...",
airbyte_client_secret="...",
)
result = await connector.execute("customers", "list", {"limit": 10})# Using uv (recommended)
uv add airbyte-agent-github
# Or using pip in a virtual environment
python3 -m venv .venv && source .venv/bin/activate
pip install airbyte-agent-githubfrom airbyte_agent_github import GithubConnector
from airbyte_agent_github.models import GithubPersonalAccessTokenAuthConfig
connector = GithubConnector(
auth_config=GithubPersonalAccessTokenAuthConfig(token="ghp_your_token")
)
result = await connector.execute("issues", "list", {
"owner": "airbytehq",
"repo": "airbyte",
"states": ["OPEN"],
"per_page": 10
})claude mcp add airbyte-agent-mcp --scope projectresult = await connector.execute(entity, action, params)
# For list actions: returns an envelope with result.data (list) and result.meta (pagination dict)
# For get/create/update actions: returns a raw dict (use dict access like result['name'])
# Raises exceptions on failure (RuntimeError, TypeError, ValueError, etc.)Important: Error handling in agent tools. When registeringas a tool for an AI agent (PydanticAI, LangChain, etc.), always wrap the call in try/except and return the error message as a string. This prevents unhandled exceptions from crashing the agent and lets the LLM recover gracefully:execute()python@agent.tool_plain async def execute(entity: str, action: str, params: dict | None = None) -> str: try: return await connector.execute(entity, action, params or {}) except Exception as e: return f"Error: {type(e).__name__}: {e}"
andtool_utils: Theenable_hosted_mode_featuresdecorator auto-generates the tool's docstring from the connector schema, including available entities, actions, parameters, and usage guidelines. In Platform Mode (default), the docstring includes@Connector.tool_utilsactions that query the context store and guidance to prefer cached search over direct API calls. In OSS Mode, passsearchto exclude these — the context store is not available locally, so advertising search actions would cause errors:enable_hosted_mode_features=Falsepython# OSS Mode — excludes context store search actions from the tool docstring @Connector.tool_utils(enable_hosted_mode_features=False) # Platform Mode (default) — includes search actions and context store guidance @Connector.tool_utils
| Action | Description | |
|---|---|---|
| Get multiple records | |
| Get single record by ID | |
| Create new record | |
| Modify existing record | |
| Remove record | |
| Native API search syntax | |
# List
await connector.execute("customers", "list", {"limit": 10})
# Get
await connector.execute("customers", "get", {"id": "cus_xxx"})
# Search
await connector.execute("repositories", "api_search", {
"query": "language:python stars:>1000"
})async def fetch_all(connector, entity, params=None):
all_records = []
cursor = None
params = params or {}
while True:
if cursor:
params["after"] = cursor
result = await connector.execute(entity, "list", params)
all_records.extend(result.data)
if result.meta and hasattr(result.meta, 'pagination'):
cursor = getattr(result.meta.pagination, 'cursor', None)
if not cursor:
break
else:
break
return all_records# Stripe
from airbyte_agent_stripe.models import StripeAuthConfig
auth_config=StripeAuthConfig(api_key="sk_live_...")
# Gong
from airbyte_agent_gong.models import GongAccessKeyAuthenticationAuthConfig
auth_config=GongAccessKeyAuthenticationAuthConfig(
access_key="...", access_key_secret="..."
)
# HubSpot (Private App)
from airbyte_agent_hubspot.models import HubspotPrivateAppAuthConfig
auth_config=HubspotPrivateAppAuthConfig(private_app_token="pat-na1-...")
# HubSpot (OAuth)
from airbyte_agent_hubspot.models import HubspotOauth2AuthConfig
auth_config=HubspotOauth2AuthConfig(
client_id="...", client_secret="...", refresh_token="..."
)# GitHub
from airbyte_agent_github.models import GithubPersonalAccessTokenAuthConfig
auth_config=GithubPersonalAccessTokenAuthConfig(token="ghp_...")
# Slack
from airbyte_agent_slack.models import SlackAuthConfig
auth_config=SlackAuthConfig(token="xoxb-...")# Salesforce
from airbyte_agent_salesforce.models import SalesforceAuthConfig
auth_config=SalesforceAuthConfig(
client_id="...", client_secret="...", refresh_token="..."
)Per-connector auth details: Each connector reference in references/connectors/ includes the specific auth class name and fields.
.env.envfrom dotenv import load_dotenv; load_dotenv()| Topic | Reference |
|---|---|
| Getting Started | references/getting-started.md |
| Platform Setup | references/platform-setup.md |
| OSS Setup | references/oss-setup.md |
| Entity-Action API | references/entity-action-api.md |
| Authentication | references/authentication.md |
| Programmatic Setup | references/programmatic-setup.md |
| MCP Integration | references/mcp-integration.md |
| Troubleshooting | references/troubleshooting.md |
| Topic | Link |
|---|---|
| Agent Engine Platform | docs.airbyte.com/ai-agents/platform |
| Context Store | docs.airbyte.com/ai-agents/platform/context-store |
| Hosted Quickstart | docs.airbyte.com/ai-agents/tutorials/quickstarts/tutorial-hosted |
scripts/generate_skill_references.pypython scripts/generate_skill_references.py --all--connector <name>