list_serversLABSCO SUMMARY
Guardrails that survive a determined query.
Two limits worth setting before you point this at production: MaxConcurrentQueries defaults to 5 and MaxQueriesPerMinute to 60, which is what stops a looping agent from flooding the server, and MaxRows caps results at 1000. One known gap: progressive tool discovery relies on the tools-changed notification, which Claude Code does not act on — set EnableDynamicToolsets to false there and load your toolsets at startup.
What it is
A .NET MCP server for named SQL Server connections. Only SELECT and CTE queries pass: each one is parsed into an abstract syntax tree with Microsoft's TSql180Parser, so keywords hidden in comments, string literals or encoding tricks are rejected at the syntax level rather than by pattern matching.
What you get
- Six core tools always loaded:
list_servers,list_databases,read_data,get_query_plan,get_schema_overviewanddescribe_table - Schema exploration with
list_programmable_objects,get_object_definition,get_extended_propertiesandget_object_dependencies— the last one reports both what an object references and what references it get_plantuml_diagramandget_mermaid_diagramwrite ER diagrams with cardinality to a file, with schema and table filtering and a limit of 200 tables- First Responder Kit diagnostics behind a config flag:
sp_blitz,sp_blitz_first,sp_blitz_cache,sp_blitz_index,sp_blitz_who,sp_blitz_lock,sp_blitz_plan_compare - DarlingData diagnostics behind another:
sp_pressure_detector,sp_quickie_store,sp_quickie_cache,sp_health_parser,sp_log_hunter,sp_human_events_block_viewer,sp_index_cleanup,sp_query_repro_builder, plussp_whoisactiveon its own flag - 31 tools in total;
list_toolsets,get_toolset_toolsandenable_toolsetload the non-core ones on demand instead of at startup
Requirements
The NuGet package SqlAugur, version 1.4.0, installed as a global .NET tool over stdio and launched as sqlaugur; it needs the .NET 10.0 runtime. A container at ghcr.io/mbentham/sqlaugur:latest is the alternative. Connections go in appsettings.json under ~/.config/sqlaugur or %APPDATA%\sqlaugur, or as environment variables using __ as the section separator. Windows Authentication or Azure Managed Identity is preferred over a password in the file.
Setup effort
One command plus a key — dotnet tool install -g SqlAugur, then supply credentials
USE CASES
Understanding a database you have just been given
Pull a Markdown schema map with keys, constraints and defaults, then drill into the tables that matter.
Answering a question with SQL without risking a write
Run the SELECT and get JSON back; anything that is not a SELECT or CTE never reaches the server.
Documenting a schema for other people
Generate a Mermaid or PlantUML diagram of the tables and their relationships and check it into the repo.
Working out why the server is slow
Run the health check and the plan-cache analysis, then look at what is running right now.
31 tools
Listed in project docs. Your client may show a different list.
list_databasesread_dataget_query_planget_schema_overviewdescribe_tablelist_programmable_objectsget_object_definitionget_extended_propertiesget_object_dependenciesget_plantuml_diagramget_mermaid_diagramsp_blitzsp_blitz_firstsp_blitz_cachesp_blitz_indexsp_blitz_whosp_blitz_locksp_blitz_plan_comparesp_pressure_detectorsp_quickie_storesp_quickie_cachesp_health_parsersp_log_huntersp_human_events_block_viewersp_index_cleanupsp_query_repro_buildersp_whoisactivelist_toolsetsget_toolset_toolsenable_toolsetBEFORE YOU INSTALL
What to know first
Tools you get
31 tools named in the project's documentation. A default install shows 12: the DBA toolsets and discovery tools stay off until enabled in config, and each toolkit needs its stored procedures on the SQL Server. Only SELECT and CTE queries run.
Requires
sqlaugur on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Install .NET 10.0 runtime, then:
dotnet tool install -g SqlAugur
mkdir -p ~/.config/sqlaugurWindows: mkdir "$env:APPDATA\sqlaugur" -Force.
Save appsettings.json there with your SqlAugur:Servers:<YOUR_NAME>:ConnectionString
Add the mcpServers block ({"command": "sqlaugur"}) to your MCP client config
Verify by asking the assistant to call list_servers
MCP Clients
Any MCP client
{
"mcpServers": {
"sqlaugur": {
"command": "sqlaugur"
}
}
}