Skip to content

vendor_connectors.registry

Vendor Connector Registry with Entry Points.

This module provides automatic discovery and registration of vendor connectors using Python’s entry points system. This allows:

  1. DRY interface via VendorConnectorBase ABC
  2. Automatic discovery of all connectors (even from other packages)
  3. Unified factory function for instantiation
  4. Same registry used by both MCP and CLI

Usage: from vendor_connectors.registry import get_connector, list_connectors

# List available connectors
available = list_connectors()
# {'jules': <class JulesConnector>, 'cursor': <class CursorConnector>, ...}
# Get a specific connector instance
connector = get_connector('jules', api_key='...')
# Use it
sources = connector.list_sources()

Entry Points (in pyproject.toml): [project.entry-points.”vendor_connectors.connectors”] jules = “vendor_connectors.google.jules:JulesConnector” cursor = “vendor_connectors.cursor:CursorConnector” github = “vendor_connectors.github:GitHubConnector”

_discover_connectorsDiscover all registered connectors via entry points.
_register_builtinsRegister built-in connectors that may not be in entry points yet.
list_connectorsList all available connectors.
get_connector_classGet a connector class by name.
get_connectorFactory to instantiate a connector by name.
clear_cacheClear the connector cache (useful for testing).
get_connector_infoGet metadata about a connector.
list_connector_infoGet metadata for all connectors.
_connector_cache

None

Discover all registered connectors via entry points.

Register built-in connectors that may not be in entry points yet.

List all available connectors.

Returns: Dict mapping connector name to connector class.

Get a connector class by name.

Args: name: Connector name (e.g., ‘jules’, ‘cursor’, ‘github’)

Returns: The connector class.

Raises: ValueError: If connector not found.

Factory to instantiate a connector by name.

Args: name: Connector name (e.g., ‘jules’, ‘cursor’, ‘github’) **kwargs: Arguments passed to connector constructor

Returns: Instantiated connector.

Raises: ValueError: If connector not found.

Example:

connector = get_connector(‘jules’, api_key=’…’) connector.list_sources()

Clear the connector cache (useful for testing).

Get metadata about a connector.

Returns: Dict with name, module, env_vars, description, etc.

Get metadata for all connectors.