返回市场
kdb-x-MCP服务器

kdb-x-MCP服务器

作者:KxSystems7 星标更新:2025-10-28

项目介绍

KDB-X MCP 服务器

此服务器使最终用户能够通过自然语言查询 KDB-X 数据,提供生产级别的资源、提示和工具,以实现无缝的数据交互。

基于可扩展框架和可配置模板构建,允许通过自定义集成进行直观扩展,以满足您的特定需求。

该服务器利用精心策划的资源、智能提示和强大的工具,为与 KDB-X 交互的用户和 AI 模型提供适当的指导和限制。

目录

支持的环境

下表显示了支持的操作系统安装选项:

主要操作系统KDB-XKDB+MCP 服务器UV/NPX
Mac✅ 本地✅ 本地✅ 本地✅ 本地
Linux✅ 本地✅ 本地✅ 本地✅ 本地
WSL✅ 本地✅ 本地✅ 本地✅ 本地
Windows⚠️ WSL✅ 本地⚠️ WSL✅ 本地
Windows⚠️ WSL✅ 本地✅ 本地✅ 本地
Windows⚠️ 远程 Linux✅ 本地✅ 本地✅ 本地

KDB-X MCP 服务器可以连接到一个 KDB 服务——要么是 KDB-X,要么是 KDB+,但不能同时连接两者。 所选的 KDB 服务需要在主机和端口上监听,以便 KDB-X MCP 服务器可以访问。

  • KDB-X: 仅适用于 Mac/Linux/WSL(不支持 Windows)
  • KDB+: 适用于 Windows/Mac/Linux/WSL
  • MCP 服务器: 需要 UV(适用于 Windows/Mac/Linux/WSL)
  • UV: 运行 MCP 服务器所需
  • NPX: 使用 Claude Desktop 的 streamable-http 传输时需要
  • Stdio 传输: 当您的 MCP 客户端和 MCP 服务器在同一主机上运行时才有效

有关 MCP 客户端的详细信息,请参阅 MCP 客户端配置

前提条件

在安装和运行 KDB-X MCP 服务器之前,请确保您已满足以下要求:

  • 克隆此仓库
  • 一个 KDB-X/KDB+ 服务正在监听主机和端口,以便 MCP 服务器可以访问
    • 请参阅示例 - KDB-X 设置 / KDB+ 设置
    • KDB-X 可以通过注册 KDB-X 公共预览版 来安装 - 请参阅 KDB-X 文档 获取更多信息
    • Windows 用户可以在 Windows 上运行 KDB-X MCP 服务器,并通过 WSL 或远程 Linux 上运行的 KDB-X 数据库连接到本地 KDB-X 数据库
    • Windows 用户可以通过安装 KDB-X 在 WSL 上运行本地 KDB-X 数据库,并在运行 KDB-X MCP 服务器 时使用默认的 streamable-http 传输 - 两者共享相同的 localhost 网络。
    • 有关 KDB-X 使用限制的详细信息,请参阅 文档
  • 安装 UV 以运行 KDB-X MCP 服务器 - 适用于 Windows/Mac/Linux/WSL
  • 安装 MCP 客户端 - 请参阅 MCP 客户端配置
  • 使用 Claude Desktop 的 streamable-http 传输时需要 NPX
    • 如果您使用的是不同的 MCP 客户端,则可能不需要 npx - 请咨询您选择的 MCP 客户端文档
    • npx 包含在 nodejs 安装程序中 - 适用于 Windows/Mac/Linux/WSL
    • 请参阅 使用 streamable-http 的示例配置

注意:⚠️ KDB-X 公共预览版最近进行了延期。如果您在 2025 年 9 月 30 日之前安装了 KDB-X,您将收到关于此更新的通知。请更新至最新版本的 KDB-X,以确保在 2025 年 12 月 31 日之前不间断地访问。

快速入门

为了演示 KDB-X MCP 服务器的基本用法,使用空的 KDB-X 数据库,请按照以下快速入门步骤操作。

