Overview
The Connectors API is Allternit’s owned connector standard. It exposes a unified catalog plus connection engine for third-party services. Curated connectors (GitHub, Notion, Slack) execute in-process using owned auth methods such as local CLI tokens, API keys, OAuth2 PKCE/loopback, and device flow. All other catalog entries are served by the vendored open-connector sidecar (services/open-connector), which holds credentials in its own encrypted SQLite store while the gateway keeps only an index row.
The API also exposes a unified MCP surface at /api/v1/connectors/mcp so any MCP-capable agent host can call sidecar-backed connectors through JSON-RPC.
Base URL
Authentication
- Connector management routes require a valid bearer token via the platform auth middleware.
/api/v1/connectors/mcpaccepts the same bearer token.- The internal MCP proxy (
/internal/connectors/mcp) accepts a cloud-issued runtime-device token (Authorization: Bearer allternit_runtime_...) or the internal service token plusx-allternit-user-id.
Connector object
Endpoints
List connectors
Example response
Get a connector
Connect a connector
Request body
Local CLI example (GitHub)
OAuth2 example
API key example
Execute a connector action
Request body
Example request
Example response
Disconnect a connector
Example response
MCP proxy
/mcp endpoint. Curated connectors are not reachable through this surface.
Both /api/v1/connectors/mcp and /internal/connectors/mcp are MCP servers in their own right and speak both eras: initialize, server/discover (MCP 2026-07-28), ping and notifications are answered by the API, every other request is forwarded through the shared dual-era MCP client (2026-07-28 first, initialize fallback). tools/list comes back sorted by tool name, with the in-process allternit_mail.* and phone tools merged in on the internal endpoint. A modern request’s version, header-mismatch and unknown-method errors use HTTP 400 / 404 as the spec requires. Toward the sidecar the client sets MCP-Protocol-Version, Mcp-Method and Mcp-Name itself for the era the sidecar speaks (so a modern sidecar gets them on every request, matching the _meta the client adds), and it reads either a JSON or an SSE (text/event-stream) reply.