使用说明

项目简介

SQLite MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为 LLM 应用提供结构化数据访问和工具执行能力。它使用 SQLite 数据库作为数据存储,并暴露了一系列工具,允许 LLM 客户端通过标准化的 MCP 协议进行数据库操作、管理业务洞察,并使用预定义的 Prompt 模板。

主要功能点

  • SQLite 数据库操作: 支持常见的 SQL 操作,包括 SELECT 查询、数据插入、更新和删除。
  • 表管理: 允许 LLM 客户端创建、列出和描述数据库表结构。
  • 业务洞察记录: 提供记录和检索业务洞察的功能,方便 LLM 应用跟踪和利用分析结果。
  • Prompt 模板: 内置 Prompt 模板,支持根据用户输入动态生成 Prompt 内容,简化 LLM 交互流程。
  • 多种部署方式: 支持本地开发、Docker 和 Nixpacks 部署,方便用户快速搭建和部署服务。
  • SSE 和 HTTP 消息通道: 通过 SSE (Server-Sent Events) 和 HTTP POST 接口与 MCP 客户端通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/isaacgounton/sqlite-mcp-server.git
    cd sqlite-mcp-server
  2. 安装依赖并构建:
    npm install

服务器配置

MCP 客户端需要配置以下信息以连接到 SQLite MCP 服务器。以下是基于仓库信息生成的 JSON 格式配置,用于指导 MCP 客户端连接到本服务器:

{
  "serverName": "sqlite-server",
  "transport": "sse",
  "command": "npm",
  "args": ["start"],
  "stdio": false,
  "sseUrl": "http://localhost:3000/sse",
  "messagesPostEndpoint": "http://localhost:3000/messages"
}

配置参数说明:

  • 'serverName': 服务器名称,这里设置为 'sqlite-server',与代码中定义的服务名称一致。
  • 'transport': 传输协议,这里设置为 'sse',表明客户端将使用 SSE 与服务器通信。
  • 'command': 启动服务器的命令,这里使用 'npm'。
  • 'args': 启动命令的参数,这里使用 'start',对应 'package.json' 中定义的 'start' 脚本 ('node src/index.js').
  • 'stdio': 是否使用标准输入输出流进行通信,这里设置为 'false',因为使用了 SSE 协议。
  • 'sseUrl': SSE 连接的 URL,客户端通过此 URL 建立 SSE 连接接收服务器推送的消息。设置为 'http://localhost:3000/sse',与 'src/index.ts' 中 Express 服务器配置的 SSE 路由一致。
  • 'messagesPostEndpoint': 用于客户端向服务器发送消息的 HTTP POST 接口 URL。设置为 'http://localhost:3000/messages',与 'src/index.ts' 中 Express 服务器配置的消息接收路由一致。

注意:

  • 确保在运行 MCP 客户端之前,先启动 SQLite MCP 服务器。可以使用 'npm start' 命令启动服务器。
  • 上述配置假设服务器运行在本地 'localhost' 的 3000 端口。如果服务器部署在其他地址或端口,请相应修改 'sseUrl' 和 'messagesPostEndpoint'。

基本使用方法

  1. 启动服务器: 在仓库根目录下执行 'npm start' 命令启动服务器。
  2. 配置 MCP 客户端: 在 MCP 客户端中,根据上述 服务器配置 部分的信息,配置连接到 SQLite MCP 服务器。
  3. 使用工具 (Tools): 通过 MCP 客户端调用服务器提供的工具,例如:
    • 'read_query': 执行 SELECT 查询,例如 'SELECT * FROM users'。
    • 'write_query': 执行 INSERT、UPDATE 或 DELETE 查询,例如 'INSERT INTO users (name) VALUES ('New User')'。
    • 'create_table': 创建新表,例如 'CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price REAL)'。
    • 'list_tables': 获取数据库中所有表的列表。
    • 'describe_table': 查看指定表的结构信息,例如 'describe_table users'。
    • 'append_insight': 添加业务洞察记录,例如 'append_insight {"insight": "用户增长趋势明显。"}'。
  4. 使用资源 (Resources): 通过 MCP 客户端读取服务器提供的资源,例如:
    • 'memo://insights': 读取业务洞察记录。
  5. 使用 Prompt 模板 (Prompts): 通过 MCP 客户端获取和使用预定义的 Prompt 模板,例如 'mcp-demo' 模板,并传入参数 'topic' 以生成定制化的 Prompt。

示例 (通过 MCP 客户端调用工具):

假设 MCP 客户端提供了 'callTool' 函数,可以像 README.md 中示例那样调用工具:

// 创建表
await callTool('create_table', {
  query: 'CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)'
});

// 插入数据
await callTool('write_query', {
  query: 'INSERT INTO users (name) VALUES ("John Doe")'
});

// 查询数据
const result = await callTool('read_query', {
  query: 'SELECT * FROM users'
});
console.log(result);

// 添加业务洞察
await callTool('append_insight', {
  insight: '成功创建并查询了用户表。'
});

// 读取业务洞察记录
const insights = await readResource('memo://insights');
console.log(insights);

请参考 MCP 客户端的具体文档,了解如何配置和使用 MCP 服务器。

信息

分类

数据库与文件