项目简介

该项目提供一个基于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,易于安装和运行。

安装步骤

  1. 安装Ollama及模型: 首先,请安装 Ollama。安装完成后,运行以下命令下载并启动 'qwen2.5:latest' 模型:
    ollama run qwen2.5:latest
    (您可以根据需要安装和使用其他兼容模型。)
  2. 安装服务器依赖: 进入项目根目录下的 'server' 目录,并安装其依赖:
    cd server
    npm install
  3. 初始化数据库: 在 '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')。

基本使用方法

  1. 启动MCP服务器: 在项目根目录下的 'server' 文件夹中运行:

    cd server
    npm run start

    服务器将在 'http://localhost:3001' 端口启动,并监听 '/mcp' 路径的MCP请求。

  2. 启动Web前端(可选,用于演示): 如果需要通过项目提供的Web界面进行交互,在项目根目录下的 'gpt-db-chat' 文件夹中运行:

    cd gpt-db-chat
    npm run dev

    Web应用通常会在 'http://localhost:5173' 启动。通过前端界面,您可以直接输入自然语言问题,前端会通过MCP协议调用后端服务器的 'sql-query-tool' 工具来获取并展示SQL查询及其执行结果。

  3. 通过MCP客户端调用: 配置好您的MCP客户端后(参考“服务器配置”部分),您可以像调用任何其他MCP工具一样,向此服务器发送请求以执行 'sql-query-tool'。例如,一个LLM客户端可以向服务器发送一个包含 'sql-query-tool' 调用和 '{"question": "所有用户的名称和邮箱"}' 参数的请求,服务器将返回相应的SQL查询和数据库结果。

信息

分类

数据库与文件