Shared provider API profiles
Shared SDK availability
SDK 0.1.12 preserves 114 official connectors. Server/CLI beta51 adopts it; each receiving installation must explicitly update. App22 is public and its dated GUI proof remains App22/server45. The actual Linux x64 marketplace trial verified all 114 official cards, 45 shared SVGs and a blank Postman private-token setup form with visible instructions/link, then cancelled without token entry. The 90 API profiles have two reads each; the complete catalog has 397 operations. This GUI trial made no provider calls and does not attest all provider accounts. Use release status for each qualification boundary.
OpenAgent implements provider integrations once in the shared connector SDK. Each admitted profile contains concrete operations, authentication, closed input schemas and response handling. A provider name or directory listing alone never makes a connector available.
Connect an account
- Choose the receiving server and user, then open Connectors → Browse. Provider cards and registry MCPs use the same grid and search.
- Select a provider. Read its supported operations and API setup instructions. API entitlement and provider plan requirements still apply.
- For a token profile, obtain an authorized API token from the provider's documented account settings. Enter the raw token in the server's secure setup field, without its HTTP header or prefix. If the profile explicitly requires an encoded Basic credential, follow its displayed instructions. Never enter a provider password in an API-token field or put a secret in chat.
- Connect and perform a permitted read to verify the credential. Saving a connection alone does not prove provider access.
- Connect another account separately when needed. Disable or disconnect each local connection through its own controls.
A personal API token or manually supplied OAuth access token is distinct from the common OAuth app. These profiles do not register an app, request a consent grant or automatically renew an access token. Replace an expired credential through a new authorized connection. Providers with an enabled common app use the browser OAuth flow instead; own-app configuration remains available for supported OAuth implementations.
Each product stores its credentials locally, encrypted at rest, and makes the normal API requests. The model receives tool schemas and permitted results; it cannot choose credential headers or read stored secrets. The compiled SDK selects the exact header, scheme, endpoint and any fixed API-version headers.
Supported operations and composition
The first API-profile batch supplies a small, explicit read-only subset for each service. Its tool list is the contract: it does not imply every feature of the provider or parity with its ChatGPT app. Local Allow changes is absent for a read-only profile. Later mutations need a typed operation, scope review, host authorization, appropriate retry policy and dedicated tests.
Each connection is an independent source in Core's public capability APIs. Applications can compose several accounts, providers and filesystems through these sources. The host owns durable application state, projections, sync checkpoints, views, actions and conflict handling. Adding a connector does not implicitly add a calendar, task manager or editor application. See composable applications.
Pagination is explicit per operation. Some initial operations intentionally return one bounded page; their descriptions state that limit. Supported cursor operations expose an opaque page token bound to the connection, account, operation, filters and credential generation. A rotated credential requires a fresh listing. Neither provider next-page URLs nor arbitrary downloads are followed automatically.
OneDrive and SharePoint selection
The Microsoft file adapters use delegated OAuth rather than the manual-token setup above. Their common-app enrollment remains closed until registration and actual consent are qualified; a catalog card does not enable it automatically. Each account gets a separate local connection.
For OneDrive, use Choose drive to list existing drives and select one. For SharePoint, search for a site, choose it, then select one of its document libraries. Selecting a different site clears the previous library. The server checks the selection against a fresh authorized Microsoft listing; a model cannot change the site or drive through tool arguments. A new selection starts pagination again because previous page tokens belong to the old binding.
The CLI exposes the same owner controls:
openagent connectors microsoft-resources CONNECTION_ID --kind drives
openagent connectors select-microsoft-drive CONNECTION_ID DRIVE_ID
openagent connectors microsoft-resources CONNECTION_ID --kind sites --query Research
openagent connectors select-microsoft-site CONNECTION_ID SITE_ID --query ResearchFor subsequent listing pages, pass the returned opaque --page-token and the same query. Selecting a resource from that page also requires its page token. After selecting a SharePoint site, list its drives and select a library.
OneDrive requests delegated User.Read and Files.Read; SharePoint requests User.Read and Sites.Read.All, with offline access for renewal. SharePoint requires a work or school account and can require tenant approval. Selected-only permissions and application credentials are outside this initial subset. The tools read metadata and complete files up to 2MiB; they do not mutate files, provision drives or expose temporary download links.
Implementation boundary
The reviewed profiles are immutable SDK inputs under packages/connectors/definitions. They use the existing fixed-origin HTTP engine behind argument, response and pagination validation. They are not user-supplied HTTP templates or a runtime plugin loader. An unsupported schema or contract fails admission and cannot become an available card.
Go hosts embed the versioned module. Python hosts invoke the local runner and can expose the same operations through MCP when required. Accounts, permissions, audit and credential storage stay with the receiving host. Core uses its public capability interfaces; it does not import provider-specific transport code.
Available shared brand marks are bundled vectors from recorded sources. The marketplace renders only the SDK's finite vector format and performs no remote logo fetch. Existing bundled marks remain supported; a missing verified mark uses the ordinary card fallback rather than another brand's logo.
Synthetic protocol and lifecycle fixtures verify implementation boundaries. Actual provider consent, reads, renewals and disconnection are reported separately. Package publication, a registered OAuth app and a successful fixture are independent facts.
Provider inventory (SDK 0.1.8)
The 90 manual-token profiles below are compiled implementations with two read operations each. They ship in SDK 0.1.8; this list does not declare a successful live credential test or provider-app registration. Follow the linked provider documentation and the instructions shown by the card. Availability can require a provider plan, approval or an authorized OAuth access token obtained through your own app.
| Provider setup | Catalog ID | Supported read tools |
|---|---|---|
| AgentMail | agentmail | files.agentmail.inboxes.listfiles.agentmail.inboxes.get |
| Ahrefs | ahrefs | files.ahrefs.domain_rating.getfiles.ahrefs.metrics.get |
| Airtable | airtable | files.airtable.bases.listfiles.airtable.tables.list |
| Apollo.io | apollo | files.apollo.organizations.searchfiles.apollo.people.search |
| Asana | asana | files.asana.projects.listfiles.asana.tasks.list |
| Ashby | ashby | files.ashby.jobs.listfiles.ashby.candidates.list |
| Attio | attio | files.attio.objects.listfiles.attio.lists.list |
| beehiiv | beehiiv | files.beehiiv.publications.listfiles.beehiiv.publications.get |
| Better Stack | better-stack | files.better_stack.monitor_groups.getfiles.better_stack.monitor_groups.monitors.list |
| Box | box | files.box.folders.items.listfiles.box.files.get |
| Brevo | brevo | outreach.brevo.contacts.listoutreach.brevo.account.get |
| Brex | brex | files.brex.users.listfiles.brex.departments.list |
| Cal.com | cal-com | files.cal_com.profile.getfiles.cal_com.bookings.get |
| Calendly | calendly | files.calendly.users.mefiles.calendly.event_types.list |
| Canva | canva | files.canva.designs.listfiles.canva.designs.get |
| Capsule CRM | capsule | files.capsule.parties.listfiles.capsule.opportunities.list |
| Close | close | files.close.leads.listfiles.close.contacts.list |
| Cloudflare | cloudflare | files.cloudflare.zones.listfiles.cloudflare.accounts.list |
| Coda | coda | files.coda.identity.getfiles.coda.docs.get |
| CoinMarketCap | coinmarketcap | files.coinmarketcap.cryptocurrencies.mapfiles.coinmarketcap.global_metrics.get |
| Contentful | contentful | files.contentful.content_types.listfiles.contentful.assets.list |
| CourtListener | courtlistener | files.courtlistener.opinions.searchfiles.courtlistener.oral_arguments.search |
| Customer.io | customer-io | files.customer_io.campaigns.listfiles.customer_io.campaigns.get |
| DigitalOcean | digitalocean | files.digitalocean.droplets.listfiles.digitalocean.projects.list |
| Dovetail | dovetail | files.dovetail.projects.listfiles.dovetail.projects.get |
| Dropbox | dropbox | files.dropbox.folders.listfiles.dropbox.metadata.get |
| ElevenLabs | elevenlabs | files.elevenlabs.voices.listfiles.elevenlabs.models.list |
| Fathom | fathom | files.fathom.meetings.listfiles.fathom.recordings.transcript |
| Figma | figma | files.figma.user.getfiles.figma.files.get |
| Financial Datasets | financial-datasets | files.financial_datasets.income_statements.listfiles.financial_datasets.prices.snapshot |
| Fireflies | fireflies | files.fireflies.transcripts.listfiles.fireflies.transcripts.get |
| Front | front | files.front.company.getfiles.front.inboxes.list |
| GitBook | gitbook | files.gitbook.organizations.listfiles.gitbook.organizations.get |
| GitLab (Beta) | gitlab | files.gitlab.projects.listfiles.gitlab.issues.list |
| Grain | grain | files.grain.recordings.listfiles.grain.recordings.get |
| Gusto | gusto | files.gusto.token.infofiles.gusto.companies.get |
| HeyGen | heygen | files.heygen.avatars.listfiles.heygen.voices.list |
| Honeycomb | honeycomb | files.honeycomb.datasets.listfiles.honeycomb.datasets.get |
| HubSpot | hubspot | files.hubspot.contacts.listfiles.hubspot.companies.list |
| Hugging Face | hugging-face | files.hugging_face.models.listfiles.hugging_face.datasets.list |
| Hunter | hunter | files.hunter.account.getfiles.hunter.domains.search |
| incident.io | incident-io | files.incident_io.incidents.listfiles.incident_io.roles.list |
| Instantly.ai | instantly | outreach.instantly.campaigns.listoutreach.instantly.campaigns.get |
| Klaviyo | klaviyo | outreach.klaviyo.profiles.listoutreach.klaviyo.campaigns.list |
| LaunchDarkly | launchdarkly | files.launchdarkly.projects.listfiles.launchdarkly.flags.list |
| lemlist | lemlist | outreach.lemlist.campaigns.listoutreach.lemlist.campaigns.get |
| Linear | linear | files.linear.issues.listfiles.linear.projects.list |
| Lucid | lucid | files.lucid.documents.getfiles.lucid.threads.list |
| MailerLite | mailerlite | files.mailerlite.groups.listfiles.mailerlite.segments.list |
| Massive | massive | files.massive.tickers.listfiles.massive.market_status.get |
| Miro | miro | files.miro.boards.listfiles.miro.boards.search |
| monday.com | monday | files.monday.boards.listfiles.monday.items.list |
| Neon | neon | files.neon.projects.listfiles.neon.projects.get |
| Netlify | netlify | files.netlify.sites.listfiles.netlify.sites.get |
| Nifty | nifty | files.nifty.projects.listfiles.nifty.projects.get |
| Omnisend | omnisend | files.omnisend.campaigns.listfiles.omnisend.campaigns.get |
| OneSignal | onesignal | files.onesignal.apps.listfiles.onesignal.apps.get |
| PandaDoc | pandadoc | files.pandadoc.documents.listfiles.pandadoc.documents.details |
| Pendo | pendo | files.pendo.features.listfiles.pendo.pages.list |
| PostHog | posthog | files.posthog.projects.listfiles.posthog.projects.get |
| Postman | postman | files.postman.collections.listfiles.postman.collections.get |
| Quo | quo | files.quo.phone_numbers.listfiles.quo.conversations.list |
| Railway | railway | files.railway.account.getfiles.railway.projects.get |
| Ramp | ramp | files.ramp.users.listfiles.ramp.users.get |
| Read AI | read-ai | files.read_ai.meetings.listfiles.read_ai.meetings.get |
| Readwise | readwise | files.readwise.books.listfiles.readwise.highlights.list |
| Render | render | files.render.services.listfiles.render.deploys.list |
| Resend | resend | outreach.resend.domains.listoutreach.resend.domains.get |
| RevenueCat | revenuecat | files.revenuecat.projects.listfiles.revenuecat.apps.list |
| Rootly | rootly | files.rootly.incidents.listfiles.rootly.services.list |
| SignNow | signnow | files.signnow.documents.listfiles.signnow.documents.get |
| Smartsheet US | smartsheet | files.smartsheet.sheets.listfiles.smartsheet.sheets.get |
| Spotify | spotify | files.spotify.playlists.listfiles.spotify.saved_tracks.list |
| Statsig | statsig | files.statsig.gates.listfiles.statsig.experiments.list |
| Stripe | stripe | commerce.stripe.customers.listcommerce.stripe.invoices.list |
| Supabase | supabase | files.supabase.projects.listfiles.supabase.projects.get |
| SurveyMonkey | surveymonkey | files.surveymonkey.surveys.listfiles.surveymonkey.surveys.details |
| Tally | tally | files.tally.forms.listfiles.tally.submissions.list |
| Tavily | tavily | files.tavily.searchfiles.tavily.usage.get |
| TickTick:To-Do List & Calendar | ticktick | files.ticktick.projects.listfiles.ticktick.projects.get |
| Todoist: To Do List & Calendar | todoist | files.todoist.projects.listfiles.todoist.tasks.list |
| Typeform | typeform | files.typeform.forms.listfiles.typeform.responses.list |
| Vercel | vercel | files.vercel.projects.listfiles.vercel.deployments.list |
| Webex | webex | files.webex.people.selffiles.webex.rooms.list |
| Webflow | webflow | files.webflow.sites.listfiles.webflow.collections.list |
| Wistia | wistia | files.wistia.media.listfiles.wistia.folders.list |
| WorkOS | workos | files.workos.organizations.listfiles.workos.directories.list |
| Wrike | wrike | files.wrike.contacts.selffiles.wrike.tasks.list |
| YNAB: Get Good At Money | ynab | files.ynab.user.getfiles.ynab.plans.list |
| Zoom | zoom | files.zoom.meetings.listfiles.zoom.meetings.get |