Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

FocusSearch/focus_mcp_sql

Repository files navigation

FOCUS DATA MCP Server [Zhong Wen ]

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:

Feature Traditional LLM Frameworks focus_mcp_sql
Generation Process Black box, direct SQL generation Transparent, two-step (keywords + SQL)
Hallucination Risk High, depends on model quality Low, controllable (keyword verification)
Speed Slow, relies on large model inference Fast, deterministic keyword-to-SQL
Cost High, requires advanced models Low, reduces reliance on large models
Non-Technical User Friendliness Low, hard to verify results High, 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

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 Can Shu Shuo Ming :

Ming Cheng Wei Zhi Lei Xing Bi Xuan Shuo Ming
model body object Shi none
>> type body string Shi Shu Ju Ku Lei Xing
>> version body string Shi Shu Ju Ku Ban Ben
>> tables body [object] Shi Biao Jie Gou Lie Biao
>>>> tableDisplayName body string Fou Biao Xian Shi Ming
>>>> tableName body string Fou Biao Yuan Shi Ming
>>>> columns body [object] Fou Biao Lie Lie Biao
>>>>>> columnDisplayName body string Shi Lie Xian Shi Ming
>>>>>> columnName body string Shi Lie Yuan Shi Ming
>>>>>> dataType body string Shi Lie Shu Ju Lei Xing
>>>>>> aggregation body string Shi Lie Ju He Fang Shi
>> relations body [object] Shi Biao Guan Lian Guan Xi Lie Biao
>>>> conditions body [object] Fou Guan Lian Tiao Jian
>>>>>> dstColName body string Fou dimension Biao Guan Lian Lie Yuan Shi Ming
>>>>>> srcColName body string Fou fact Biao Guan Lian Lie Yuan Shi Ming
>>>> dimensionTable body string Fou dimension Biao Yuan Shi Ming
>>>> factTable body string Fou fact Biao Yuan Shi Ming
>>>> joinType body string Fou Guan Lian Lei Xing

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
  3. use
    1. initial model
    2. transfer: what is the max age

Contact:

https://discord.gg/mFa3yeq9

About

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

Topics

Resources

Readme

License

Apache-2.0 license

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages