使用说明
项目简介
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 两种传输模式,适应不同的部署和应用场景。
安装步骤
-
环境准备:
- 安装 Go 1.23 或更高版本。
- 安装 PostgreSQL Driver 'lib/pq'。
- 安装并启动 KWDB 数据库,并配置好用户权限。
-
下载仓库:
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 -
安装依赖:
make deps -
构建应用:
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。
基本使用方法
-
启动服务器: 根据选择的传输模式 (StdIO 或 SSE),使用上述配置示例中的命令启动 KWDB MCP Server。
-
客户端连接: 在 MCP 客户端中,配置服务器连接信息,包括服务器名称、启动命令及其参数。
-
资源访问: 客户端可以使用 'kwdb://product_info'、'kwdb://db_info/{database_name}'、'kwdb://table/{table_name}' 等 URI 格式访问服务器提供的资源。
-
工具调用: 客户端可以调用 'read-query' 和 'write-query' 工具执行 SQL 查询和数据操作。例如,调用 'read-query' 工具并传入 SQL 查询语句即可读取数据库数据。
-
Prompt 使用: 客户端可以获取 'db_description'、'syntax_guide' 等 Prompt 模板,并根据需要渲染使用。
详细的集成和使用方法,请参考仓库中的文档 Integrate with LLM Agents 和 KWDB Documentation Website。
信息
分类
数据库与文件