Skip to main content
Glama
SPIP SQL MCP Server

SPIP SQL MCP Server

πŸ—„οΈ SPIP System - SQL Server Model Context Protocol (MCP) Server

Part of the SPIP (Smart Procurement & Invoice Processing) Ecosystem.

A production-ready Model Context Protocol (MCP) Server for Microsoft SQL Server built with Node.js and TypeScript. This server exposes 5 read-only database tools to AI Agents (execute_select, list_tables, describe_table, get_relationships, get_database_info) while enforcing database kernel-level Row-Level Security (RLS) using atomic SQL batch execution.


✨ Key Features

  • Model Context Protocol (MCP) Compliance: Standard SSE transport and direct HTTP tool execution APIs using @modelcontextprotocol/sdk.

  • Atomic Session Context & Row-Level Security (RLS): Combines sp_set_session_context with SELECT queries in a single atomic SQL batch execution, guaranteeing same-connection RLS isolation for multi-tenant users.

  • AST SQL Query Validation: Restricts query execution strictly to read-only SELECT statements, blocking INSERT, UPDATE, DELETE, DROP, or DDL operations.

  • 5 Built-In Tools:

    1. execute_select: Runs validated SELECT queries with dynamic RLS user context (userId).

    2. list_tables: Returns all database table names and schemas.

    3. describe_table: Returns column names, data types, primary keys, and nullability for a table.

    4. get_relationships: Returns foreign key relationships between database tables.

    5. get_database_info: Returns database version and metadata overview.


Related MCP server: Microsoft SQL Server MCP Server

πŸ› οΈ Tech Stack

  • Runtime: Node.js v20+ / v22+

  • Language: TypeScript

  • Framework: Express.js

  • SDK: @modelcontextprotocol/sdk

  • Database Driver: node-mssql (Microsoft SQL Server 2019/2022)


πŸš€ Quick Start (Without Docker)

1. Installation

git clone https://github.com/MahmoudNour2003/spip-sql-mcp-server.git
cd spip-sql-mcp-server
npm install

2. Environment Setup (.env)

Create a .env file in the project root:

MCP_PORT=3001
DB_HOST=127.0.0.1
DB_PORT=1433
DB_NAME=SPIP_DB
DB_USER=AI_CHAT
DB_PASSWORD=AI@123
DB_ENCRYPT=false
DB_TRUST_SERVER_CERT=true

3. Build & Run

# Build TypeScript to JavaScript
npm run build

# Start the MCP Server
node dist/server.js

πŸ§ͺ Testing & Verification

Run the built-in standalone test suite:

node dist/standalone-test.js

Expected Output:

βœ… Successfully connected to SQL Server (SPIP_DB)!
Tables count: 41

πŸ”’ Row-Level Security (RLS) Execution Details

When execute_select is called with a userId parameter (e.g. userId = 5), the MCP Server executes the following atomic batch query:

EXEC sp_set_session_context @key = N'UserId', @value = 5;
SELECT TOP 1000 Id, InvoiceNumber, TotalAmount, Status FROM dbo.Invoices ORDER BY InvoiceDate DESC;

SQL Server Security Policies (Security.InvoiceSecurityPolicy) intercept the query and return only the rows belonging to User 5.


πŸ“„ License

MIT License

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides read-only access to Microsoft SQL Server databases using Windows Authentication, enabling AI assistants to safely explore schemas and query data with built-in security controls.
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to connect and query Microsoft SQL Server databases using natural language, executing read-only SQL queries for safe data inspection and analysis.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A read-only MCP server for Microsoft SQL Server that enables AI agents to safely explore and query SQL Server databases.
      1,560 npm
      MIT
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI agents to safely read SQL Server databases via MCP with structured queries, default-deny table permissions, OAuth authentication, and full audit logging.
      MIT