Skip to content

Integrations Setup

Kindo supports integrations using Nango for authentication and the MCP protocol for agent access to external systems. Most MCP servers are built in-house and run by the customer as part of a self-managed installation, though a growing number of official hosted MCPs can be accessed directly.

Nango Setup

Connecting Nango to Your Installation

Architecture diagram showing the connection between Nango and a Kindo installation

1. Set Environment Variables in Kindo

VariableDescriptionRequired Services
NANGO_SECRET_KEYShared secret key for Nango integrationsapi, task-worker-ts
NANGO_URLHost on the Ingress pointing to the nango service (must match your Nango dashboard URL)api, task-worker-ts
API_INTEGRATION_WEBHOOK_BASE_URLThe URL of your API service with /webhook/integration-connection appended (e.g., https://<API_HOST>/webhook/integration-connection). This is where third-party services (Linear, Jira, etc.) send webhook events.task-worker-ts
NEXT_PUBLIC_NANGO_API_URLSame as NANGO_URLnext
NEXT_PUBLIC_NANGO_CONNECT_URLHost on the Ingress pointing to the nango-connect-ui servicenext

2. Set Environment Variables in Nango

  1. Set the Callback URL to ${NANGO_URL}/oauth/callback.

  2. Configure the webhook:

    • In the Nango dashboard, go to Environment Settings > Webhook URLs.
    • Set Primary URL to ${API_BASE_URL}/webhook/nango (where API_BASE_URL matches the API service environment variable).
    • Select the Prod environment.
    • Toggle ON Auth: new connection webhooks. All other toggles can be OFF.

For self-managed Kindo installs, this secret is managed by the installer and applied to both Nango and the Kindo services that use it.

Configuring New Integrations

In the Nango dashboard: Integrations > Configure New Integration > Select the desired integration and auth method.

Nango dashboard showing integration configuration

Supported Integrations

IntegrationAuth MethodNotes
Azure DevOpsBASIC
BoxOAUTH2
Cisco CatalystBASIC
Cisco FMCBASIC
Cofense TriageOAUTH2_CC
CrowdStrike FalconOAUTH2_CC
DatadogAPI_KEY
DropboxOAUTH2Requires file and account scopes
GitHubOAUTH2Scopes: repo, read:org, user
GitLabOAUTH2Scopes: api
Google DocsOAUTH2Requires documents and drive scopes
Google DriveOAUTH2Requires userinfo and drive scopes
Google SecOpsOAUTH2Configured per connection
GrafanaAPI_KEY
GraylogBASIC
JiraOAUTH2Requires Jira API and User Identity API scopes
LinearOAUTH2Scopes: admin, read, write
Microsoft Entra IDOAUTH2
Microsoft OneDriveOAUTH2Requires Files scopes
Microsoft Outlook CalendarOAUTH2Requires Microsoft Graph calendar and contacts scopes
Microsoft TeamsOAUTH2Requires Teams and Chat scopes
Neo4jBASIC
NVDAPI_KEY
SailPointOAUTH2_CC
SAP S/4HANABASICOData and RFC variants
ServiceNowOAUTH2_CC
SlackOAUTH2Requires channels, chat, and users scopes
SmartsheetOAUTH2Requires sheets, folders, and workspaces scopes
SourcegraphAPI_KEY
SplunkAPI_KEY
Sumo LogicBASIC
TenableAPI_KEY

OAUTH2 Integrations

For OAUTH2 integrations, first create an OAuth app within the target integration. The callback URL should be <NANGO_URL>/oauth/callback. Then configure the Client ID and Client Secret in Nango with the values from the integration provider.

Configuring an OAUTH2 integration in Nango with Client ID and Client Secret

BASIC, API_KEY, and OAUTH2_CC Integrations

No modification to integration configurations is necessary — all required credentials are specified when creating the connection in the Kindo platform.

Provider-Specific Setup Guides

Use the links below to create an OAuth app or obtain credentials for each provider. For OAUTH2 integrations, set the callback URL to <NANGO_URL>/oauth/callback.

OAUTH2

ProviderSetup Guide
BoxBox Developer Documentation — OAuth 2.0 Setup
DropboxDropbox App Console
GitHubCreating an OAuth App
GitLabOAuth Provider
Google DriveOAuth 2.0 Protocol
JiraJira REST API Authentication
LinearLinear OAuth 2.0 Authentication
Microsoft (OneDrive, Entra ID, Teams, Outlook)Microsoft Identity Platform — Register an App
SlackSlack API — Creating an App

OAUTH2_CC (Client Credentials)

ProviderSetup Guide
CrowdStrike FalconSee instructions below
ServiceNowServiceNow OAuth — Inbound
CrowdStrike Falcon — Client Credentials Setup

Docs: CrowdStrike OpenAPI

  1. Log into your CrowdStrike Falcon console.
  2. In the left sidebar, navigate to Support and Resources > API Clients and Keys.
  3. Create a new API client.
  4. Set the Base URL to match your CrowdStrike region (e.g., US-1, US-2, EU-1, or US-GOV-1).
  5. Click the client ID row to view and configure scopes. Grant the scopes required by your Kindo integration.
  6. Copy the Client ID and Client Secret — these are entered when creating the connection in the Kindo platform.

API_KEY

ProviderSetup Guide
GrafanaService Accounts
NVDRequest an API Key
TenableAuthorization

BASIC

ProviderSetup Guide
Azure DevOpsPersonal Access Tokens
Sumo LogicAccess Keys

Integration Webhooks

Integration webhooks are required for using Integration Event triggers. Direct Webhook URL triggers do not require this configuration.

Linear Webhooks

  1. In Linear, go to Settings > API and select the OAuth app created earlier.

  2. Click the three dots > Edit Application.

  3. Enable the Webhooks toggle.

  4. Enter <API_SERVICE_URL>/webhook/integration-connection/linear as the webhook URL.

  5. Select Issues under “Data change events”.

  6. Copy the webhook signing secret.

  7. In Nango, paste the secret into the Webhook Secret input and save.

    Linear webhook configuration in the OAuth app settings

Jira Webhooks

No additional setup is needed for Jira webhooks.

Syncing Integrations with Kindo

After configuring integrations in Nango, sync them with your Kindo application:

  1. In the Hatchet dashboard, go to Activity > Runs.

  2. Click Trigger Run.

  3. Under Task or Workflow, select sync-all-integration-configs-workflow.

  4. Click Run Task.

    Triggering the sync workflow in the Hatchet dashboard

    Selecting the sync-all-integration-configs-workflow

Verify the sync completed successfully:

Hatchet dashboard showing a successful sync run

Then confirm in the Kindo app under Settings > Integrations > Available Integrations:

The Kindo integrations settings showing available API providers

MCP Server Setup

After syncing Nango integrations, connect MCP servers:

  1. Verify the integration configs appear in the IntegrationConfig database table.
  2. Update the mcpServerUrl field for each integration you want to enable.
  3. For integrations with webhook support (Jira, Linear), set supportsWebhooks to true.

Example MCP server URLs (adjust for your namespace):

http://mcp-slack.mcp:80
http://mcp-jira.mcp:80
http://mcp-linear.mcp:80

The exact URL format depends on your Kubernetes namespace configuration and service naming conventions.