Sponsored by Deepsite.site

SQL Server MCP Server for Windsurf IDE

Created By
ian-cowleya year ago
SQL Server MCP Server for Windsurf IDE - A standalone MCP server providing SQL Server integration capabilities
Content

SQL Server MCP Server for Windsurf IDE

A standalone MCP (Model Context Protocol) server written in C# that provides SQL Server integration capabilities as an addon to Windsurf IDE.

Features

  • SQL Server connectivity
  • Database schema exploration
  • Table and view inspection
  • Column metadata retrieval
  • Stored procedure enumeration
  • SQL query execution
  • Stored procedure execution
  • Debug mode for troubleshooting
  • Configurable logging path

Prerequisites

  • .NET 9.0 SDK or higher
  • SQL Server instance (local or remote)
  • SQL Server client tools

Setup

  1. Build the project:
dotnet build
  1. Configure the application:

    • Copy appsettings.example.json to appsettings.json
    • Update the connection string and other settings in appsettings.json with your SQL Server details
    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=your-server;Database=master;User ID=your-username;Password=your-password;TrustServerCertificate=True"
      },
      "LogPath": "C:\\Path\\To\\Your\\LogDirectory\\",
      "DebugMode": "false"
    }
    
  2. Configure the MCP server in Windsurf:

    • Copy the contents of windsurf_mcp_config.json to your Windsurf MCP configuration file (typically located at ~/.codeium/windsurf/mcp_config.json)
    • Update the path to point to your built executable:
    {
      "mcpServers": {
        "sqlMcpService": {
          "command": "path/to/your/MCPSqlServer.exe",
          "args": [],
          "description": "SQL Server MCP Service"
        }
      }
    }
    
  3. Set up GitHub integration:

    • Create a new GitHub repository for your project
    • Initialize a new Git repository in your project directory using git init
    • Add your GitHub repository as a remote using git remote add origin <repository-url>
    • Push your changes to the remote repository using git push -u origin master

Configuration Options

The appsettings.json file contains the following configuration options:

  • ConnectionStrings:DefaultConnection: The SQL Server connection string
  • LogPath: Directory where log files will be stored
  • DebugMode: Set to "true" to enable detailed debug logging

Publishing

You can publish the application as a self-contained executable:

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

This will create a single executable file that includes all dependencies.

Protocol

The MCP server communicates through standard input/output using a JSON-based protocol.

Request Format

{
  "id": "request-id",
  "action": "action-name",
  "parameters": {
    "param1": "value1",
    "param2": "value2"
  }
}

Response Format

{
  "success": true,
  "data": {
    "key": "value"
  }
}

Or in case of error:

{
  "success": false,
  "error": {
    "code": "error_code",
    "message": "Error description"
  }
}

Supported Actions

1. Connect to a SQL Server

{
  "action": "connect",
  "parameters": {
    "connectionString": "Data Source=server;Initial Catalog=master;Integrated Security=True;"
  }
}

2. List Databases

{
  "action": "get_databases",
  "parameters": {}
}

3. List Tables in a Database

{
  "action": "get_tables",
  "parameters": {
    "database": "AdventureWorks"
  }
}

4. Get Table Columns

{
  "action": "get_columns",
  "parameters": {
    "database": "AdventureWorks",
    "schema": "Person",
    "table": "Person"
  }
}

5. List Stored Procedures

{
  "action": "get_procedures",
  "parameters": {
    "database": "AdventureWorks"
  }
}

6. Execute Database Query

{
  "action": "execute_database_query",
  "parameters": {
    "database": "AdventureWorks",
    "query": "SELECT TOP 10 * FROM Person.Person",
    "parameters": {
      "param1": "value1"
    }
  }
}

7. Execute System Query

{
  "action": "execute_system_query",
  "parameters": {
    "query": "SELECT name FROM sys.databases",
    "parameters": {
      "param1": "value1"
    }
  }
}

8. Execute Stored Procedure

{
  "action": "execute_procedure",
  "parameters": {
    "database": "AdventureWorks",
    "schema": "dbo",
    "procedure": "uspGetEmployeeManagers",
    "parameters": {
      "BusinessEntityID": 5
    }
  }
}

Integration with Windsurf

This MCP server can be used from Windsurf IDE to:

  1. Browse database schemas
  2. Execute SQL queries and view results
  3. Get code completion for table and column names
  4. Run stored procedures
  5. Generate SQL code snippets
  6. Analyze database structures

Code Structure

The application is organized into the following components:

  • Program.cs: Main entry point and request handling
  • JsonRpcHandler.cs: Handles JSON-RPC protocol and dispatches requests
  • Configuration is loaded from appsettings.json
  • Logs are written to files specified by the LogPath setting

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Error Handling

Common error codes:

  • invalid_request: Malformed JSON or missing required fields
  • connection_failed: Failed to connect to SQL Server
  • missing_parameter: Required parameter not provided
  • query_execution_error: Error executing a SQL query
  • database_not_found: Specified database does not exist
  • table_not_found: Specified table does not exist
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
WindsurfThe new purpose-built IDE to harness magic
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Amap Maps高德地图官方 MCP Server
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Tavily Mcp
Serper MCP ServerA Serper MCP Server
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Playwright McpPlaywright MCP server
CursorThe AI Code Editor
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
DeepChatYour AI Partner on Desktop
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
ChatWiseThe second fastest AI chatbot™