MS SQL Server MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mssql_queryA | Execute a read-only SQL query against the MS SQL Server database. Accepts: a single SELECT / WITH...SELECT; a multi-statement batch led by DECLARE, INSERT, or CREATE TABLE # that writes ONLY to session-local #temp tables or @table variables (global ##temp is never allowed); or EXEC of a whitelisted stored procedure whose definition does not write to a persistent table. Writes to real tables, DDL on persistent objects, dynamic SQL, EXEC inside batches, and DBCC are blocked (server runs with MSSQL_READ_ONLY=true). Returns results as JSON or Markdown. |
| mssql_get_schemaA | Get database schema information including tables, columns, data types, primary keys, and foreign keys. Optionally filter by table name. |
| mssql_get_stored_proceduresA | List stored procedures in the database with their definitions and parameters. Optionally filter by procedure name. |
| mssql_monitor_locksA | Monitor database locks, blocking sessions, and potential deadlocks. Shows lock types, resources, and wait times. |
| mssql_monitor_usageB | Get database resource usage statistics including CPU, memory, active sessions, and top resource-consuming queries. |
| mssql_test_connection | Test database connectivity and return server information: version, edition, current database, login, and server mode (read-only or write). |
| mssql_list_databasesA | List all databases on the SQL Server instance with state, recovery model, compatibility level, and creation date. |
| mssql_list_tablesA | List tables in the current database with schema, row count, and size in MB. Optionally filter by schema name. |
| mssql_sample_dataA | Retrieve sample rows from a table (default 10, max 100). Safe way to preview data without writing SQL. Accepts 'table' or 'schema.table'. |
| mssql_get_relationshipsA | Get foreign key relationships between tables: constraint name, from/to table and column, and delete/update actions. Optionally filter by table name (matches either side). |
| mssql_get_viewsA | List views in the database with their full SQL definitions. Optionally filter by view name to get a single view's definition. |
| mssql_search_definitions | Search the SQL source code of all stored procedures, views, functions, and triggers for a text fragment (e.g. a table name or business term). Useful for impact analysis and legacy code exploration. |
| mssql_analyze_indexesA | Analyze index usage (seeks/scans/lookups/updates per index) and list potentially missing indexes suggested by the query optimizer. Optionally filter usage stats by table name. |
| mssql_analyze_storageA | Analyze storage: largest tables by size (row count, total/used MB) and database file sizes. Useful for capacity planning and finding space hogs. |
| mssql_index_fragmentationA | Analyze index fragmentation and recommend maintenance: REBUILD (fragmentation ≥ 30%), REORGANIZE (5–30%), or OK (< 5%). Generates ready-to-run ALTER INDEX statements (ONLINE=ON suggested automatically on editions that support it). Small indexes below minPageCount are excluded since fragmentation there is harmless. |
| mssql_top_queriesA | Find the most expensive queries from the plan cache, ranked by a chosen metric: cpu, duration, reads (logical I/O), writes, memory (grant size), or executions. Returns per-query totals and averages with the SQL text — the starting point for performance tuning. |
| mssql_performance_healthA | Overall performance health check: top wait statistics (with benign waits filtered out), memory counters (Page Life Expectancy, memory grants pending, total vs target memory), workload counters (batch requests, compilations), and rule-based optimization recommendations (e.g. high CXPACKET → review MAXDOP, PAGEIOLATCH → check I/O and indexes, LCK_M → run mssql_find_blocking). |
| mssql_find_blockingA | Find current blocking chains: which sessions are blocked, by whom, on what resource, and for how long. Identifies lead blockers (including idle sessions holding open transactions) with their SQL text. Supported: SQL Server 2019 (15.x), 2022 (16.x), 2025 (17.x) — all editions including Express. Requires VIEW SERVER STATE. |
| mssql_get_deadlocksA | Retrieve recent deadlock events from the built-in system_health Extended Events session, including the full deadlock graph XML, victim sessions, and the queries involved. Source 'ring_buffer' (default, fast, recent events only) or 'file' (reads system_health .xel files, further back but slower). Supported: SQL Server 2019 (15.x), 2022 (16.x), 2025 (17.x) — all editions including Express. Requires VIEW SERVER STATE. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools target a clear domain, but several overlap: mssql_monitor_locks overlaps with mssql_find_blocking and mssql_get_deadlocks, while mssql_monitor_usage, mssql_top_queries, and mssql_performance_health all touch performance metrics. Descriptions help clarify the boundaries, but an agent could still route locking or performance questions to the wrong tool.
The common mssql_ prefix and mostly verb-led names create a predictable pattern: get_*, list_*, analyze_*, monitor_*. However, a few tools use noun-phrase names instead of verb_noun, including mssql_index_fragmentation, mssql_top_queries, and mssql_performance_health, which is a minor consistency break.
At 17 tools, this server sits just above the typical 3-15 sweet spot, but the breadth of SQL Server administration and diagnostics justifies the count. Each tool covers a meaningful task area, though some performance and lock-related tools could potentially be consolidated.
The server provides strong read-only coverage: schema exploration, querying, sample data, index/storage analysis, performance health, blocking, and deadlock diagnostics. Minor gaps such as dedicated query-plan details or active session introspection prevent a perfect score, but no critical workflow appears missing.