Manage connections

Connections make external models and data available inside your workspace. You can manage LLM providers and database connections in the current Connections UI. Klu also has backend support for OAuth-based third-party connections, with the current visibility limitations described below.


Prerequisites and permissions

You need:

  • A Klu account and membership in the workspace.
  • Credentials for the service you want to connect.
  • Network access from Klu to a database endpoint when you add a database.

The current app allows any authenticated workspace member to view and manage these connections. Connection changes affect the whole workspace, so coordinate credential rotation and deletion with anyone who uses the related Actions, Context, Skills, or Workflows.


Connect an LLM provider

Open LLM Providers in the workspace navigation. The page header is Connections, and the selected tab is LLM Providers.

  1. Select Add LLM.
  2. In Add LLM Provider, choose a Provider.
  3. Enter Your API Key when the provider requires one.
  4. Complete any provider-specific fields:
    • URL for Azure OpenAI, GCP Vertex, Azure AI Endpoint, and API Endpoint.
    • Model name (or version) for Replicate, Hugging Face Hub, Google PaLM, Azure AI Endpoint, and API Endpoint.
    • AWS credentials and region for Amazon Bedrock.
    • Account ID for Cloudflare AI.
    • Credentials JSON for GCP Vertex.
  5. Expand Additional settings and enter Name (Optional) when you need to distinguish multiple accounts or endpoints for the same provider.
  6. Select Validate. Klu saves the connection after successful validation. The Klu provider shows Save directly; Amazon Bedrock and API Endpoint allow validation without a value in Your API Key.

The standard provider set currently includes OpenAI, AI21, Anthropic, Cohere, Klu, Perplexity AI, Google AI, Together AI, Mistral, Groq, DeepSeek, and Grok. Scale-enabled workspaces can also expose Amazon Bedrock, Azure AI Endpoint, Azure OpenAI, Cloudflare AI, GCP Vertex, Hugging Face Hub, Replicate, and API Endpoint.

After Klu saves the connection, it appears in the LLM Providers table. The table shows its default model, encrypted key status, who added the key, and when it was last used.

Choose defaults and update credentials

  • Use Default LLM Provider to choose the workspace default.
  • Use the model selector in the Default Model column to set a default model for an individual provider.
  • Select a non-Klu provider name to open its details.
  • Select Add Key when a Klu-provided provider entry needs your own key.

Validation failures leave the connection unsaved and display the provider error. Check the key, endpoint URL, model name, and provider-specific metadata before trying again. A saved connection can still fail later if its credential is revoked, its endpoint becomes unreachable, or the selected model is unavailable.


Connect a database

In Connections, select the Databases tab. You can also open Database Connections from the command menu.

  1. Select Add Database Connection.
  2. Choose a Database Type.
  3. Enter a recognizable Name, such as Production analytics.
  4. Enter every connection field shown for that database.
  5. Select Save.

The visible form supports these connection types:

Database typeRequired connection fields
PostgreSQLConnection URL
MySQLConnection URL
RedisURI
MongoDBConnection string
SnowflakeUsername, password, account, and key
ElasticEndpoint, index, and field
PineconeAPI key, environment, and index name

The saved connection appears under Database Connections and becomes selectable by features such as database-backed Context and the SQL Query Skill.

Saving a database connection stores its configuration; the create form does not run a visible connection test. Test the first dependent Context or Skill immediately. For SQL Query Skills, the current runtime implements PostgreSQL, MySQL, Snowflake, Redis, Elastic/Elasticsearch, and Pinecone. MongoDB can be saved as a connection, while the current SQL Query Skill runtime does not implement MongoDB queries.

Database query limits

The SQL Query Skill enforces read-only access in the application runtime:

  • SQL must begin with a read-only form such as SELECT, WITH, SHOW, DESCRIBE, or EXPLAIN.
  • Multiple statements, locking reads, and write or schema-changing keywords are rejected.
  • Klu applies a 10-second query timeout.
  • Klu adds LIMIT 100 to eligible SQL queries that do not already contain a top-level limit, fetch, or offset.
  • Redis key scans return at most 100 keys, Elastic searches return at most 100 hits, and Pinecone searches request the top 10 matches.

Use a database credential that already has the least privileges needed for the intended reads. The runtime checks add another boundary, while database-side permissions remain authoritative.


Third-party OAuth connections

The backend and route code support OAuth connections through Nango for Asana, Airtable, GitHub, Google, Zendesk, Intercom, Jira, Notion, Slack, Microsoft Teams, and Zoom. The backend can list workspace connections, create a workspace record after OAuth, return redacted connection details, and disconnect a connection.

The current visible Connections tabs expose LLM Providers and Databases. The Integrations tab is excluded from those tab lists, and the direct third-party page initializes without rendering the integration cards. Treat third-party connection setup as unavailable in the current visible UI. An existing backend connection can still be used by integration-backed Skill code, but there is no supported user workflow in this UI for creating that connection.


Use connections from code

Create workspace API keys under SettingsAPI Keys before using an SDK. See API and SDK basics for installation and authentication.

The Python SDK can list and manage LLM provider records:

List LLM providers

import asyncio

from klu import Klu


async def main() -> None:
    klu = Klu("YOUR_API_KEY")
    providers = await klu.models.get_providers()
    for provider in providers:
        print(provider)


asyncio.run(main())

Database connections and OAuth connections are managed by the app's authenticated workspace routes in the current source. The public Python and TypeScript clients do not expose database-connection or third-party-connection clients.