skopik

Connectors & Integrations

Connectors allow Agents to interact securely with external third-party services and SaaS APIs (such as GitHub, Slack, Notion, PostgreSQL, and custom MCP servers). Skopik manages credential encryption, OAuth 2.0 token refreshes, and tool discovery automatically.

Secure credential vault

Connectors store credentials in Skopik's encrypted integration vault:

  • Credentials (API tokens, private keys, client secrets) are write-only.
  • Subsequent reads return redacted profiles and connection health metadata, never sensitive credential strings.
  • Process sandboxes receive short-lived materialization grants only when executing connector-backed tools.

Create a Connector

Create a Connector by providing its integration type and credentials:

const connector = await skopik.connectors.create({
	name: 'github-org-integration',
	displayName: 'GitHub Organization',
	kind: 'github',
	config: {
		token: process.env.GITHUB_PERSONAL_ACCESS_TOKEN,
		defaultOwner: 'my-org',
	},
})

console.log('Connector created:', connector.connectorId, 'Status:', connector.status)

OAuth 2.0 authorization flow

For services requiring OAuth (e.g. Slack or Google Workspace), initiate the OAuth flow to obtain an authorization URL:

const { authorizeUrl } = await skopik.connectors.startOAuth(connector.connectorId)

// Redirect your user to the consent screen
console.log('Authorize URL:', authorizeUrl)

Once the user approves access, Skopik's OAuth callback handler securely exchanges the authorization code for encrypted access and refresh tokens.

Test connection & discover tools

Validate connectivity and check tool discovery before attaching a Connector to production Sessions:

const testResult = await skopik.connectors.test(connector.connectorId)

console.log('Connected:', testResult.ok)
console.log('Available tools:', testResult.tools) // e.g. ['mcp__github_create_issue', 'mcp__github_list_prs']

Attach Connectors to a Session

Attach one or more Connectors when opening a Session. The Agent automatically gains access to the Connector's tools:

const session = await skopik.sessions.open({
	agent: agentId,
	connectors: [connector.connectorId],
	prompt: 'List open pull requests in my-org/backend and summarize any pending reviews.',
	permission: 'ask',
})

You can also update the active Connectors on an existing live Session:

await skopik.sessions.updateConnectors(sessionId, [connector.connectorId, slackConnectorId])

Manage Connectors

// List all connectors
const { data: connectors } = await skopik.connectors.list()

// Fetch connector metadata
const current = await skopik.connectors.get(connector.connectorId)

// Update connector configuration
const updated = await skopik.connectors.update(connector.connectorId, {
	displayName: 'GitHub Organization (Engineering)',
	config: {
		defaultOwner: 'my-engineering-org',
	},
})

// Delete a connector
await skopik.connectors.delete(connector.connectorId)

API reference

SDK Method HTTP Endpoint Description
connectors.list() GET /connectors List configured Connectors in your organization.
connectors.create() POST /connectors Create a new Connector with encrypted config.
connectors.get() GET /connectors/{id} Read Connector status, health, and discovered tools.
connectors.update() PATCH /connectors/{id} Update Connector name or configuration.
connectors.delete() DELETE /connectors/{id} Delete a Connector.
connectors.test() POST /connectors/{id}/test Test credentials and connectivity.
connectors.startOAuth() POST /connectors/{id}/oauth/start Generate OAuth 2.0 authorization URL.