Clickhouse

Learn how to use Clickhouse with Composio

Overview

SLUG: CLICKHOUSE

Description

ClickHouse is a fast open-source column-oriented database management system for real-time analytics and big data processing with SQL support

Authentication Details

full
stringRequired
username
stringRequired
password
stringRequired
database
string

Connecting to Clickhouse

Create an auth config

Use the dashboard to create an auth config for the Clickhouse toolkit. This allows you to connect multiple Clickhouse accounts to Composio for agents to use.

1

Select App

Navigate to Clickhouse.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Clickhouse Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using Basic Auth

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5clickhouse_auth_config_id = "ac_YOUR_CLICKHOUSE_CONFIG_ID"
6user_id = "user@example.com"
7username = "your_clickhouse_username"
8password = "your_clickhouse_password"
9
10composio = Composio()
11
12# Create a new connected account for Clickhouse using Basic Auth
13connection_request = composio.connected_accounts.initiate(
14 user_id=user_id,
15 auth_config_id=clickhouse_auth_config_id,
16 config=auth_scheme.basic_auth(
17 username=username,
18 password=password
19 )
20)
21
22# Basic authentication is immediate - no redirect needed
23print(f"Successfully connected Clickhouse for user {user_id}")
24
25# You can verify the connection using:
26# connected_account = composio.connected_accounts.get(user_id=user_id, app_id="CLICKHOUSE")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Clickhouse toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["CLICKHOUSE"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Execute ClickHouse Query

Description

Execute a sql query in clickhouse and return the results. this is the primary action for querying data from clickhouse databases.

Action Parameters

database
string
format
stringDefaults to JSONEachRow
max_execution_time
integer
query
stringRequired
settings
object

Action Response

data
arrayRequired
error
string
rows
integerRequired
statistics
object
successful
booleanRequired

Tool Name: Get Database Schema

Description

Get comprehensive schema overview of an entire database including all tables and optionally their column definitions. essential for ai agents to understand the complete database structure in a single call.

Action Parameters

database
string
include_table_schemas
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Table Schema

Description

Get detailed schema information for a specific table including column definitions, types, keys, and optionally sample data. this is essential for ai agents to understand table structure before constructing queries.

Action Parameters

database
string
include_sample_data
boolean
sample_rows
integerDefaults to 5
table_name
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List ClickHouse Databases

Description

List all databases in the clickhouse instance. useful for discovering available databases before querying tables.

Action Parameters

include_tables
boolean
pattern
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List ClickHouse Tables

Description

List tables in clickhouse databases. returns information about tables including their engine, size, and row count.

Action Parameters

database
string
include_columns
boolean
include_primary_key
boolean
include_views
booleanDefaults to True
pattern
string

Action Response

data
objectRequired
error
string
successful
booleanRequired