agentbreeder

Connectors — Integration Compatibility Matrix

Supported connectors, their stability status, and configuration reference.

Connectors — Integration Compatibility Matrix

Connectors are pluggable adapters that discover external resources (models, tools, dashboards) and register them in the AgentBreeder shared registry. A connector runs scan() and writes the result to the registry — agents then reference discovered items by name in agent.yaml.


Compatibility Matrix

ConnectorStatusSourceWhat it discovers
litellm✅ Stableconnectors/litellm/Models from a LiteLLM proxy (/v1/models)
smtp✅ Stableconnectors/email/Email-send capability (surfaces as a tool)
mcp_scanner✅ Stableconnectors/mcp_scanner/MCP servers in .mcp.json + local ports
openrouter✅ Stableconnectors/openrouter/Hundreds of models from OpenRouter API
news✅ Stableconnectors/news/HackerNews, ArXiv, and generic RSS feeds
grafana🚧 Betaconnectors/grafana/Dashboards; pushes metrics via Loki/Tempo
datadog🚧 Betaconnectors/datadog/Monitors; pushes metrics + APM traces
browser_use📋 Plannedconnectors/browser_use/Browser automation via the browser-use library

Status key:

  • Stable — tested, production-ready, semver-stable API
  • 🚧 Beta — functional but API may change between minor versions
  • 📋 Planned — scaffolded, optional dep required, not yet promoted to stable

Stable Connectors

litellm — LiteLLM Gateway

Reads available models from a running LiteLLM proxy and registers them as model registry entries.

Environment variables:

VariableDefaultDescription
LITELLM_BASE_URLhttp://localhost:4000LiteLLM proxy base URL
LITELLM_API_KEY(none)API key for authenticated proxies

Usage:

from connectors.litellm.connector import LiteLLMConnector

connector = LiteLLMConnector(base_url="http://litellm:4000", api_key="sk-...")
if await connector.is_available():
    models = await connector.scan()
    # models → [{"name": "openai/gpt-4o", "provider": "openai", ...}, ...]

agent.yaml — reference a LiteLLM-discovered model:

model:
  primary: openai/gpt-4o       # model ID as returned by scan()
  gateway: litellm

smtp — Email Sender

Sends email via SMTP and registers the capability as a tool in the registry.

Environment variables:

VariableDefaultDescription
SMTP_HOST(required)SMTP server hostname
SMTP_PORT587SMTP port
SMTP_USER(none)Auth username
SMTP_PASSWORD(none)Auth password
SMTP_USE_TLStrueEnable STARTTLS

Usage:

from connectors.email.smtp import SMTPConnector

connector = SMTPConnector(host="smtp.gmail.com", port=587, user="...", password="...")
await connector.send_async(
    to=["alice@example.com"],
    subject="Agent alert",
    body="Your order-fulfillment agent completed run #42.",
)

mcp_scanner — MCP Auto-Discovery

Discovers MCP servers from .mcp.json files and by probing well-known local ports.

Probed locations (in order):

  1. $PWD/.mcp.json
  2. ~/.mcp.json
  3. Ports 3000–3005 on localhost (HTTP health probe)

Usage:

from connectors.mcp_scanner.scanner import MCPScanner

scanner = MCPScanner()
tools = await scanner.scan()
# tools → [{"name": "filesystem", "source": "mcp_scanner", ...}, ...]

Discovered tools are available immediately via agentbreeder scan:

agentbreeder scan --source mcp

openrouter — OpenRouter Models

Fetches the full model catalogue from OpenRouter and registers each model.

Environment variables:

VariableDefaultDescription
OPENROUTER_API_KEY(required for full list)OpenRouter API key
OPENROUTER_BASE_URLhttps://openrouter.ai/api/v1Base URL override

Usage:

from connectors.openrouter.connector import OpenRouterConnector

connector = OpenRouterConnector(api_key="sk-or-...")
models = await connector.scan()

news — News Feed Connectors

Three sub-connectors in connectors/news/:

Sub-connectorSourceImport
HackerNewsConnectorHN Algolia APIconnectors.news.hackernews
ArXivConnectorArXiv Atom feedconnectors.news.arxiv
RSSConnectorAny RSS/Atom feedconnectors.news.rss

Usage:

from connectors.news.hackernews import HackerNewsConnector

hn = HackerNewsConnector(limit=20, min_score=100)
stories = await hn.scan()
# stories → [{"name": "Show HN: ...", "url": "...", ...}, ...]

Beta Connectors

grafana — Grafana Observability

Pushes AgentBreeder agent metrics and traces to a Grafana stack (Loki for logs, Tempo for traces). Also scans existing Grafana dashboards into the registry.

Beta: The push_metrics() and push_traces() method signatures are still evolving and may change in a future minor release. Pin to a specific AgentBreeder version if using in production.

Constructor:

from connectors.grafana.connector import GrafanaConnector

connector = GrafanaConnector(
    endpoint="https://grafana.example.com",
    api_key="glsa_...",
    org_id="1",
)

datadog — Datadog APM

Pushes agent invocation metrics and distributed traces to Datadog APM. Scans existing Datadog monitors into the registry.

Beta: Trace payload format follows the Datadog v0.4 APM spec but may be updated to v0.5 in a future release.

Constructor:

from connectors.datadog.connector import DatadogConnector

connector = DatadogConnector(
    api_key="dd_api_...",
    app_key="dd_app_...",
    site="datadoghq.com",       # or "datadoghq.eu" for EU
)

Planned Connectors

browser_use — Browser Automation

Surfaces the browser-use library as a computer_use_20260401 tool type. When deploy.cloud is claude-managed, the tool type is forwarded directly to Anthropic Managed Agents — no container is built.

Install the optional dependency:

pip install browser-use

agent.yaml:

tools:
  - name: browser
    type: computer_use_20260401

browser_use is scaffolded and functional but not yet promoted to Stable. It requires pip install browser-use and reports graceful unavailability when the library is absent.


Writing a Custom Connector

All connectors implement connectors.base.BaseConnector:

from connectors.base import BaseConnector

class MyConnector(BaseConnector):
    @property
    def name(self) -> str:
        return "my-connector"

    async def is_available(self) -> bool:
        """Return True if the external service is reachable."""
        ...

    async def scan(self) -> list[dict]:
        """Return a list of discovered items.

        Each item must have at minimum:
          - name: str
          - description: str
          - source: str  (set to self.name)
        """
        ...

Place your connector in connectors/<your-name>/connector.py and register it with the scanner:

agentbreeder scan --source my-connector

On this page