项目简介
该项目提供一个基于Model Context Protocol (MCP) 的后端服务器,专门用于处理SQLite数据库操作。它结合了Ollama大语言模型的能力,将用户输入的自然语言问题智能地转换为SQL查询,并执行这些查询以获取数据。项目还包含一个Web前端,提供聊天界面,方便用户通过对话方式与数据库进行交互。
主要功能点
- 智能SQL查询: 接受自然语言提问,通过集成Ollama大模型,自动生成并执行相应的SQL查询,无需手动编写SQL语句。
- 数据库交互: 提供统一的接口,安全高效地访问和操作SQLite数据库中的数据。服务器预置了用户、帖子和评论等示例数据表。
- MCP协议支持: 完全遵循Model Context Protocol (MCP),通过标准化的JSON-RPC协议与LLM客户端通信,提供上下文信息和工具调用能力。
- 会话管理与缓存: 支持会话管理,并包含SQL查询缓存机制,优化重复查询的响应速度。
- 易于部署: 基于Node.js和TypeScript构建,依赖轻量级的SQLite,易于安装和运行。
安装步骤
- 安装Ollama及模型:
首先,请安装 Ollama。安装完成后,运行以下命令下载并启动 'qwen2.5:latest' 模型:
(您可以根据需要安装和使用其他兼容模型。)ollama run qwen2.5:latest - 安装服务器依赖:
进入项目根目录下的 'server' 目录,并安装其依赖:
cd server npm install - 初始化数据库:
在 'server' 目录下,运行数据库初始化脚本,创建表结构并填充示例数据:
npm run init:db
服务器配置
MCP客户端需要以下信息来连接和使用此MCP服务器。以下是一个配置示例,您可以参考它来在您的MCP客户端中设置此服务器。请注意,'command' 和 'args' 是用于启动服务器进程的,而 'capabilities' 是服务器启动后向客户端声明的。
{ "name": "demo-server", "command": "npm", "args": ["run", "start"], "description": "一个MCP服务器,提供通过LLM将自然语言转换为SQL查询并执行数据库操作的能力。", "capabilities": { "tools": [ { "name": "sql-query-tool", "title": "SQL Query Tool", "description": "通过自然语言提问,获取SQL查询及其执行结果。", "inputSchema": { "type": "object", "properties": { "question": { "type": "string", "description": "要转化为SQL查询的自然语言问题。" } }, "required": [ "question" ] }, "outputSchema": { "type": "object", "properties": { "sql": { "type": "string", "description": "生成的SQL查询语句。" }, "result": { "type": "array", "description": "SQL查询的执行结果。" } } } } ] } }
- name: 'demo-server'。这是服务器在其MCP声明中指定的名称。
- command: 'npm'。这是用于启动服务器进程的执行命令。
- args: '["run", "start"]'。这是传递给 'npm' 命令的参数,指示执行 'server' 目录下的 'start' 脚本。
- workingDirectory (在MCP客户端配置中设置): 您的MCP客户端在启动此服务器时,需要将工作目录设置为项目根目录下的 'server' 文件夹(例如:'/path/to/MCP-SQL-Server/server'),以便 'npm run start' 命令能正确执行。
- description: 对服务器功能的简要描述。
- capabilities: 服务器启动后,会自动向客户端声明其所提供的功能。此处展示的是服务器注册的 'sql-query-tool' 工具的详细信息,包括其标题、描述、输入参数 ('inputSchema') 和输出结果 ('outputSchema')。
基本使用方法
-
启动MCP服务器: 在项目根目录下的 'server' 文件夹中运行:
cd server npm run start服务器将在 'http://localhost:3001' 端口启动,并监听 '/mcp' 路径的MCP请求。
-
启动Web前端(可选,用于演示): 如果需要通过项目提供的Web界面进行交互,在项目根目录下的 'gpt-db-chat' 文件夹中运行:
cd gpt-db-chat npm run devWeb应用通常会在 'http://localhost:5173' 启动。通过前端界面,您可以直接输入自然语言问题,前端会通过MCP协议调用后端服务器的 'sql-query-tool' 工具来获取并展示SQL查询及其执行结果。
-
通过MCP客户端调用: 配置好您的MCP客户端后(参考“服务器配置”部分),您可以像调用任何其他MCP工具一样,向此服务器发送请求以执行 'sql-query-tool'。例如,一个LLM客户端可以向服务器发送一个包含 'sql-query-tool' 调用和 '{"question": "所有用户的名称和邮箱"}' 参数的请求,服务器将返回相应的SQL查询和数据库结果。
信息
分类
数据库与文件