Introduction
The Integration Layer for AI Agents
Corsair gives your agent safe access to hundreds of integrations. It handles all of the plumbing — auth, data storage, webhooks, token refresh, rate limiting — so the only code you write is the part specific to your use case.
import { createCorsair, slack, github, gmail, linear, googlecalendar } from 'corsair';
export const corsair = createCorsair({
plugins: [slack(), github(), gmail(), linear(), googlecalendar()],
database: db,
kek: process.env.CORSAIR_KEK!,
});Connect it to your agent and start prompting:
Invite Jim to next Thursday's sales call. Tell him over Slack too so he
can accept it. Let me know when he does.Corsair exposes four MCP tools to your agent — no matter how many plugins you have:
corsair_setup— check auth and get credential instructionslist_operations— discover every available API endpointget_schema— inspect the parameters for a specific endpointrun_script— execute a script withcorsairin scope
What your agent can do
Once connected, your agent can reason across all your integrations at once:
"Summarize my unread emails from customers, open a Linear issue for anything that looks urgent, and post the digest to #standup."
"When a new GitHub issue is labeled
bug, create a matching Linear ticket and notify the on-call engineer in Slack."
The second one is a live webhook workflow. Corsair handles the event routing and your agent handles the logic.
Why Corsair?
Integrations are 95% plumbing
If you look at any codebase with integrations, 95% of the code is identical across every project. OAuth flows, token refresh, webhook verification, data normalization — it's all the same. Corsair handles the 95% so you write only the part that's actually unique to your use case.
Your data, your database
Everything stays in your own database. No data leaving to a third-party service, no vendor lock-in, no per-seat pricing on your users' data.
Built for agents
Corsair is designed around how agents actually work — discover, inspect, execute. The four MCP tools work the same way regardless of which framework you use.
Scales to multi-tenant SaaS
The same setup works for building products. Set multiTenancy: true, call corsair.withTenant(teamId), and every API call is automatically scoped to the right credentials.
const tenant = corsair.withTenant("team_abc");
await tenant.slack.api.messages.post({ channel: "C01234567", text: "Hello!" });Supported integrations
Slack · Linear · HubSpot · Gmail · Google Calendar · GitHub · Google Drive · Google Sheets · PostHog · Resend · and more
Supported frameworks
Claude Agent SDK · Anthropic SDK · OpenAI Agents · Vercel AI SDK · Mastra · OpenAI · and more
Get started
- Installation — Install, migrate, and run your first prompt
- MCP Adapters — Connect your agent framework
- Plugins — Available integrations and their endpoints