One connection between your agent and the services you choose.
Connecta puts your MCP servers and HTTP APIs behind one endpoint that you run yourself. Connect your agent once; decide in code who can reach what.
flowchart LR
Agent["Your agent"] <-->|"One connection<br/>six small tools"| Connecta
subgraph Connecta["Your Connecta deployment"]
Sandbox["Sandbox<br/>runs the agent's short programs"]
Keys["Credentials<br/>stay on the server"]
end
Connecta <--> Work["Linear, GitHub, Notion"]
Connecta <--> Business["Stripe, RevenueCat, Mixpanel"]
Connecta <--> Yours["Any remote MCP server<br/>or HTTP API"]
style Connecta fill:#e0e7ff,stroke:#4338ca,color:#1e1b4b,stroke-width:2px
The agent doesn't load every service's tools into the conversation. It writes a short program that gathers, joins, and trims results inside Connecta, so only the answer comes back.
Maintained connections: Basecamp, Breeze ChMS, Church Community Builder, Cloudflare, GitHub, Gmail, Google Docs, Google Drive, Google Forms, Google Sheets, Google Slides, Infisical, Intercom, Linear, Mixpanel, Notion, Overflow, Planning Center, RevenueCat, Stripe, Tithe.ly, Vercel, and Wispr Flow. Plus any remote MCP server or HTTP API you describe.
| People | Agents | |
|---|---|---|
| What they are | You and your team | Bots, assistants, CI, scheduled jobs |
| How they prove it | Sign in: Clerk (Node) or Cloudflare Access (Workers) | One token Connecta issues to that agent |
| Their own logins | Yes, on personal connections | No. An agent uses accounts you assign it |
Maintainers are the people who run the deployment: they reach every tool and manage credentials and agent tokens. Everyone else reaches only the pools they are listed in.
A pool is a named set of tools plus a list of who may use it. Each pool has its own address, and every caller sees exactly that pool's tools.
flowchart LR
Maint["Maintainer<br/>(signs in)"] --> Main["/mcp<br/>every tool"]
Bob["Bob<br/>(signs in)"] --> Team["/mcp/team<br/>CRM + tickets"]
Bot["assistant agent<br/>(token)"] --> AgentPool["/agent/assistant<br/>CRM + tickets"]
style Main fill:#e0e7ff,stroke:#4338ca,color:#1e1b4b
style Team fill:#dcfce7,stroke:#15803d,color:#14532d
style AgentPool fill:#fef3c7,stroke:#b45309,color:#78350f
People use a pool at /mcp/<pool> and agents at /agent/<pool>. A caller
outside a pool gets the same "not found" as a pool that doesn't exist, and
someone in two pools uses two addresses: pools never merge.
An assistant that talks to several people keeps one token and one connection. Its harness, not the model, picks the pool each turn: a chat gets the most capable tier that everyone in it is cleared for, and a one-on-one gets that person's own pool.
flowchart LR
Guests["Chat with anyone unknown"] --> Base["/agent/assistant<br/>read-only basics"]
Group["Chat of team members"] --> TeamTier["/agent/assistant-team<br/>shared tools"]
Leads["Chat of leads only"] --> LeadsTier["/agent/assistant-leads<br/>shared tools + billing"]
Alice["One-on-one<br/>with Alice"] --> PA["/agent/assistant-alice<br/>her tier + her accounts"]
Base -.-> TeamTier -.-> LeadsTier
style Base fill:#e0e7ff,stroke:#4338ca,color:#1e1b4b
style TeamTier fill:#e0e7ff,stroke:#4338ca,color:#1e1b4b
style LeadsTier fill:#e0e7ff,stroke:#4338ca,color:#1e1b4b
style PA fill:#dcfce7,stroke:#15803d,color:#14532d
Each tier builds on the one below it. A person's own pool builds on the highest tier they are cleared for and holds only the agent, since anyone else in it would act as that person. A tier can double as a team's own pool for the people cleared for it. Organizing an agent's pools has the full layout.
- Shared (the default): the deployment's account, connected once by a maintainer.
- Personal: each person's own account. Agents never see these.
- Google Workspace: the signed-in person's account; for an agent, the owner of a person's pool, or one fixed shared account. Without an owner, mapping connections are absent for agents.
Every endpoint is writable or read-only, and you choose explicitly. A read-only endpoint hides write tools and refuses every write. You can also make one connection read-only across all endpoints. On a writable one, your agent's host decides what to approve.
Node or Docker (Clerk sign-in, SQLite) or Cloudflare Workers (Cloudflare Access, D1, deployed with Alchemy). Both serve the same agent tools. An optional operator UI shows a connection map, endpoints, connectors, and activity; integrations and access still change only in deployment code.
Give your agent the agent documentation and ask it to set up Connecta with the integrations you want, where to run it, and who should have access.
Upgrading? Point your agent at the upgrade guidance.
Built for its author's deployments first and published openly. Breaking changes are expected before 1.0. See the changelog and security policy.
Principles · Decision records · Planned work (a plan is not a shipped feature)