FOCUS DATA MCP Server

Converta linguagem natural em instruções SQL com uma solução de geração em duas etapas para reduzir alucinações e melhorar a confiança.

Documentação

FOCUS DATA MCP Server [Chinês]

Um servidor Model Context Protocol (MCP) permite que assistentes de inteligência artificial convertam linguagem natural em instruções SQL.

Já existem tantos frameworks Text-to-SQL. Por que ainda precisamos de outro?

Em termos simples, o focus_mcp_sql adota uma solução de geração de SQL em duas etapas, que permite controlar as alucinações do LLM e realmente constrói a confiança dos usuários não técnicos nos resultados de SQL gerados.

Abaixo está a tabela de comparação entre focus_mcp_sql e outros:

Tabela de Análise Comparativa

Aqui está uma comparação lado a lado do focus_mcp_sql com outros frameworks baseados em LLM:

RecursoFrameworks LLM Tradicionaisfocus_mcp_sql
Processo de GeraçãoCaixa preta, geração direta de SQLTransparente, duas etapas (palavras-chave + SQL)
Risco de AlucinaçãoAlto, depende da qualidade do modeloBaixo, controlável (verificação de palavras-chave)
VelocidadeLento, depende da inferência de modelos grandesRápido, conversão determinística de palavras-chave para SQL
CustoAlto, requer modelos avançadosBaixo, reduz a dependência de modelos grandes
Facilidade para Usuários Não TécnicosBaixo, difícil verificar resultadosAlto, fácil verificação de palavras-chave

Recursos

  • Inicializar o modelo
  • Converter linguagem natural em instruções SQL

Pré-requisitos

  • jdk 23 ou superior. Baixe jdk
  • gradle 8.12 ou superior. Baixe gradle
  • registre-se no Datafocus para obter o bearer token:
    1. Registre uma conta no Datafocus
    2. Crie um aplicativo
    3. Entre no aplicativo
    4. Admin -> Autenticação de interface -> Bearer Token -> Novo Bearer Token bearer token

Instalação

  1. Clone este repositório:
git clone https://github.com/FocusSearch/focus_mcp_sql.git
cd focus_mcp_sql
  1. Compile o servidor:
gradle clean
gradle bootJar

The jar path: build/libs/focus_mcp_sql.jar

Configuração do MCP

Adicione o servidor ao seu arquivo de configurações do MCP:

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

Ferramentas Disponíveis

1. gptText2sqlStart

inicializar modelo.

Parâmetros:

  • model (obrigatório): modelo de tabela
  • bearer (obrigatório): bearer token
  • language (opcional): idioma ['inglês','chinês']

Exemplo:

{
  "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="
}

Descrição dos parâmetros do modelo:

NomeLocalTipoObrigatórioDescrição
modelbodyobjectSimnenhum
» typebodystringSimtipo de banco de dados
» versionbodystringSimversão do banco de dados
» tablesbody[object]Simlista de estruturas de tabela
»» tableDisplayNamebodystringNãonome de exibição da tabela
»» tableNamebodystringNãonome original da tabela
»» columnsbody[object]Nãolista de colunas da tabela
»»» columnDisplayNamebodystringSimnome de exibição da coluna
»»» columnNamebodystringSimnome original da coluna
»»» dataTypebodystringSimtipo de dados da coluna
»»» aggregationbodystringSimmétodo de agregação da coluna
» relationsbody[object]Simlista de relações de tabela
»» conditionsbody[object]Nãocondições de associação
»»» dstColNamebodystringNãonome original da coluna de associação da tabela de dimensão
»»» srcColNamebodystringNãonome original da coluna de associação da tabela de fato
»» dimensionTablebodystringNãonome original da tabela de dimensão
»» factTablebodystringNãonome original da tabela de fato
»» joinTypebodystringNãotipo de associação

2. gptText2sqlChat

Converter linguagem natural em SQL.

Parâmetros:

  • chatId (obrigatório): ID do chat
  • input (obrigatório): Linguagem natural
  • bearer (obrigatório): bearer token

Exemplo:

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

Formato de Resposta

Todas as ferramentas retornam respostas no seguinte formato:

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

Exemplo de Cline no Visual Studio Code

  1. instalar o plugin cline no vsCode
  2. configurar o servidor MCP config mcp server
  3. uso
    1. inicializar modelo initial model1 initial model2
    2. transferir: qual é a idade máxima chat

Contato:

https://discord.gg/mFa3yeq9 Datafocus