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_KEYObtain from the Nango dashboardapi, 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.

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 TeamsOAUTH2Requires Teams and Chat scopes
Neo4jBASIC
NVDAPI_KEY
OneDriveOAUTH2Requires Files scopes
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.

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.