focus_mcp_sql

focus_mcp_sql

一个基于 FocusSearch 关键词解析的 NL2SQL 插件,提供更高的准确率、更快的速度和更强的可靠性!

数据库交互
访问服务器

README

FOCUS DATA MCP Server [中文]

一个模型上下文协议 (MCP) 服务器使人工智能助手能够将自然语言转换为 SQL 语句。

已经有这么多的 Text-to-SQL 框架了。为什么我们还需要另一个?

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

以下是 focus_mcp_sql 与其他框架的比较表:

比较分析表

以下是 focus_mcp_sql 与其他基于 LLM 的框架的并排比较:

特性 传统 LLM 框架 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 参数说明:

名称 位置 类型 必选 说明
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 (必需): chat 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 服务器配置 config mcp server
  3. 使用
    1. 初始化模型 initial model1 initial model2
    2. 转换: what is the max age chat

联系方式:

https://discord.gg/mFa3yeq9 Datafocus

推荐服务器

Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。

精选
本地
Hyperbrowser

Hyperbrowser

欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

精选
本地
any-chat-completions-mcp

any-chat-completions-mcp

将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。

精选
Exa MCP Server

Exa MCP Server

一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。

精选
BigQuery MCP Server

BigQuery MCP Server

这是一个服务器,可以让你的大型语言模型(LLM,比如Claude)直接与你的BigQuery数据对话!可以把它想象成一个友好的翻译器,它位于你的AI助手和数据库之间,确保它们可以安全高效地进行交流。

精选
MCP Web Research Server

MCP Web Research Server

一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。

精选
mcp-perplexity

mcp-perplexity

Perplexity API 的 MCP 服务器。

精选