使用说明
项目简介
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 客户端通信。
安装步骤
- 克隆仓库:
git clone https://github.com/isaacgounton/sqlite-mcp-server.git cd sqlite-mcp-server - 安装依赖并构建:
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'。
基本使用方法
- 启动服务器: 在仓库根目录下执行 'npm start' 命令启动服务器。
- 配置 MCP 客户端: 在 MCP 客户端中,根据上述 服务器配置 部分的信息,配置连接到 SQLite MCP 服务器。
- 使用工具 (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": "用户增长趋势明显。"}'。
- 使用资源 (Resources): 通过 MCP 客户端读取服务器提供的资源,例如:
- 'memo://insights': 读取业务洞察记录。
- 使用 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 服务器。
信息
分类
数据库与文件