Skip to main content
Glama
FocusSearch

focus_mcp_sql

by FocusSearch

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:

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

Related MCP server: database-explorer-mcp

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

名称

位置

类型

必选

说明

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

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 MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with a MySQL database using natural language, automating SQL tasks like querying, inserting, updating, and deleting data.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to connect to and interact with PostgreSQL, MySQL, SQLite, and MongoDB databases through natural language, supporting schema exploration, query execution, data export, and more.
    13
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to directly query MySQL databases, list tables, and view table structures through natural language.
    10 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language querying of SQL databases using AI, supporting multiple database types and automatic schema discovery.
    1
    MIT