注意:请确保您已经遵循了必要的 前提条件步骤

  1. 打开一个监听端口的 KDB-X 服务。

    默认情况下,KDB-X MCP 服务器将连接到 KDB-X 服务的 5000 端口 - 但可以通过命令行标志或环境变量更改

    注意:目前 KDB-X 不支持 Windows - 如果您使用的是 Windows,我们建议您按照 前提条件步骤 中所述在 WSL 上运行 KDB-X。

    q -p 5000
    
  2. 加载 ai 和 sql 接口。

    .ai:use`kx.ai
    .s.init[]
    
  3. 添加一个虚拟表,例如 trade

    rows:10000;
    trade:([]time:.z.d+asc rows?.z.t;sym:rows?`AAPL`GOOG`MSFT`TSLA`AMZN;price:rows?100f;size:rows?1000);
    
  4. 配置您的 MCP 客户端 以使用您选择的传输方式。

  5. 启动您的 MCP 服务器

    如果您已经使用 stdio 传输 配置了您的 MCP 客户端,则无需执行此步骤。请跳到下一步(您的 MCP 客户端会为您管理启动 MCP 服务器)。

    uv run mcp-server
    
  6. 启动您的 MCP 客户端并验证工具、提示和资源部分是否可见。请参阅您的特定 MCP 客户端配置 以获取这些细节。

  7. 加载数据库上下文:选择 kdbx_describe_tableskdbx_sql_query_guidance 资源 并将其添加到您的对话中。这将为您提供 MCP 客户端对数据库结构和可用表的概述,以及编写有效 SQL 查询的指南。

  8. 探索特定表:使用 kdbx_table_analysis 提示 获取数据库中各个表的详细分析和见解。

  9. 使用自然语言提问:使用纯英语与您的 KDB-X 数据库互动。您的 MCP 客户端将自动使用 kdbx_run_sql_query 工具 根据您的请求执行相应的查询。

特性

  • KDB-X 的 SQL 接口:针对 KDB-X 数据库运行 SELECT SQL 查询
  • 内置查询安全性保护:自动检测并阻止危险的 SQL 操作,如 INSERT、DROP、DELETE 等
  • 智能查询结果优化:智能结果截断(最多 1000 行),并明确告知数据限制
  • LLM 的 SQL 查询指南:全面的 LLM 就绪 MCP 资源(file://guidance/kdb-sql-queries),包括语法示例和最佳实践
  • 数据库模式发现:使用包含的 MCP 资源快速了解数据库表和结构,获得智能见解
  • 自动发现系统:从各自目录自动发现和注册工具、资源和提示
  • 健壮的连接管理:具有自动重试逻辑和连接缓存的强大 KDB-X 连接处理
  • 现成的扩展模板:带有最佳实践和文档的现成工具、资源和提示模板,用于扩展功能
  • 统一智能:提示、工具及 MCP 资源协同工作:智能提示、专用工具和精选 MCP 资源的强强联合,共同提供快速、优化且上下文感知的结果。
  • 支持 HTTP 流式协议:支持最新的 MCP 流式 HTTP 协议,以实现高效的数据流,同时自动阻止已弃用的 SSE 协议。

KDB-X 设置

KDB-X MCP 服务器连接到指定主机和端口上的 KDB-X 服务。

要启动 KDB-X 服务并使其本地可访问,您可以运行:

q -p 5000

KDB-X MCP 服务器使用其 SQL 接口与 KDB-X 服务通信。

加载 SQL 接口:

.s.init[]

使用 AI 工具与 KDB-X

注意:KDB+ 用户无法访问相似度搜索工具

要启用以下工具:

  • "kdbx_similarity_search"
  • "kdbx_hybrid_search"

与 KDB-X MCP 服务器一起使用,您需要:

  • 运行 KDB-X 版本 0.1.2 或更高版本
  • 在 KDB-X 会话中通过以下方式加载 ai-libs 模块:
.ai:use`kx.ai

KDB+ 设置

KDB-X MCP 服务器连接到指定主机和端口上的 KDB+ 服务。

要启动 KDB+ 服务并使其本地可访问,您可以运行:

q -p 5000

KDB-X MCP 服务器使用其 SQL 接口与 KDB+ 服务通信。

当使用 KDB+ 时,必须在您的 QHOME 中存在一个 s.k_ 文件 - 此文件捆绑在 insights core 中

加载 SQL 接口:

\l s.k_

MCP 服务器安装

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 作为前提条件:

  • 您可以按照 kdb+ SSL/TLS 指南 来设置 KDB-X 数据库的 TLS
  • 如果您使用的是自签名证书:
    • 您需要指定自签名 CA 证书的位置
    • 设置 KX_SSL_CA_CERT_FILE 环境变量指向 KDB-X 数据库使用的 CA 证书文件
    • 或者,您可以通过设置 KX_SSL_VERIFY_SERVER=NO 来绕过证书验证,用于开发和测试

加密 MCP 客户端连接

如果您需要在 MCP 客户端和 KDB-X MCP 服务器之间建立加密连接:

  • KDB-X MCP 服务器默认使用 streamable-http 传输,并在 127.0.0.1:8000 启动一个 localhost 服务器。我们不建议公开此服务器。
  • 您可以选择在 KDB-X MCP 服务器前面设置一个 HTTPS 代理,例如 envoynginx 以终止 HTTPS
  • 当使用 stdio 传输时,这不需要,因为通信是通过同一主机的标准输入/输出流进行的

注意: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