此服务器使最终用户能够通过自然语言查询 KDB-X 数据,提供生产级别的资源、提示和工具,以实现无缝的数据交互。
基于可扩展框架和可配置模板构建,允许通过自定义集成进行直观扩展,以满足您的特定需求。
该服务器利用精心策划的资源、智能提示和强大的工具,为与 KDB-X 交互的用户和 AI 模型提供适当的指导和限制。
下表显示了支持的操作系统安装选项:
| 主要操作系统 | KDB-X | KDB+ | MCP 服务器 | UV/NPX |
|---|---|---|---|---|
| Mac | ✅ 本地 | ✅ 本地 | ✅ 本地 | ✅ 本地 |
| Linux | ✅ 本地 | ✅ 本地 | ✅ 本地 | ✅ 本地 |
| WSL | ✅ 本地 | ✅ 本地 | ✅ 本地 | ✅ 本地 |
| Windows | ⚠️ WSL | ✅ 本地 | ⚠️ WSL | ✅ 本地 |
| Windows | ⚠️ WSL | ✅ 本地 | ✅ 本地 | ✅ 本地 |
| Windows | ⚠️ 远程 Linux | ✅ 本地 | ✅ 本地 | ✅ 本地 |
KDB-X MCP 服务器可以连接到一个 KDB 服务——要么是 KDB-X,要么是 KDB+,但不能同时连接两者。 所选的 KDB 服务需要在主机和端口上监听,以便 KDB-X MCP 服务器可以访问。
有关 MCP 客户端的详细信息,请参阅 MCP 客户端配置
在安装和运行 KDB-X MCP 服务器之前,请确保您已满足以下要求:
KDB-X/KDB+ 服务正在监听主机和端口,以便 MCP 服务器可以访问
streamable-http 传输时需要 NPX
npx - 请咨询您选择的 MCP 客户端文档npx 包含在 nodejs 安装程序中 - 适用于 Windows/Mac/Linux/WSL注意:⚠️ KDB-X 公共预览版最近进行了延期。如果您在 2025 年 9 月 30 日之前安装了 KDB-X,您将收到关于此更新的通知。请更新至最新版本的 KDB-X,以确保在 2025 年 12 月 31 日之前不间断地访问。
为了演示 KDB-X MCP 服务器的基本用法,使用空的 KDB-X 数据库,请按照以下快速入门步骤操作。
注意:请确保您已经遵循了必要的 前提条件步骤
打开一个监听端口的 KDB-X 服务。
默认情况下,KDB-X MCP 服务器将连接到 KDB-X 服务的 5000 端口 - 但可以通过命令行标志或环境变量更改。
注意:目前 KDB-X 不支持 Windows - 如果您使用的是 Windows,我们建议您按照 前提条件步骤 中所述在 WSL 上运行 KDB-X。
q -p 5000
加载 ai 和 sql 接口。
.ai:use`kx.ai
.s.init[]
添加一个虚拟表,例如 trade。
rows:10000;
trade:([]time:.z.d+asc rows?.z.t;sym:rows?`AAPL`GOOG`MSFT`TSLA`AMZN;price:rows?100f;size:rows?1000);
配置您的 MCP 客户端 以使用您选择的传输方式。
如果您已经使用 stdio 传输 配置了您的 MCP 客户端,则无需执行此步骤。请跳到下一步(您的 MCP 客户端会为您管理启动 MCP 服务器)。
uv run mcp-server
启动您的 MCP 客户端并验证工具、提示和资源部分是否可见。请参阅您的特定 MCP 客户端配置 以获取这些细节。
加载数据库上下文:选择 kdbx_describe_tables 和 kdbx_sql_query_guidance 资源 并将其添加到您的对话中。这将为您提供 MCP 客户端对数据库结构和可用表的概述,以及编写有效 SQL 查询的指南。
探索特定表:使用 kdbx_table_analysis 提示 获取数据库中各个表的详细分析和见解。
使用自然语言提问:使用纯英语与您的 KDB-X 数据库互动。您的 MCP 客户端将自动使用 kdbx_run_sql_query 工具 根据您的请求执行相应的查询。
KDB-X MCP 服务器连接到指定主机和端口上的 KDB-X 服务。
要启动 KDB-X 服务并使其本地可访问,您可以运行:
q -p 5000
KDB-X MCP 服务器使用其 SQL 接口与 KDB-X 服务通信。
加载 SQL 接口:
.s.init[]
注意:KDB+ 用户无法访问相似度搜索工具
要启用以下工具:
与 KDB-X MCP 服务器一起使用,您需要:
.ai:use`kx.ai
KDB-X MCP 服务器连接到指定主机和端口上的 KDB+ 服务。
要启动 KDB+ 服务并使其本地可访问,您可以运行:
q -p 5000
KDB-X MCP 服务器使用其 SQL 接口与 KDB+ 服务通信。
当使用 KDB+ 时,必须在您的 QHOME 中存在一个 s.k_ 文件 - 此文件捆绑在 insights core 中
加载 SQL 接口:
\l s.k_
MCP 服务器可以在 Windows、Mac、Linux 和 WSL 上安装。
git clone https://github.com/KxSystems/kdb-x-mcp-server.git
cd kdb-x-mcp-server
服务器默认使用 streamable-http 传输启动。
对于安装了 WSL 的 Windows 用户 - 当使用 streamable-http 传输时,MCP 服务器可以在 Windows 或 WSL 上运行。在这两种情况下,MCP 服务器都将在同一共享的 localhost 网络上可用。MCP 客户端(运行在 Windows 上)将通过 localhost 连接。因此,此仓库可以克隆到 Windows 或 WSL。uv 需要在 MCP 服务器运行的操作系统上安装。
如果您在 Windows 上使用 stdio,您的 MCP 客户端将管理启动和停止 MCP 服务器。因此,此仓库需要克隆到 Windows 文件系统。uv 需要在 Windows 上安装。
uv run mcp-server
有关支持的传输的更多信息,请参阅官方文档
注意:我们不支持 sse 传输(服务器发送事件),因为它自协议版本 2024-11-05 起已被弃用。
为了简化开始使用,我们建议将您的 MCP 客户端、KDB-X MCP 服务器和 KDB-X 数据库放在同一个内部网络中。
如果您需要在 KDB-X MCP 服务器和 KDB-X 数据库之间建立加密连接,可以启用 TLS 并设置 --db.tls=true
这需要在 KDB-X 数据库上设置 TLS 作为前提条件:
KX_SSL_CA_CERT_FILE 环境变量指向 KDB-X 数据库使用的 CA 证书文件KX_SSL_VERIFY_SERVER=NO 来绕过证书验证,用于开发和测试如果您需要在 MCP 客户端和 KDB-X MCP 服务器之间建立加密连接:
注意:FastMCP v2 已被评估用于其身份验证功能,但 KDB-X MCP 服务器暂时仍停留在 v1,以保持广泛的模型兼容性,直到客户端/模型赶上,届时我们将进行过渡。
uv run mcp-server -h
usage: mcp-server [-h] [--mcp.server-name str] [--mcp.log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
[--mcp.transport {stdio,streamable-http}] [--mcp.port int] [--mcp.host str] [--db.host str]
[--db.port int] [--db.username str] [--db.password SecretStr] [--db.tls bool] [--db.timeout int]
[--db.retry int] [--db.embedding-csv-path str] [--db.metric str] [--db.k int]
KDB-X MCP 服务器,使用自然语言与 KDB-X 交互
选项:
-h, --help 显示此帮助信息并退出
mcp 选项:
MCP 服务器配置和传输设置
--mcp.server-name str
MCP 服务器实例的名称标识符 [env: KDBX_MCP_SERVER_NAME] (默认: KDBX_MCP_Server)
--mcp.log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
日志记录详细程度 [env: KDBX_MCP_LOG_LEVEL] (默认: INFO)
--mcp.transport {stdio,streamable-http}
通信协议:'stdio'(管道)或 'streamable-http'(HTTP 服务器) [env: KDBX_MCP_TRANSPORT] (默认: streamable-http)
--mcp.port int HTTP 服务器端口 - 使用 stdio 传输时忽略 [env: KDBX_MCP_PORT] (默认: 8000)
--mcp.host str HTTP 服务器绑定地址 - 使用 stdio 传输时忽略 [env: KDBX_MCP_HOST] (默认: 127.0.0.1)
db 选项:
KDB-X 数据库连接设置
--db.host str KDB-X 服务器主机名或 IP 地址 [env: KDBX_DB_HOST] (默认: 127.0.0.1)
--db.port int KDB-X 服务器端口号 [env: KDBX_DB_PORT] (默认: 5000)
--db.username str KDB-X 认证用户名 [env: KDBX_DB_USERNAME] (默认: )
--db.password SecretStr
KDB-X 认证密码 [env: KDBX_DB_PASSWORD] (默认: )
--db.tls bool 启用 KDB-X 连接的 TLS。使用 TLS 时,您需要设置环境变量 `KX_SSL_CA_CERT_FILE`,指向您本地文件系统上 KDB-X 服务器使用的证书。对于本地开发和测试,您可以设置 `KX_SSL_VERIFY_SERVER=NO` 来绕过此要求 [env: KDBX_DB_TLS] (默认: False)
--db.timeout int KDB-X 连接尝试超时时间(秒) [env: KDBX_DB_TIMEOUT] (默认: 1)
--db.retry int 失败时的连接重试次数 [env: KDBX_DB_RETRY] (默认: 2)
--db.embedding-csv-path str