gptText2sqlStartLABSCO SUMMARY
The middle step is the product.
Most text-to-SQL servers ask you to trust a single hop from question to statement. This one splits the hop and hands you the middle of it, which is what matters when the person reading the answer cannot audit the SQL themselves. The price is a DataFocus account and a schema you describe up front rather than one it discovers.
What it is
A Java server that turns a question into a SQL statement. Rather than a model emitting SQL in one opaque hop, the question is first resolved into keywords against the schema you registered and the statement is derived from those — which is what lets somebody who cannot read SQL check that the right thing was asked. The server never connects to your database and never runs the statement it returns.
What you get
- A session opened against a table model you supply: database type and version, the tables, each column with its display name, data type and aggregation, and the join relations between fact and dimension tables
- SQL generated for that model from a plain-language question, keyed by a chat id so follow-up questions stay on the same schema
- A keyword step you can read between the question and the statement, which is where a misread question shows up
- Answers in either English or Chinese, set when the session opens
Requirements
A JDK and Gradle to build the jar, which then runs under Java as a local stdio process. A DataFocus account supplies the bearer token every call carries: register, create an application, and generate the token from its interface-authentication screen. You also supply the schema — the table model is passed in, not discovered, so the description you write is the description it reasons over. Executing the SQL stays on your side of the line entirely.
Setup effort
Build from source — clone the repository and build it, then point your client at the binary
USE CASES
Turning a business question into SQL somebody can check
Register the schema once, then ask in plain language. The keywords the question resolved to are visible before the statement is, so a wrong answer is caught as a wrong question.
Generating SQL without handing over database access
You describe the tables, columns and joins rather than connecting anything. Nothing reaches your database, because the server only ever returns a statement for you to run.
Keeping a line of questions on one schema
The session holds the model, so follow-up questions carry a chat id and are answered against the same tables and joins instead of re-describing them each time.
2 tools
Listed in project docs. Your client may show a different list.
gptText2sqlChatBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation.
Requires
- java on PATH
- Gradle 8.12 or later
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
Configuration file
{
"mcpServers": {
"focus_mcp_data": {
"command": "java",
"args": [
"-jar",
"<YOUR_PATH_TO_FOCUS_MCP_SQL>/focus_mcp_sql.jar"
],
"autoApprove": [
"gptText2sqlStart",
"gptText2sqlChat"
]
}
}
}The command line the project publishes
java -jar <YOUR_PATH_TO_FOCUS_MCP_SQL>/focus_mcp_sql.jar