本指南将介绍如何将 Chainlit 强大的聊天界面框架 与 ClickHouse Model Context Protocol (MCP) Server 结合,构建交互式数据 应用。Chainlit 让你只需极少代码即可为 AI 应用构建对话式界面,而 ClickHouse MCP 服务器则可与 ClickHouse 的高性能列式数据库实现无缝 集成。
前置条件
- 你需要有一个 Anthropic API key
- 你需要先安装
uv
基础 Chainlit 应用
你可以运行以下内容,查看一个基础聊天应用示例:
uv run --with anthropic --with chainlit chainlit run chat_basic.py -w -h然后导航到 http://localhost:8000
添加 ClickHouse MCP 服务器
添加 ClickHouse MCP 服务器后,情况会变得更有意思。
你需要更新 .chainlit/config.toml 文件,以允许使用 uv 命令:
[features.mcp.stdio]
enabled = true
# 只有允许列表中的可执行文件才能用于 MCP stdio 服务器。
# 只需提供可执行文件的基本名称,例如 "npx",而非 "/usr/bin/npx"。
# 请暂时不要注释此行,我们需要用它来解析可执行文件名称。
allowed_executables = [ "npx", "uvx", "uv" ]由于需要一些粘合代码来让 MCP 服务器 与 Chainlit 配合工作,因此我们需要 改为运行以下命令来启动 Chainlit:
uv run --with anthropic --with chainlit chainlit run chat_mcp.py -w -h要添加 MCP 服务器,请点击聊天界面中的插头图标,然后 添加以下命令以连接并使用 ClickHouse SQL Playground:
CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com CLICKHOUSE_USER=demo CLICKHOUSE_PASSWORD= CLICKHOUSE_SECURE=true uv run --with mcp-clickhouse --python 3.13 mcp-clickhouse如果你想使用自己的 ClickHouse 实例,可以调整这些环境变量的值。
然后你就可以像这样向它提问:
- 告诉我有哪些可供查询的表
- 纽约出租车有什么有趣之处?