使用说明

项目简介

KWDB MCP Server 是一个基于 Model Context Protocol (MCP) 协议的服务端实现,它为 LLM 客户端提供了一套工具和资源,用于与 KWDB 数据库进行交互,并通过 MCP 协议提供业务智能功能。该服务器支持数据的读取、写入、查询、修改以及 DDL 操作,旨在构建 LLM 应用与 KaiwuDB 数据库之间的桥梁。

主要功能点

  • 资源 (Resources) 管理: 托管和管理产品信息、数据库元数据、表结构等资源,并通过 URI 格式对外提供数据访问能力。
  • 工具 (Tools) 注册与执行: 提供 'read-query' 和 'write-query' 工具,允许 LLM 客户端通过调用这些工具执行 SQL 查询和数据操作。
  • Prompt 模板 (Prompts) 定义与渲染: 预置了多种 Prompt 模板,如数据库描述、语法指南等,支持 LLM 客户端获取并使用这些模板进行交互。
  • 标准 API 响应: 所有 API 响应都采用一致的 JSON 结构,包含状态、类型、数据和错误信息,方便客户端解析。
  • 自动 LIMIT: 对于 'SELECT' 查询,服务器自动添加 'LIMIT 20' 子句,防止返回过大的结果集。
  • 安全措施: 区分读写操作工具,进行查询验证,并提供清晰的错误信息,保障操作安全。
  • 多种传输协议: 支持 StdIO 和 HTTP SSE 两种传输模式,适应不同的部署和应用场景。

安装步骤

  1. 环境准备:

    • 安装 Go 1.23 或更高版本。
    • 安装 PostgreSQL Driver 'lib/pq'。
    • 安装并启动 KWDB 数据库,并配置好用户权限。
  2. 下载仓库:

    git clone https://gitee.com/kwdb/kwdb-mcp-server
    cd kwdb-mcp-server

    git clone https://github.com/KWDB/kwdb-mcp-server
    cd kwdb-mcp-server
  3. 安装依赖:

    make deps
  4. 构建应用:

    make build

服务器配置

KWDB MCP Server 需要数据库连接字符串作为参数启动。以下是 MCP 客户端连接服务器时 'command' 和 'args' 字段的配置示例,请根据实际的数据库连接信息进行替换:

StdIO 模式配置 (默认)

{
  "serverName": "kwdb-mcp-server-stdio",
  "command": "./bin/kwdb-mcp-server",
  "args": [
    "postgresql://<username>:<password>@<hostname>:<port>/<database_name>?sslmode=disable"
  ]
}

SSE 模式配置

{
  "serverName": "kwdb-mcp-server-sse",
  "command": "./bin/kwdb-mcp-server",
  "args": [
    "-t", "sse",
    "-addr", ":8080",
    "-base-url", "http://localhost:8080",
    "postgresql://<username>:<password>@<hostname>:<port>/<database_name>?sslmode=disable"
  ]
}

参数说明:

  • '<username>': 连接 KWDB 数据库的用户名。
  • '<password>': 用户密码。
  • '<hostname>': KWDB 数据库服务器 IP 地址。
  • '<port>': KWDB 数据库端口号。
  • '<database_name>': 数据库名称。
  • 'sslmode': SSL 模式,根据需要配置,例如 'disable' 禁用 SSL。

基本使用方法

  1. 启动服务器: 根据选择的传输模式 (StdIO 或 SSE),使用上述配置示例中的命令启动 KWDB MCP Server。

  2. 客户端连接: 在 MCP 客户端中,配置服务器连接信息,包括服务器名称、启动命令及其参数。

  3. 资源访问: 客户端可以使用 'kwdb://product_info'、'kwdb://db_info/{database_name}'、'kwdb://table/{table_name}' 等 URI 格式访问服务器提供的资源。

  4. 工具调用: 客户端可以调用 'read-query' 和 'write-query' 工具执行 SQL 查询和数据操作。例如,调用 'read-query' 工具并传入 SQL 查询语句即可读取数据库数据。

  5. Prompt 使用: 客户端可以获取 'db_description'、'syntax_guide' 等 Prompt 模板,并根据需要渲染使用。

详细的集成和使用方法,请参考仓库中的文档 Integrate with LLM AgentsKWDB Documentation Website

信息

分类

数据库与文件