modelscope·@FocusSearch/focus_mcp_sql
基于FocusSearch关键词解析的NL2SQL插件,提供更高的准确性、更快的速度和更可靠的性能!
Model Context Protocol (MCP) 服务器使人工智能助手能够将自然语言转换为 SQL 语句。
简单来说,focus_mcp_sql 采用了一个两步的 SQL 生成解决方案,这使得可以控制大模型的幻觉问题,并真正建立起非技术用户对生成的 SQL 结果的信任。
下面是 focus_mcp_sql 与其他框架之间的比较表:
这里是一个并排比较,展示了 focus_mcp_sql 与其它基于大模型的框架之间的差异:
| 特性 | 传统的大模型框架 | focus_mcp_sql |
|---|---|---|
| 生成过程 | 黑盒,直接生成 SQL | 透明,两步(关键词 + SQL) |
| 幻觉风险 | 高,依赖于模型质量 | 低,可控制(关键词验证) |
| 速度 | 慢,依赖大型模型推理 | 快,确定性的关键词到 SQL |
| 成本 | 高,需要高级模型 | 低,减少对大型模型的依赖 |
| 非技术人员友好度 | 低,难以验证结果 | 高,易于检查关键词 |

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 设置文件中:
{
"mcpServers": {
"focus_mcp_data": {
"command": "java",
"args": [
"-jar",
"path/to/focus_mcp_sql/focus_mcp_sql.jar"
],
"autoApprove": [
"gptText2sqlStart",
"gptText2sqlChat"
]
}
}
}
初始化模型。
参数:
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 参数说明:
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| 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 | 否 | 关联类型 |
将自然语言转换为 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": {
}
}



审计 npm 包依赖项以查找安全漏洞,提供详细的报告和修复建议,并集成 MCP。
通过API层将克劳德桌面版直接连接到数据库,使其能够探索数据库结构、编写SQL查询、分析数据集和创建报告。该API层还包含用于表探索和查询执行的工具。
DBCode 是一个 Visual Studio Code 扩展,允许你管理许多数据库,包括 PostgreSQL、MySQL、SQL Server、DuckDB、Redis、MongoDB 等更多数据库。 DBCode 提供了运行 MCP 服务器的选项,可以访问这些数据库、它们的模式以及执行查询的能力。
AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。
后端服务,实现了模型控制面板协议,可连接到 Apache Doris 数据库,允许用户执行 SQL 查询、管理元数据,并且有可能利用大语言模型(LLMs)完成自然语言到 SQL 的转换等任务。
提供对Excel文件的操纵功能。此服务器启用工作簿创建、数据操纵、格式设置和高级Excel功能。