- Explore MCP Servers
- MCPSqlServer
Mcpsqlserver
What is Mcpsqlserver
MCPSqlServer is a standalone MCP server designed for integration with SQL Server, specifically tailored for use with the Windsurf IDE. It enables developers to interact with SQL Server databases seamlessly.
Use cases
Use cases for MCPSqlServer include database schema browsing, executing SQL queries, running stored procedures, generating SQL code snippets, and analyzing database structures within the Windsurf IDE.
How to use
To use MCPSqlServer, first build the project using the .NET SDK, configure the connection settings in the ‘appsettings.json’ file, and set up the MCP server in the Windsurf IDE configuration. After setup, you can connect to SQL Server, explore databases, and execute queries directly from the IDE.
Key features
Key features include 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, and configurable logging.
Where to use
undefined
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Mcpsqlserver
MCPSqlServer is a standalone MCP server designed for integration with SQL Server, specifically tailored for use with the Windsurf IDE. It enables developers to interact with SQL Server databases seamlessly.
Use cases
Use cases for MCPSqlServer include database schema browsing, executing SQL queries, running stored procedures, generating SQL code snippets, and analyzing database structures within the Windsurf IDE.
How to use
To use MCPSqlServer, first build the project using the .NET SDK, configure the connection settings in the ‘appsettings.json’ file, and set up the MCP server in the Windsurf IDE configuration. After setup, you can connect to SQL Server, explore databases, and execute queries directly from the IDE.
Key features
Key features include 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, and configurable logging.
Where to use
undefined
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
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
- Build the project:
dotnet build
-
Configure the application:
- Copy
appsettings.example.jsontoappsettings.json - Update the connection string and other settings in
appsettings.jsonwith 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" } - Copy
-
Configure the MCP server in Windsurf:
- Copy the contents of
windsurf_mcp_config.jsonto 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" } } } - Copy the contents of
-
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 stringLogPath: Directory where log files will be storedDebugMode: 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:
- Browse database schemas
- Execute SQL queries and view results
- Get code completion for table and column names
- Run stored procedures
- Generate SQL code snippets
- Analyze database structures
Code Structure
The application is organized into the following components:
Program.cs: Main entry point and request handlingJsonRpcHandler.cs: Handles JSON-RPC protocol and dispatches requests- Configuration is loaded from
appsettings.json - Logs are written to files specified by the
LogPathsetting
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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 fieldsconnection_failed: Failed to connect to SQL Servermissing_parameter: Required parameter not providedquery_execution_error: Error executing a SQL querydatabase_not_found: Specified database does not existtable_not_found: Specified table does not exist
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










