focus_mcp_sql
Similar
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 获取承载令牌:
在 Datafocus 注册一个账户
创建一个应用
进入该应用
管理员 -> 接口认证 -> 承载令牌 -> 新建承载令牌
安装
克隆此仓库:
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 (必需): 承载令牌
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 示例
在 vsCode 中安装 cline 插件
配置 mcp 服务器
使用
初始化模型
转换:最大年龄是多少
联系方式:
https://discord.gg/mFa3yeq9
Prompts
Reviews
Tags
Write Your Review
Detailed Ratings
Name
Size
Type
Download
Last Modified
-1
-
Community