Skip to main content
Glama
apoorva183

SQL MCP Server

by apoorva183

SQL MCP Server

A Model Context Protocol (MCP) server that exposes a SQLite database to any MCP-compatible client — including Claude Desktop, Claude Code, and custom agents.

What it does

Gives an AI assistant structured, read-safe access to a relational database through five tools. The assistant can explore the schema, run SELECT queries, and retrieve sample data — without any risk of writes or destructive operations.


Related MCP server: mcp-sqlite

Schema

Five tables with realistic foreign-key relationships:

users ──< orders ──< order_items >── products
  │
  └──< support_tickets

Table

Description

users

20 registered customers

products

30-item product catalog with categories and stock levels

orders

30 purchase records linked to users

order_items

~55 line items linking orders to specific products

support_tickets

35 support requests with status and priority


MCP Tools

Tool

Description

list_tables

Returns all table names in the database

describe_table(table_name)

Returns column metadata — name, type, nullability, defaults, PK flag

run_query(sql)

Executes a SELECT query and returns rows as JSON. Non-SELECT statements are rejected.

get_sample_rows(table_name, limit=5)

Returns up to 100 sample rows from any table

get_schema_summary

Returns a plain-English summary of all 5 tables — columns, types, and FK relationships — in one call

Security

  • run_query checks the first SQL token and rejects anything that isn't SELECT

  • Multi-statement queries (containing ;) are blocked

  • Table name parameters are validated against [A-Za-z_][A-Za-z0-9_]* before interpolation


Setup

1. Install dependencies

pip install -r requirements.txt

2. Seed the database

python seed.py

This creates test.db in the same directory with all 5 tables populated.

3. Run the server

python server.py

The server communicates over stdio using the MCP protocol.


Claude Desktop Integration

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "sql-mcp": {
      "command": "python3",
      "args": ["/absolute/path/to/server.py"]
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Restart Claude Desktop after saving.


Verify Tools (without Claude Desktop)

test_tools.py connects to the server via stdio and exercises all 5 tools:

python test_tools.py

Expected output confirms:

  • All 5 tools are registered

  • Each tool returns correct results

  • run_query rejects non-SELECT statements


Project Structure

.
├── server.py         # MCP server — 5 tools
├── seed.py           # Creates and populates test.db
├── test_tools.py     # Stdio client verification script
├── requirements.txt  # mcp, aiosqlite
└── .gitignore

Requirements

  • Python 3.10+

  • mcp — MCP server framework

  • aiosqlite — async SQLite driver

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/apoorva183/MCP_for_SQL'

If you have feedback or need assistance with the MCP directory API, please join our Discord server