Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt

Use this file to discover all available pages before exploring further.

Use the custom connector path when your SDK or product can connect to an arbitrary HTTP MCP server. Most clients ask for some version of:
FieldCorsair value
MCP server URLmcpHttpUrl
Auth typeBearer token
Bearer tokenTenant MCP secret from tenant.mcpKeys.create()
Header nameAuthorization
Header valueBearer <tenant MCP secret>

Create the tenant MCP secret

import { createClient } from "@corsair-dev/app";

const corsair = createClient({
  apiKey: process.env.CORSAIR_API_KEY!,
});

const tenant = corsair
  .instance(process.env.CORSAIR_INSTANCE_ID!)
  .tenant("dev");

const key = await tenant.mcpKeys.create("custom-connector");

console.log(key.mcpHttpUrl);
console.log(key.secret);

Generic HTTP config

If your connector accepts a JSON-like MCP server config, use:
{
  "type": "http",
  "url": "https://api.corsair.dev/mcp/...",
  "headers": {
    "Authorization": "Bearer <tenant-mcp-secret>"
  }
}
If your connector has separate form fields, enter:
URL: https://api.corsair.dev/mcp/...
Authorization header: Bearer <tenant-mcp-secret>

OAuth-aware connectors

Some clients can discover OAuth or protected-resource metadata from the MCP server. Fetch those URLs from the hosted SDK:
const conn = await tenant.mcpKeys.connection();

console.log(conn.mcpHttpUrl);
console.log(conn.oauthDiscoveryUrl);
console.log(conn.protectedResourceMetadataUrl);
If the client supports bearer-token auth, the simplest setup is still:
MCP URL: conn.mcpHttpUrl
Bearer token: tenant MCP secret
Use OAuth discovery only when the client specifically asks for an OAuth discovery URL or protected resource metadata URL.

Do not use the developer API key

The developer API key is for your backend:
const corsair = createClient({
  apiKey: process.env.CORSAIR_API_KEY!,
});
It can create instances, install plugins, create tenants, and issue MCP secrets. It should not be handed to an external connector. The tenant MCP secret is for the connector:
Authorization: Bearer <tenant-mcp-secret>
It can only access the installed and permitted tools for that tenant. Revoke it when the connector should lose access:
await tenant.mcpKeys.revoke("key_123");