Skip to main content
Glama
kamaleshayyala-0608

SQL MCP Server Demo

SQL MCP Server Demo

This repository implements a local Model Context Protocol (MCP) server for SQL Server using Microsoft Data API Builder (DAB) 2.0. It exposes read-only data access tools (describe_entities, read_records, and aggregate_records) to a local Ollama model (qwen3:8b) via a Python MCP client and Streamlit frontend.

Repository Structure

A:\sql-mcp-demo
│   .env.example         - Template environment variables
│   .gitignore           - Configured git ignore rules
│   README.md            - Project documentation
│   requirements.txt     - Python dependencies
│   mcp_client.py        - Python MCP Client and LLM function calling loop
│   app.py               - Streamlit frontend UI
│   test_ollama.py       - Verifies basic connection to Ollama
│   test_tools.py        - Verifies tool-calling capability of qwen3:8b
│
├── .venv/               - Python virtual environment
│
├── dab/
│   └── dab-config.json  - Schema-valid Data API Builder configuration
│
├── database/
│   └── verify.sql       - Reference SQL database queries
│
└── scratch/             - Developer tests and verification scripts

Related MCP server: MSSQL MCP Reader

Architecture

               ┌──────────────────────┐
               │    Streamlit UI      │
               │       app.py         │
               └──────────┬───────────┘
                          │ User Query
                          ▼
               ┌──────────────────────┐
               │      Qwen3:8B        │
               │       Ollama         │
               └──────────▲───────────┘
                          │ Function Call
                          │ Negotiation
                          ▼
               ┌──────────────────────┐
               │    MCP Client        │
               │   mcp_client.py      │
               └──────────┬───────────┘
                          │
                          │ MCP HTTP (Streamable HTTP)
                          ▼
               ┌──────────────────────┐
               │ Data API Builder     │
               │    SQL MCP Server    │
               │ localhost:5000/mcp   │
               └──────────┬───────────┘
                          │
                          │ SQL Connection
                          ▼
               ┌──────────────────────┐
               │ SQL Server LocalDB   │
               │      EmployeeDB      │
               │ └── dbo.Employee     │
               └──────────────────────┘

Running the Project

Follow these steps to start and run the application:

Step 1: Start Services

Ensure your local SQL Server instance and Ollama are running:

sqllocaldb start MSSQLLocalDB
ollama run qwen3:8b

Step 2: Start the DAB MCP Server

Open a terminal, activate your virtual environment, and run the DAB server:

# Navigate to workspace
cd A:\sql-mcp-demo

# Activate environment
.venv\Scripts\activate

# Start DAB MCP Server
C:\Users\kamal\.dotnet\tools\dab.exe start --config .\dab\dab-config.json

The server will start listening at http://localhost:5000/mcp.

Step 3: Run the Streamlit Application

Open a second terminal window and launch the frontend dashboard:

# Navigate to workspace
cd A:\sql-mcp-demo

# Activate environment
.venv\Scripts\activate

# Launch Streamlit
streamlit run app.py

This will open the dashboard in your web browser at http://localhost:8501.


Verification & Tests

Dynamic Schema & Client test

To test the tool negotiation loop directly via the command-line client:

python mcp_client.py

Verification Scripts


Schema Validation Bug Fixed

A critical schema validation issue in Microsoft's Data API Builder v2.0.9 was addressed:

  • The standard DAB schema validator contains a bug where defining "mcp" at the entity level for table types incorrectly triggers a stored-procedure constraint (requiring source.type to be stored-procedure).

  • This was resolved by removing the redundant entity-level "mcp" block since MCP capability is already configured globally at the runtime level.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Language Models to interact with Microsoft SQL Server databases by inspecting table schemas, executing SQL queries, and reading table data through a standardized Model Context Protocol interface.
    27
    -
  • A
    license
    A
    quality
    C
    maintenance
    Read-only Model Context Protocol server for Microsoft SQL Server, enabling safe schema discovery, profiling, and querying with zero risk of data modification.
    14
    351 npm
    9
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that exposes SQL Server metadata and read-only query execution as a structured HTTP API, with safety validation and allowlist policy enforcement.
    1
    -