关于 Focus_mcp_sql
focus_mcp_sql 是基于 FocusSearch 关键词解析的 NL2SQL MCP 服务,可将自然语言转换为 SQL 语句。它采用关键词加 SQL 的两步生成方式,便于非技术用户核对生成结果。
主要功能
- 01两步生成:先生成关键词,再转换为 SQL
- 02关键词可视化核对,降低幻觉风险
- 03提供 gptText2sqlStart 与 gptText2sqlChat 工具
- 04支持中英文语言设置
适用场景
- 01非技术用户通过自然语言查询数据库
- 02在 AI 助手中进行数据问答
- 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:
- 在 Datafocus 注册账号
- 创建应用
- 进入应用
- 管理员 -> 接口认证 -> Bearer Token -> 新建 Bearer Token

安装
- 克隆此仓库:
git clone https://github.com/FocusSearch/focus_mcp_sql.git
cd focus_mcp_sql
- 构建服务:
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 tokenlanguage(可选):语言 ['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 参数说明:
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| model | body | object | 是 | none |
| » type | body | string | 是 | 数据库类型 |
| » version | body | string | 是 | 数据库版本 |
| » tables | body | [object] | 是 | 表结构列表 |
| »» tableDisplayName | body | string | 否 | 表显示名 |
| »» tableName | body | string | 否 | 表原始名 |
| »» columns | body | [object] | 否 | 表列列表 |
| »»» columnDisplayName | body | string | 是 | 列显示名 |
| »»» columnName | body | string | 是 | 列原始名 |
| »»» dataType | body | string | 是 | 列数据类型 |
| »»» aggregation | body | string | 是 | 列聚合方式 |
| » relations | body | [object] | 是 | 表关联关系列表 |
| »» conditions | body | [object] | 否 | 关联条件 |
| »»» dstColName | body | string | 否 | dimension 表关联列原始名 |
| »»» srcColName | body | string | 否 | fact 表关联列原始名 |
| »» dimensionTable | body | string | 否 | dimension 表原始名 |
| »» factTable | body | string | 否 | fact 表原始名 |
| »» joinType | body | string | 否 | 关联类型 |
2. gptText2sqlChat
将自然语言转换为 SQL。
参数:
chatId(必需):聊天 IDinput(必需):自然语言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 示例
- 在 vsCode 中安装 cline 插件
- 配置 mcp 服务

- 使用
- 初始化模型

- 转换:最大年龄是多少

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