SQL Sentinel MCP Server
What it does
SQL Server monitoring and diagnostics for AI agents using Extended Events. No ODBC drivers required.
- Connects Runs on your computer
- Account or key No key needed
- Category Databases & datasets
Install
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer · ✓ Commands checked Nov 13, 2026
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Docker on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
Install Docker
One time only; it works for every server that needs Docker
Open the Claude desktop app’s settings file
SettingsDeveloperEdit Config
Paste these settings and save the file
{ "mcpServers": { "sql-sentinel": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/tkmawarire/sql-sentinel-mcp" ] } } }Quit Claude and open it again
Try it
Use SQL Sentinel MCP Server and tell me what you can do for me, then show me one thing✓ If Claude says it is using SQL Sentinel MCP Server or shows a SQL Sentinel MCP Server tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect SQL Sentinel MCP Server yet
SQL Sentinel MCP Server runs on your computer, but ChatGPT can only connect servers that run on the web
What you can do instead
A · Use an app that can connect SQL Sentinel MCP Server
- Install Docker on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
- Install Docker on your computer first (one time)
- Install Docker on your computer first (one time)
- Install Docker on your computer first (one time)
B · Others in Databases & datasets that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
- Supabase✓ ChatGPT
- Appwrite MCP✓ ChatGPT
- Pg Aiguide✓ ChatGPT
Works with Claude Code, with some setup first
Install Docker on your computer first (one time)
Install Docker
One time only; it works for every server that needs Docker
Open Terminal
Mac: press Command+Space and type Terminal · Windows: open PowerShell
Paste this command and press Enter
claude mcp add --scope user sql-sentinel -- docker run -i --rm ghcr.io/tkmawarire/sql-sentinel-mcpType /mcp in Claude Code
You should see SQL Sentinel MCP Server listed as connected
Try it
Use SQL Sentinel MCP Server and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using SQL Sentinel MCP Server or shows a SQL Sentinel MCP Server tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Docker on your computer first (one time)
Install Docker
One time only; it works for every server that needs Docker
Open the AI chat in Cursor in Agent mode
Try it
Use SQL Sentinel MCP Server and tell me what you can do for me, then show me one thing✓ If Cursor says it is using SQL Sentinel MCP Server or shows a SQL Sentinel MCP Server tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Docker on your computer first (one time)
Install Docker
One time only; it works for every server that needs Docker
Open the AI chat in VS Code in Agent mode
Try it
Use SQL Sentinel MCP Server and tell me what you can do for me, then show me one thing✓ If VS Code says it is using SQL Sentinel MCP Server or shows a SQL Sentinel MCP Server tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
For developers: Terminal commands and JSON settings
Installed on your computer
Claude Code
claude mcp add --scope user sql-sentinel -- docker run -i --rm ghcr.io/tkmawarire/sql-sentinel-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"sql-sentinel": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/tkmawarire/sql-sentinel-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"sql-sentinel": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/tkmawarire/sql-sentinel-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"sql-sentinel": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/tkmawarire/sql-sentinel-mcp"
]
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
At a glance
- Downloads per weeki
- Not on npm/PyPI
- Connection
- Runs on your computer
- Latest versioni
- 2.3.1
- Categoryi
- Databases & datasets
- Published to registryi
- Feb 25, 2026
- Code last changedi
- Sep 30, 2026
- Maker
- tkmawarire
- Packages
nuget: Neofenyx.SqlSentinel.Mcpoci: ghcr.io/tkmawarire/sql-sentinel-mcp- Website
- github.com
- Registry status
- Active
Which apps can use it
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Related guides
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account tkmawarire, which owns the repo
- ✓ Pass
Still maintained
Code last changed 44 days ago
- ✓ Pass
Has a licence
Uses MIT
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Discussion
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
User reviews
No reviews yet
Compared with others in Databases & datasetsi
- More stars than 91% of the other 1176 servers in this category
- Published to the registry more recently than 4% of the other 1176 servers in this category
- Basic checks equal to or better than 100% of the other 1176 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is SQL Sentinel MCP Server safe?
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
The registry does not list a required key, though some servers ask you to sign in on first use.
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed 44 days ago, and the latest version (2.3.1) reached the registry 9 months ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need .NET, Docker on your computer.
What can I use instead?
In the same category: Dbx, MCP Toolbox for Databases, MCP Toolbox for Databases
Others in the same category
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
SQL Sentinel MCP Server
A production-ready MCP (Model Context Protocol) server for SQL Server monitoring, diagnostics, and database operations. Built with .NET 9 and Microsoft.Data.SqlClient for native SQL Server connectivity — no ODBC drivers required.
Features
- Session Management — Create, start, stop, drop, and list Extended Events sessions
- Smart Filtering — Filter by application, database, user, duration, host, and text patterns
- Query Fingerprinting — Normalize and group similar queries differing only in literal values
- Sequence Analysis — Trace execution order with timing gaps and cumulative duration
- Deadlock Detection — Capture and analyze XML deadlock reports with victim/process details
- Blocking Analysis — Monitor blocked process events with wait resource and SQL text
- Wait Stats — Query
sys.dm_os_wait_statsdirectly, categorized by type (CPU, I/O, Lock, Memory, etc.) - Health Check — Comprehensive server diagnostic: slow queries, deadlocks, blocking, wait stats, and insights
- Real-Time Streaming — Stream captured events for a specified duration
- Production-Safe — Auto-excludes noise (
sp_reset_connection,SETstatements, trace queries) - Database Operations — List tables, describe schemas, query data, insert, update, and drop tables
- AI-Optimized — Structured JSON output with optional Markdown formatting
Requirements
- SQL Server 2012+ with Extended Events enabled (default)
- Required permissions:
GRANT ALTER ANY EVENT SESSION TO [your_login];
GRANT VIEW SERVER STATE TO [your_login];
- For blocked process detection:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE; EXEC sp_configure 'blocked process threshold', 5; RECONFIGURE;
Installation
Option 1: Docker (Recommended)
No .NET SDK required. Works on any system with Docker installed.
docker pull ghcr.io/tkmawarire/sql-sentinel-mcp:latest
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": { "sql-sentinel": { "command": "docker", "args": ["run", "-i", "--rm", "--network", "host", "-e", "SQL_SENTINEL_CONNECTION_STRING=Server=localhost;Database=master;User Id=sa;Password=YourPassword;TrustServerCertificate=true", "ghcr.io/tkmawarire/sql-sentinel-mcp:latest"] } } }
Claude Code
claude mcp add sql-sentinel \
-e SQL_SENTINEL_CONNECTION_STRING="Server=localhost;Database=master;User Id=sa;Password=YourPassword;TrustServerCertificate=true" \ -- docker run -i --rm --network host \ -e SQL_SENTINEL_CONNECTION_STRING \ ghcr.io/tkmawarire/sql-sentinel-mcp:latest
Network access: The
-iflag is required for stdio transport. Use--network hostso the container can reach SQL Server on your host machine. For remote SQL Server, omit--network hostand use the accessible hostname in your connection string.
Connection string: Set
SQL_SENTINEL_CONNECTION_STRINGvia-e. All tools read the connection string from this environment variable.
Option 2: .NET Global Tool (NuGet)
Requires .NET 9 SDK or later.
dotnet tool install -g SQLSentinel.Mcp
{
"mcpServers": { "sql-sentinel": { "command": "sql-sentinel-mcp", "env": { "SQL_SENTINEL_CONNECTION_STRING": "Server=localhost;Database=master;User Id=sa;Password=YourPassword;TrustServerCertificate=true" } } } }
Option 3: Build from Source
git clone https://github.com/tkmawarire/sql-sentinel.git
cd sql-sentinel dotnet build
Run directly:
dotnet run --project SqlServer.Profiler.Mcp/
Or publish a self-contained single binary:
# Windows
dotnet publish SqlServer.Profiler.Mcp/ -c Release -r win-x64 --self-contained
Linux
dotnet publish SqlServer.Profiler.Mcp/ -c Release -r linux-x64 --self-contained
macOS (Apple Silicon)
dotnet publish SqlServer.Profiler.Mcp/ -c Release -r osx-arm64 --self-contained
macOS (Intel)
dotnet publish SqlServer.Profiler.Mcp/ -c Release -r osx-x64 --self-contained
Output will be in bin/Release/net9.0/{runtime}/publish/
Connection Strings
All tools read the connection string from the SQL_SENTINEL_CONNECTION_STRING environment variable. Set it once before starting the server:
export SQL_SENTINEL_CONNECTION_STRING="Server=localhost;Database=master;User Id=sa;Password=YourPassword;TrustServerCertificate=false;Encrypt=true"
SQL Authentication:
Server=localhost;Database=master;User Id=sa;Password=YourPassword;TrustServerCertificate=false;Encrypt=true
Windows Authentication:
Server=localhost;Database=master;Integrated Security=true;TrustServerCertificate=false;Encrypt=true
Note: Only use
TrustServerCertificate=truein development environments with self-signed certificates.
For production, always use
TrustServerCertificate=falsewith a valid SSL certificate.
Azure SQL:
Server=yourserver.database.windows.net;Database=yourdb;User Id=user;Password=password;Encrypt=true
MCP Tools Reference
Session Lifecycle
| Tool | Description |
|---|---|
sqlsentinel_create_session | Create an Extended Events session with filters (not started) |
sqlsentinel_start_session | Start capturing events for an existing session |
sqlsentinel_stop_session | Stop capturing; events are retained |
sqlsentinel_drop_session | Drop session and discard all events |
sqlsentinel_list_sessions | List all MCP-created sessions with state and buffer usage |
sqlsentinel_quick_capture | Create and start a session in one step |
Event Retrieval
| Tool | Description |
|---|---|
sqlsentinel_get_events | Retrieve captured events with filtering, sorting, and deduplication |
sqlsentinel_get_stats | Aggregate statistics grouped by fingerprint, database, app, or login |
sqlsentinel_analyze_sequence | Analyze query execution sequence with timing and gaps |
sqlsentinel_get_connection_info | List databases, applications, logins, sessions, and blocking info |
sqlsentinel_stream_events | Real-time event capture for a specified duration (1–300s) |
Diagnostics
| Tool | Description |
|---|---|
sqlsentinel_get_deadlocks | Retrieve deadlock events with victim, processes, locks, and SQL text |
sqlsentinel_get_blocking | Retrieve blocked process events with wait resources and SQL text |
sqlsentinel_get_wait_stats | Query sys.dm_os_wait_stats categorized by type (no session required) |
sqlsentinel_health_check | Comprehensive report: slow queries, deadlocks, blocking, wait stats, insights |
Permissions
| Tool | Description |
|---|---|
sqlsentinel_check_permissions | Check current login permissions and blocked process threshold config |
sqlsentinel_grant_permissions | Grant required permissions to a login (requires sysadmin) |
Database Operations
| Tool | Description |
|---|---|
sqlsentinel_list_tables | List all user tables in the database (schema-qualified) |
sqlsentinel_describe_table | Detailed table schema: columns, indexes, constraints, foreign keys |
sqlsentinel_create_table | Create a new table via CREATE TABLE statement |
sqlsentinel_insert_data | Insert data via INSERT statement |
sqlsentinel_read_data | Execute SELECT queries and return results |
sqlsentinel_update_data | Update data via UPDATE statement |
sqlsentinel_drop_table | Drop a table via DROP TABLE statement |
Usage Examples
Quick Debug Session
Agent: sqlsentinel_quick_capture(
sessionName: "debug_api", applications: "MyWebApp", minDurationMs: 100 )
// User triggers the slow operation
Agent: sqlsentinel_get_events( sessionName: "debug_api", sortBy: "DurationDesc", limit: 20 )
Agent: sqlsentinel_drop_session(sessionName: "debug_api")
Find N+1 Queries
Agent: sqlsentinel_quick_capture(
sessionName: "n_plus_one_check", databases: "OrdersDB" )
// User loads a page
Agent: sqlsentinel_get_stats( sessionName: "n_plus_one_check", groupBy: "QueryFingerprint" )
// Look for queries with high execution counts
Trace Specific Operation
Agent: sqlsentinel_analyze_sequence(
sessionName: "my_session", correlationId: "order-12345", responseFormat: "Markdown" )
Deadlock Detection
Agent: sqlsentinel_quick_capture(
sessionName: "deadlock_monitor", eventTypes: "Deadlock" )
// Wait for deadlocks to occur
Agent: sqlsentinel_get_deadlocks( sessionName: "deadlock_monitor", responseFormat: "Markdown" )
Blocking Analysis
Agent: sqlsentinel_quick_capture(
sessionName: "blocking_check", eventTypes: "BlockedProcess" )
// Requires: sp_configure 'blocked process threshold', 5
Agent: sqlsentinel_get_blocking( sessionName: "blocking_check", responseFormat: "Markdown" )
Server Health Check
Agent: sqlsentinel_health_check(
sessionName: "my_session", slowQueryThresholdMs: 1000, responseFormat: "Markdown" )
Database Operations
Agent: sqlsentinel_list_tables()
Agent: sqlsentinel_describe_table( name: "dbo.Products" )
Agent: sqlsentinel_read_data( sql: "SELECT TOP 10 * FROM dbo.Products ORDER BY CreatedDate DESC" )
Wait Stats (No Session Required)
Agent: sqlsentinel_get_wait_stats(
topN: 20, responseFormat: "Markdown" )
Query Fingerprinting
Queries are normalized to group similar ones:
-- These become one fingerprint:
SELECT * FROM Users WHERE id = 123 SELECT * FROM Users WHERE id = 456
-- Fingerprint: abc123:SELECT * FROM Users WHERE id = ? -- Execution count: 2
Noise Filtering
Default excluded patterns (when excludeNoise=true):
sp_reset_connection— Connection pool resetSET TRANSACTION ISOLATION LEVEL— Session setupSET NOCOUNT,SET ANSI_*— Client configurationsp_trace_*,fn_trace_*— Trace system queries
Supported Event Types
SqlBatchCompleted, RpcCompleted, SqlStatementCompleted, SpStatementCompleted, Attention, ErrorReported, Deadlock, BlockedProcess, LoginEvent, SchemaChange, Recompile, AutoStats
Project Structure
sql-profiler-mcp/
├── .github/ │ └── workflows/ │ ├── docker.yml # Build & push multi-arch Docker images │ └── publish-mcp-registry.yml # Publish NuGet + MCP registry ├── .mcp/ │ └── server.json # MCP manifest (NuGet + OCI packages) ├── SqlServer.Profiler.Mcp/ # Main MCP server (stdio transport) │ ├── SqlServer.Profiler.Mcp.csproj │ ├── Program.cs # Entry point, DI setup, MCP config │ ├── Models/ │ │ ├── ProfilerModels.cs # Records, enums, data models │ │ └── DbOperationResult.cs # Result model for CRUD operations │ ├── Services/ │ │ ├── ProfilerService.cs # Core Extended Events logic │ │ ├── QueryFingerprintService.cs # SQL normalization & fingerprinting │ │ ├── WaitStatsService.cs # DMV-based wait stats analysis │ │ ├── SessionConfigStore.cs # In-memory session config storage │ │ └── EventStreamingService.cs # Real-time event streaming │ ├── Utilities/ │ │ └── SqlInputValidator.cs # SQL input validation & escaping │ └── Tools/ │ ├── SessionManagementTools.cs # Session lifecycle tools (6) │ ├── EventRetrievalTools.cs