mssql-mcp-server

MCP.Pizza Chef: c0h1b4

The mssql-mcp-server is a Model Context Protocol server designed to connect with Microsoft SQL Server databases. It enables executing SQL queries and managing database connections within MCP-enabled environments, facilitating real-time database interactions for LLMs. This server supports seamless integration with MCP clients and is installable via Smithery or npm, providing a robust interface for database-driven AI workflows.

Use This MCP server To

Execute SQL queries on Microsoft SQL Server databases Manage database connections within MCP workflows Integrate SQL Server data into LLM-powered applications Enable real-time database querying for AI agents Automate data retrieval and updates via natural language Support multi-step reasoning involving database state Facilitate secure and scoped database access for models

README

MSSQL MCP Server

smithery badge

A Model Context Protocol (MCP) server for connecting to Microsoft SQL Server databases. This server provides tools for executing SQL queries and managing database connections.

Version Notice: This project has been upgraded to use Model Context Protocol SDK 1.9.0. See UPGRADE.md for details.

Installation

Installing via Smithery

To install MSSQL MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @c0h1b4/mssql-mcp-server --client claude

Manual Installation

npm install mssql-mcp-server

Usage

Add the server to your MCP settings configuration file:

{
  "mcpServers": {
    "mssql": {
      "command": "mssql-mcp-server",
      "env": {
        "MSSQL_CONNECTION_STRING": "Server=localhost;Database=master;User Id=sa;Password=yourpassword;",
        // Or individual connection parameters:
        "MSSQL_HOST": "localhost",
        "MSSQL_PORT": "1433",
        "MSSQL_DATABASE": "master",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "yourpassword",
        "MSSQL_ENCRYPT": "false",
        "MSSQL_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

Tools

query

Execute a SQL query on a MSSQL database.

Parameters

  • connectionString (string, optional): Full connection string (alternative to individual parameters)
  • host (string, optional): Database server hostname
  • port (number, optional): Database server port (default: 1433)
  • database (string, optional): Database name (default: master)
  • username (string, optional): Database username
  • password (string, optional): Database password
  • query (string, required): SQL query to execute
  • encrypt (boolean, optional): Enable encryption (default: false)
  • trustServerCertificate (boolean, optional): Trust server certificate (default: true)

Either connectionString OR (host + username + password) must be provided.

Example

const result = await use_mcp_tool({
  server_name: 'mssql',
  tool_name: 'query',
  arguments: {
    host: 'localhost',
    username: 'sa',
    password: 'yourpassword',
    query: 'SELECT * FROM Users',
  },
});

Running the Server

Local Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build
npm run build

# Run the built server
npm start

Using Docker

# Build and start services (SQL Server + MCP server)
docker-compose up

# Or just build the Docker image
docker build -t mssql-mcp-server .

Testing

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

Security

The server includes safeguards against dangerous SQL operations:

  • Blocks potentially harmful commands like DROP, TRUNCATE, ALTER, CREATE, EXEC, etc.
  • Validates all input parameters and database names
  • Sets reasonable limits on query length and timeout
  • Uses connection pooling for better performance and security

License

MIT

mssql-mcp-server FAQ

How do I install the mssql-mcp-server?
You can install it automatically via Smithery CLI or manually using npm install mssql-mcp-server.
How do I configure the mssql-mcp-server?
Add the server to your MCP settings configuration file with the appropriate MSSQL_CONNECTION_STRING environment variable.
Can the mssql-mcp-server handle multiple database connections?
Yes, it supports managing multiple connections through configuration.
Is the mssql-mcp-server compatible with different MCP clients?
Yes, it is designed to work with any MCP client supporting the protocol, including Claude Desktop.
Does the mssql-mcp-server support secure database access?
Yes, it supports scoped and secure access to databases as per MCP principles.
What version of the MCP SDK does mssql-mcp-server use?
It uses Model Context Protocol SDK version 1.9.0.
Can I use mssql-mcp-server with LLM providers like OpenAI, Claude, or Gemini?
Yes, it integrates with MCP clients that can connect to these LLM providers for enhanced database querying.