Skip to content

Connections

What this is for. Connections (/connections) is the named inventory of external systems (Odoo, GitHub, MCP, …) that agents may use after you approve them. It is not Channels (messaging accounts such as Telegram) and not the Secrets vault (where credentials are stored). Put the system here; put the password or token in Secrets; put the chat bot under Channels.

Route: /connections.
Subtitle: External systems EYAS can use — inventory, health, and agent proposals.

Connections are a named inventory of external systems (Odoo, GitHub, MCP, …). Credentials go into the Secrets vault; agents can propose a connection for human approval instead of scattering config across MCP, skills, and ad-hoc secrets.


TabPurpose
ConnectionsActive inventory (connected / error / disabled / unknown)
CatalogKnown system types — pick one to create an instance
PendingAgent-proposed connections waiting for Approve / Reject

Control / fieldMeaning
N connectionsCount of inventory rows
Add connectionOpen create form (or start from Catalog → Use)
NameHuman label for this instance
SystemCatalog type (Odoo, GitHub, …)
StatusPending / Disabled / Connected / Error / Unknown
AdapterHow EYAS talks to it: native, http, or mcp
Last checkTimestamp of last health test
ErrorLast test/error message
SourceUser / Agent / System — who created it
TestRun health adapter (e.g. auth probe)
EditUpdate name, config, secrets
DeleteRemove connection (vault secrets pattern remains documented in Secrets)

Empty: No connections yet. Add one from the catalog or approve an agent proposal.


FieldMeaning
NameDisplay name for this instance
System typeCatalog entry (fixed after create for most flows)
ConfigurationNon-secret fields (URL, db, org, …) per system type
SecretsSensitive fields — stored in the vault as conn-{id}-{field}; never shown again after save
Available to all agentsDefault scope when shown
Save / CancelPersist or discard

Linked shortcuts: MCP Settings, Secrets (when relevant).


TypeAdapterTypical use
OdoonativeERP / Helpdesk JSON-RPC + ticket tools
GitHubhttpRepos, issues, PRs, releases
GitLabhttpProjects, issues, MRs
LinearhttpIssues / projects API
NotionhttpPages and databases
JirahttpAtlassian Cloud issues
Slack (API)httpWorkspace bot tools (chat channel is separate under Communication)
MCP servermcpLink inventory row to an MCP server already configured under MCP
Playwright MCPmcpOptional Microsoft @playwright/mcp (Apache-2.0, npx). Accessibility snapshot + element refs; optional Playwright MCP Bridge extension for a live tab. Agent tools arrive through the MCP bridge as mcp_playwright_*. Test runs a fail-closed doctor (Node 18+, npx). Telemetry off. --no-sandbox is forbidden. Not the Python browser-use MCP.
Agent BrowsermcpOptional Vercel agent-browser (Apache-2.0 CLI+MCP). @e1 refs, state save/load, domain allowlist. Install the CLI, then Catalog → Agent Browser (mcp --tools core,state). Test is fail-closed (EYAS_AGENT_BROWSER_BIN / PATH). Never chat, never the daily Chrome profile. Tools: mcp_agent_browser_*.
Chrome DevTools MCPmcpOptional Google chrome-devtools-mcp (Apache-2.0 npx). Coding/debug: console, network, Lighthouse, WebMCP. Not form-filling. Catalog → Chrome DevTools MCP (--isolated). Test is fail-closed (Node 18+, npx). Telemetry off. --autoConnect and the daily Chrome profile are refused. Tools: mcp_chrome-devtools_*. WebMCP tools only if the sidecar lists them.
Custom HTTPhttpGeneric REST with bearer/API-key

Catalog intro: Known system types. Pick one to create a connection instance.

Install from Settings → MCP Servers → Catalog → Playwright MCP, then add a Connections row of this type (mcpServerName defaults to playwright) so Test can doctor it.

  • Tools appear on the agent as mcp_playwright_* after the MCP server connects. EYAS does not vendor the package.
  • Live tab: Playwright MCP Bridge extension, then --extension instead of --isolated. Never the daily Chrome/Edge profile.
  • Doctor is fail-closed, like Hyperframes CLI: missing Node 18+ or npx → Test fails with a remedy. Telemetry is off (DO_NOT_TRACK=1).
  • Never --no-sandbox / PLAYWRIGHT_MCP_NO_SANDBOX. Never the Python browser-use MCP (uvx browser-use --mcp) — it asks for an LLM API key and exposes retry_with_browser_use_agent.

Install the published CLI (npm i -g agent-browser then agent-browser install, or set EYAS_AGENT_BROWSER_BIN), then Settings → MCP Servers → Catalog → Agent Browser. Add a Connections row of this type (mcpServerName defaults to agent-browser) so Test can doctor it.

  • Tools appear as mcp_agent_browser_*. --tools all / debug are rewritten to core,state (those profiles include chat).
  • Profile is EYAS-owned (data/browser/agent-browser/profile). Never --profile Default or the daily Chrome/Edge profile (Chrome 136+).
  • Doctor is fail-closed: missing binary, timeout, or ok: false → Test fails with a remedy. Telemetry off. AI Gateway keys stripped.
  • Never the npm mcp-agent-browser wrapper. Never agent-browser chat.

Chrome DevTools MCP (optional, coding / debug)

Section titled “Chrome DevTools MCP (optional, coding / debug)”

Install from Settings → MCP Servers → Catalog → Chrome DevTools MCP, then add a Connections row of this type (mcpServerName defaults to chrome-devtools) so Test can doctor it.

  • Tools appear as mcp_chrome-devtools_*. This is not the form-filling lane — use native browser_* for that.
  • Catalog args: --isolated, --no-usage-statistics, --no-performance-crux, --categoryExperimentalWebmcp=true.
  • WebMCP (list_webmcp_tools / execute_webmcp_tool) only if the sidecar advertises them (Chrome 150+ with --enable-features=WebMCP). Missing tools are not invented.
  • Doctor is fail-closed: missing Node 18+ or npx → Test fails with a remedy. --autoConnect and --no-sandbox fail Test.
  • Never the daily Chrome/Edge profile as --user-data-dir.

See Browser Use for the headless browser_* lane, CLI sidecars, and this coding/debug MCP.


Agents can call tools to propose a connection. You review reason + config on the Pending tab:

ControlMeaning
ReasonWhy the agent wants this connection
ApproveCreate/activate the connection
RejectDismiss the proposal

Empty pending: No pending proposals.


When the connections module is loaded, agents may use:

ToolPurpose
connections_listList inventory
connections_catalogList catalog types
connections_testHealth-check a connection
connections_proposePropose a new connection for approval