JUHE API Marketplace
c0h1b4 avatar
MCP Server

MSSQL MCP Server

Enables execution of SQL queries and management of Microsoft SQL Server database connections through the Model Context Protocol.

14
GitHub Stars
8/22/2025
Last Updated
MCP Server Configuration
1{
2 "name": "mssql",
3 "command": "mssql-mcp-server",
4 "env": {
5 "MSSQL_CONNECTION_STRING": "Server=localhost;Database=master;User Id=sa;Password=yourpassword;",
6 "MSSQL_HOST": "localhost",
7 "MSSQL_PORT": "1433",
8 "MSSQL_DATABASE": "master",
9 "MSSQL_USER": "sa",
10 "MSSQL_PASSWORD": "yourpassword",
11 "MSSQL_ENCRYPT": "false",
12 "MSSQL_TRUST_SERVER_CERTIFICATE": "true"
13 }
14}
JSON14 lines

README Documentation

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

Running evals

The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentation can be found here.

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts examples/simple-server.ts

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

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source