A favicon of Focus Data SQL Server

Focus Data SQL Server

A NL2SQL plugin based on FocusSearch keyword parsing, offering greater accuracy, higher speed, and more reliability!

FOCUS DATA MCP Server [中文]

A Model Context Protocol (MCP) server enables artificial intelligence assistants to convert natural language into SQL statements.

There are already so many Text-to-SQL frameworks. Why do we still need another one?

In simple terms, focus_mcp_sql adopts a two-step SQL generation solution, which enables control over the hallucinations of LLM and truly builds the trust of non-technical users in the generated SQL results.

Below is the comparison table between focus_mcp_sql and others:

Comparison Analysis Table

Here’s a side-by-side comparison of focus_mcp_sql with other LLM-based frameworks:

FeatureTraditional LLM Frameworksfocus_mcp_sql
Generation ProcessBlack box, direct SQL generationTransparent, two-step (keywords + SQL)
Hallucination RiskHigh, depends on model qualityLow, controllable (keyword verification)
SpeedSlow, relies on large model inferenceFast, deterministic keyword-to-SQL
CostHigh, requires advanced modelsLow, reduces reliance on large models
Non-Technical User FriendlinessLow, hard to verify resultsHigh, easy keyword checking

Features

-Initialize the model -Convert natural language to SQL statements

Prerequisites

  • jdk 23 or higher. Download jdk
  • gradle 8.12 or higher. Download gradle
  • register Datafocus to obtain bearer token:
    1. Register an account in Datafocus
    2. Create an application
    3. Enter the application
    4. Admin -> Interface authentication -> Bearer Token -> New Bearer Token bearer token

Installation

  1. Clone this repository:
git clone https://github.com/FocusSearch/focus_mcp_sql.git
cd focus_mcp_sql
  1. Build the server:
gradle clean
gradle bootJar

The jar path: build/libs/focus_mcp_sql.jar

MCP Configuration

Add the server to your MCP settings file:

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

Available Tools

1. gptText2sqlStart

initial model.

Parameters:

  • model (required): table model
  • bearer (required): bearer token
  • language (optional): language ['english','chinese']

Example:

{
  "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 参数说明:

名称位置类型必选说明
modelbodyobjectnone
» typebodystring数据库类型
» versionbodystring数据库版本
» tablesbody[object]表结构列表
»» tableDisplayNamebodystring表显示名
»» tableNamebodystring表原始名
»» columnsbody[object]表列列表
»»» columnDisplayNamebodystring列显示名
»»» columnNamebodystring列原始名
»»» dataTypebodystring列数据类型
»»» aggregationbodystring列聚合方式
» relationsbody[object]表关联关系列表
»» conditionsbody[object]关联条件
»»» dstColNamebodystringdimension 表关联列原始名
»»» srcColNamebodystringfact 表关联列原始名
»» dimensionTablebodystringdimension 表原始名
»» factTablebodystringfact 表原始名
»» joinTypebodystring关联类型

2. gptText2sqlChat

Convert natural language to SQL.

Parameters:

  • chatId (required): chat id
  • input (required): Natural language
  • bearer (required): bearer token

Example:

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

Response Format

All tools return responses in the following format:

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

Visual Studio Code Cline Sample

  1. vsCode install cline plugin
  2. mcp server config config mcp server
  3. use
    1. initial model initial model1 initial model2
    2. transfer: what is the max age chat

Contact:

https://discord.gg/mFa3yeq9 Datafocus

Related topics:
Share:
Details:
  • Stars


    14
  • Forks


    1
  • Last commit


    14 days ago
  • Repository age


    2 months
  • License


    Apache-2.0
View Repository

Auto-fetched from GitHub .

MCP servers similar to Focus Data SQL Server:

 

 
 
  • Stars


  • Forks


  • Last commit


 

 
 
  • Stars


  • Forks


  • Last commit


 

 
 
  • Stars


  • Forks


  • Last commit