Skip to content

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 ​

  1. Choose the receiving server and user, then open Connectors → Browse. Provider cards and registry MCPs use the same grid and search.
  2. Select a provider. Read its supported operations and API setup instructions. API entitlement and provider plan requirements still apply.
  3. 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.
  4. Connect and perform a permitted read to verify the credential. Saving a connection alone does not prove provider access.
  5. 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:

sh
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 Research

For 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 setupCatalog IDSupported read tools
AgentMailagentmailfiles.agentmail.inboxes.list
files.agentmail.inboxes.get
Ahrefsahrefsfiles.ahrefs.domain_rating.get
files.ahrefs.metrics.get
Airtableairtablefiles.airtable.bases.list
files.airtable.tables.list
Apollo.ioapollofiles.apollo.organizations.search
files.apollo.people.search
Asanaasanafiles.asana.projects.list
files.asana.tasks.list
Ashbyashbyfiles.ashby.jobs.list
files.ashby.candidates.list
Attioattiofiles.attio.objects.list
files.attio.lists.list
beehiivbeehiivfiles.beehiiv.publications.list
files.beehiiv.publications.get
Better Stackbetter-stackfiles.better_stack.monitor_groups.get
files.better_stack.monitor_groups.monitors.list
Boxboxfiles.box.folders.items.list
files.box.files.get
Brevobrevooutreach.brevo.contacts.list
outreach.brevo.account.get
Brexbrexfiles.brex.users.list
files.brex.departments.list
Cal.comcal-comfiles.cal_com.profile.get
files.cal_com.bookings.get
Calendlycalendlyfiles.calendly.users.me
files.calendly.event_types.list
Canvacanvafiles.canva.designs.list
files.canva.designs.get
Capsule CRMcapsulefiles.capsule.parties.list
files.capsule.opportunities.list
Closeclosefiles.close.leads.list
files.close.contacts.list
Cloudflarecloudflarefiles.cloudflare.zones.list
files.cloudflare.accounts.list
Codacodafiles.coda.identity.get
files.coda.docs.get
CoinMarketCapcoinmarketcapfiles.coinmarketcap.cryptocurrencies.map
files.coinmarketcap.global_metrics.get
Contentfulcontentfulfiles.contentful.content_types.list
files.contentful.assets.list
CourtListenercourtlistenerfiles.courtlistener.opinions.search
files.courtlistener.oral_arguments.search
Customer.iocustomer-iofiles.customer_io.campaigns.list
files.customer_io.campaigns.get
DigitalOceandigitaloceanfiles.digitalocean.droplets.list
files.digitalocean.projects.list
Dovetaildovetailfiles.dovetail.projects.list
files.dovetail.projects.get
Dropboxdropboxfiles.dropbox.folders.list
files.dropbox.metadata.get
ElevenLabselevenlabsfiles.elevenlabs.voices.list
files.elevenlabs.models.list
Fathomfathomfiles.fathom.meetings.list
files.fathom.recordings.transcript
Figmafigmafiles.figma.user.get
files.figma.files.get
Financial Datasetsfinancial-datasetsfiles.financial_datasets.income_statements.list
files.financial_datasets.prices.snapshot
Firefliesfirefliesfiles.fireflies.transcripts.list
files.fireflies.transcripts.get
Frontfrontfiles.front.company.get
files.front.inboxes.list
GitBookgitbookfiles.gitbook.organizations.list
files.gitbook.organizations.get
GitLab (Beta)gitlabfiles.gitlab.projects.list
files.gitlab.issues.list
Graingrainfiles.grain.recordings.list
files.grain.recordings.get
Gustogustofiles.gusto.token.info
files.gusto.companies.get
HeyGenheygenfiles.heygen.avatars.list
files.heygen.voices.list
Honeycombhoneycombfiles.honeycomb.datasets.list
files.honeycomb.datasets.get
HubSpothubspotfiles.hubspot.contacts.list
files.hubspot.companies.list
Hugging Facehugging-facefiles.hugging_face.models.list
files.hugging_face.datasets.list
Hunterhunterfiles.hunter.account.get
files.hunter.domains.search
incident.ioincident-iofiles.incident_io.incidents.list
files.incident_io.roles.list
Instantly.aiinstantlyoutreach.instantly.campaigns.list
outreach.instantly.campaigns.get
Klaviyoklaviyooutreach.klaviyo.profiles.list
outreach.klaviyo.campaigns.list
LaunchDarklylaunchdarklyfiles.launchdarkly.projects.list
files.launchdarkly.flags.list
lemlistlemlistoutreach.lemlist.campaigns.list
outreach.lemlist.campaigns.get
Linearlinearfiles.linear.issues.list
files.linear.projects.list
Lucidlucidfiles.lucid.documents.get
files.lucid.threads.list
MailerLitemailerlitefiles.mailerlite.groups.list
files.mailerlite.segments.list
Massivemassivefiles.massive.tickers.list
files.massive.market_status.get
Miromirofiles.miro.boards.list
files.miro.boards.search
monday.commondayfiles.monday.boards.list
files.monday.items.list
Neonneonfiles.neon.projects.list
files.neon.projects.get
Netlifynetlifyfiles.netlify.sites.list
files.netlify.sites.get
Niftyniftyfiles.nifty.projects.list
files.nifty.projects.get
Omnisendomnisendfiles.omnisend.campaigns.list
files.omnisend.campaigns.get
OneSignalonesignalfiles.onesignal.apps.list
files.onesignal.apps.get
PandaDocpandadocfiles.pandadoc.documents.list
files.pandadoc.documents.details
Pendopendofiles.pendo.features.list
files.pendo.pages.list
PostHogposthogfiles.posthog.projects.list
files.posthog.projects.get
Postmanpostmanfiles.postman.collections.list
files.postman.collections.get
Quoquofiles.quo.phone_numbers.list
files.quo.conversations.list
Railwayrailwayfiles.railway.account.get
files.railway.projects.get
Ramprampfiles.ramp.users.list
files.ramp.users.get
Read AIread-aifiles.read_ai.meetings.list
files.read_ai.meetings.get
Readwisereadwisefiles.readwise.books.list
files.readwise.highlights.list
Renderrenderfiles.render.services.list
files.render.deploys.list
Resendresendoutreach.resend.domains.list
outreach.resend.domains.get
RevenueCatrevenuecatfiles.revenuecat.projects.list
files.revenuecat.apps.list
Rootlyrootlyfiles.rootly.incidents.list
files.rootly.services.list
SignNowsignnowfiles.signnow.documents.list
files.signnow.documents.get
Smartsheet USsmartsheetfiles.smartsheet.sheets.list
files.smartsheet.sheets.get
Spotifyspotifyfiles.spotify.playlists.list
files.spotify.saved_tracks.list
Statsigstatsigfiles.statsig.gates.list
files.statsig.experiments.list
Stripestripecommerce.stripe.customers.list
commerce.stripe.invoices.list
Supabasesupabasefiles.supabase.projects.list
files.supabase.projects.get
SurveyMonkeysurveymonkeyfiles.surveymonkey.surveys.list
files.surveymonkey.surveys.details
Tallytallyfiles.tally.forms.list
files.tally.submissions.list
Tavilytavilyfiles.tavily.search
files.tavily.usage.get
TickTick:To-Do List & Calendarticktickfiles.ticktick.projects.list
files.ticktick.projects.get
Todoist: To Do List & Calendartodoistfiles.todoist.projects.list
files.todoist.tasks.list
Typeformtypeformfiles.typeform.forms.list
files.typeform.responses.list
Vercelvercelfiles.vercel.projects.list
files.vercel.deployments.list
Webexwebexfiles.webex.people.self
files.webex.rooms.list
Webflowwebflowfiles.webflow.sites.list
files.webflow.collections.list
Wistiawistiafiles.wistia.media.list
files.wistia.folders.list
WorkOSworkosfiles.workos.organizations.list
files.workos.directories.list
Wrikewrikefiles.wrike.contacts.self
files.wrike.tasks.list
YNAB: Get Good At Moneyynabfiles.ynab.user.get
files.ynab.plans.list
Zoomzoomfiles.zoom.meetings.list
files.zoom.meetings.get