mcpField
F
Focus_mcp_sql

Focus_mcp_sql

本地服务
datafocus.ai数据库3880 周前更新

关于 Focus_mcp_sql

focus_mcp_sql 是基于 FocusSearch 关键词解析的 NL2SQL MCP 服务,可将自然语言转换为 SQL 语句。它采用关键词加 SQL 的两步生成方式,便于非技术用户核对生成结果。

主要功能

  1. 01两步生成:先生成关键词,再转换为 SQL
  2. 02关键词可视化核对,降低幻觉风险
  3. 03提供 gptText2sqlStart 与 gptText2sqlChat 工具
  4. 04支持中英文语言设置

适用场景

  1. 01非技术用户通过自然语言查询数据库
  2. 02在 AI 助手中进行数据问答
  3. 03基于表结构与关联关系生成查询语句

MCP 相关

该项目是 MCP 服务,向 AI 助手提供初始化模型与自然语言转 SQL 的工具,需要 DataFocus 的 Bearer Token。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

FOCUS DATA MCP Server [中文]

Model Context Protocol(MCP)服务可帮助人工智能助手将自然语言转换为 SQL 语句。

Text-to-SQL 框架已经这么多了,为什么还需要另一个?

简单来说,focus_mcp_sql 采用两步 SQL 生成方案,可控制大模型的幻觉,真正建立非技术用户对所生成 SQL 结果的信任。

以下是 focus_mcp_sql 与其他方案的对比表:

对比分析表

以下是 focus_mcp_sql 与其他基于大模型的框架的并列对比:

特性传统大模型框架focus_mcp_sql
生成流程黑盒,直接生成 SQL透明,两步生成(关键词 + SQL)
幻觉风险高,取决于模型质量低,可控(关键词验证)
速度慢,依赖大模型推理快,关键词确定性转换为 SQL
成本高,需要高级模型低,减少对大模型的依赖
对非技术用户的友好程度低,难以验证结果高,便于检查关键词

功能

-初始化模型 -将自然语言转换为 SQL 语句

前提条件

  • jdk 23 或更高版本。下载 jdk
  • gradle 8.12 或更高版本。下载 gradle
  • 注册 Datafocus 以获取 bearer token:
    1. 在 Datafocus 注册账号
    2. 创建应用
    3. 进入应用
    4. 管理员 -> 接口认证 -> Bearer Token -> 新建 Bearer Token bearer token

安装

  1. 克隆此仓库:
git clone https://github.com/FocusSearch/focus_mcp_sql.git
cd focus_mcp_sql
  1. 构建服务:
gradle clean
gradle bootJar

The jar path: build/libs/focus_mcp_sql.jar

MCP 配置

将服务添加到 MCP 设置文件中:

{
  "mcpServers": {
    "focus_mcp_data": {
      "command": "java",
      "args": [
        "-jar",
        "path/to/focus_mcp_sql/focus_mcp_sql.jar"
      ],
      "autoApprove": [
        "gptText2sqlStart",
        "gptText2sqlChat"
      ]
    }
  }
}

可用工具

1. gptText2sqlStart

初始化模型。

参数:

  • model(必需):表模型
  • bearer(必需):bearer token
  • language(可选):语言 ['english','chinese']

示例:

{
  "model": {
    "tables": [
      {
        "columns": [
          {
            "columnDisplayName": "name",
            "dataType": "string",
            "aggregation": "",
            "columnName": "name"
          },
          {
            "columnDisplayName": "address",
            "dataType": "string",
            "aggregation": "",
            "columnName": "address"
          },
          {
            "columnDisplayName": "age",
            "dataType": "int",
            "aggregation": "SUM",
            "columnName": "age"
          },
          {
            "columnDisplayName": "date",
            "dataType": "timestamp",
            "aggregation": "",
            "columnName": "date"
          }
        ],
        "tableDisplayName": "test",
        "tableName": "test"
      }
    ],
    "relations": [

    ],
    "type": "mysql",
    "version": "8.0"
  },
  "bearer": "ZTllYzAzZjM2YzA3NDA0ZGE3ZjguNDJhNDjNGU4NzkyYjY1OTY0YzUxYWU5NmU="
}

model 参数说明:

名称位置类型必选说明
modelbodyobject是none
» typebodystring是数据库类型
» versionbodystring是数据库版本
» tablesbody[object]是表结构列表
»» tableDisplayNamebodystring否表显示名
»» tableNamebodystring否表原始名
»» columnsbody[object]否表列列表
»»» columnDisplayNamebodystring是列显示名
»»» columnNamebodystring是列原始名
»»» dataTypebodystring是列数据类型
»»» aggregationbodystring是列聚合方式
» relationsbody[object]是表关联关系列表
»» conditionsbody[object]否关联条件
»»» dstColNamebodystring否dimension 表关联列原始名
»»» srcColNamebodystring否fact 表关联列原始名
»» dimensionTablebodystring否dimension 表原始名
»» factTablebodystring否fact 表原始名
»» joinTypebodystring否关联类型
2. gptText2sqlChat

将自然语言转换为 SQL。

参数:

  • chatId(必需):聊天 ID
  • input(必需):自然语言
  • bearer(必需):bearer token

示例:

{
  "chatId": "03975af5de4b4562938a985403f206d4",
  "input": "what is the max age",
  "bearer": "ZTllYzAzZjM2YzA3NDA0ZGE3ZjguNDJhNDjNGU4NzkyYjY1OTY0YzUxYWU5NmU="
}

响应格式

所有工具均以以下格式返回响应:

{
  "errCode": 0,
  "exception": "",
  "msgParams": null,
  "promptMsg": null,
  "success": true,
  "data": {
  }
}

Visual Studio Code Cline 示例

  1. 在 vsCode 中安装 cline 插件
  2. 配置 mcp 服务 配置 mcp 服务
  3. 使用
    1. 初始化模型 初始化模型1 初始化模型2
    2. 转换:最大年龄是多少 聊天

联系方式:

https://discord.gg/mFa3yeq9 Datafocus

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。