Agent skill
mssql-mcp
Query and manage Microsoft SQL Server databases via MCP natural language interface. Execute queries, inspect schemas, modify data with built-in safety features. Use when working with SQL Server, Azure SQL Database, or building data applications on Microsoft database platforms.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/mssql-mcp-housegarofalo-claude-code-base
SKILL.md
Microsoft SQL Server MCP Skill
Query and manage SQL Server databases through natural language interface with built-in safety features.
Configuration
Required Environment Variables
SERVER_NAME=myserver.database.windows.net
DATABASE_NAME=MyDatabase
Optional Environment Variables
READONLY=true # Enable read-only mode
CONNECTION_TIMEOUT=30 # Connection timeout (seconds)
TRUST_SERVER_CERTIFICATE=true # Accept self-signed certificates
Authentication Options
SQL Authentication:
USER=dbusername
PASSWORD=dbpassword
Windows/Azure AD: Use integrated authentication (no explicit credentials needed)
Core Capabilities
1. Query Execution
Execute SQL queries through natural language requests.
Examples:
- "Get all users from California"
- "Show top 100 orders by date"
- "Calculate total revenue by month"
- "Find products with price > $50"
Security: Requires WHERE clauses for safety.
2. Data Modification
Create, update, and delete records.
Insert:
- "Add new user: John Doe, john@example.com"
- "Create product: Laptop, $999"
Update:
- "Update user ID 123 email to new@example.com"
- "Change order status to 'shipped' for order 456"
Delete:
- "Delete orders older than 1 year"
- "Remove user with ID 789"
Security: UPDATE and DELETE require WHERE clauses.
3. Schema Management
Create and modify database structures.
Create Tables:
- "Create users table with id, name, email"
- "Add products table with id, name, price, category"
Modify Schema:
- "Add phone column to customers table"
- "Create index on email in users"
- "Add foreign key from orders to customers"
Drop Objects:
- "Drop table temp_data"
- "Remove index idx_email from users"
4. Database Inspection
Explore database structure and metadata.
Tables:
- "List all tables"
- "Show tables in database"
Schema:
- "Describe users table"
- "Show structure of orders table"
- "What columns are in products table?"
Relationships:
- "List foreign keys"
- "Show table relationships"
- "Display indexes on orders table"
Common Query Patterns
Filtering
"WHERE" conditions for targeting specific records:
- "users from New York"
- "orders created this month"
- "products with price between $10 and $50"
- "customers who signed up in 2024"
Aggregations
Calculations across datasets:
- "count of users by state"
- "total revenue by quarter"
- "average order value"
- "maximum price in each category"
Sorting & Limiting
Ordering and constraining results:
- "top 10 orders by amount"
- "latest 50 users"
- "highest grossing products"
- "most recent transactions"
Joins & Relationships
Combining data from multiple tables:
- "orders with customer names"
- "products with their category names"
- "users with their order counts"
- "customers and their total spend"
Safety Features
Mandatory WHERE Clauses
SELECT Queries: Must include filtering conditions to prevent full table scans.
Good: "Get users where state = 'CA'" Bad: "Get all users" (blocked)
UPDATE Statements: Must specify which records to update.
Good: "Update email for user ID 123" Bad: "Update all emails" (blocked)
DELETE Statements: Must specify which records to delete.
Good: "Delete orders older than 2 years" Bad: "Delete all orders" (blocked)
Read-Only Mode
Set READONLY=true to:
- Disable INSERT, UPDATE, DELETE
- Allow only SELECT and schema inspection
- Safe for production database exploration
- Prevent accidental data changes
SQL Server Data Types
Numeric
INT,BIGINT,SMALLINT,TINYINTDECIMAL(p,s),NUMERIC(p,s)FLOAT,REALMONEY,SMALLMONEY
String
VARCHAR(n),NVARCHAR(n)CHAR(n),NCHAR(n)TEXT,NTEXT(deprecated)
Date/Time
DATE,TIMEDATETIME,DATETIME2SMALLDATETIMEDATETIMEOFFSET
Binary
BINARY(n),VARBINARY(n)IMAGE(deprecated)
Other
BIT(boolean)UNIQUEIDENTIFIER(GUID)XMLJSON(via NVARCHAR)
Common Schema Patterns
Users Table
CREATE TABLE users (
id INT IDENTITY(1,1) PRIMARY KEY,
username NVARCHAR(50) UNIQUE NOT NULL,
email NVARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at DATETIME2 DEFAULT GETUTCDATE(),
updated_at DATETIME2 DEFAULT GETUTCDATE(),
is_active BIT DEFAULT 1
);
Orders Table
CREATE TABLE orders (
id INT IDENTITY(1,1) PRIMARY KEY,
customer_id INT NOT NULL FOREIGN KEY REFERENCES customers(id),
order_date DATETIME2 DEFAULT GETUTCDATE(),
total_amount DECIMAL(10,2) NOT NULL,
status VARCHAR(20) DEFAULT 'pending',
created_at DATETIME2 DEFAULT GETUTCDATE()
);
Products Table
CREATE TABLE products (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(100) NOT NULL,
description NVARCHAR(MAX),
price DECIMAL(10,2) NOT NULL,
category_id INT FOREIGN KEY REFERENCES categories(id),
stock_quantity INT DEFAULT 0,
created_at DATETIME2 DEFAULT GETUTCDATE()
);
Best Practices
1. Query Optimization
- Limit result sets: "top N records"
- Include time ranges: "in the last 30 days"
- Use specific filters: "where status = 'active'"
- Aggregate when possible: "count by category"
2. Data Safety
- Query before modifying: verify target records
- Use transactions: for related changes
- Backup before schema changes
- Test in development first
3. Performance
- Add indexes on frequently queried columns
- Filter early with WHERE clauses
- Avoid SELECT * patterns
- Use appropriate data types
4. Security
- Use read-only mode for analysis
- Minimum privilege accounts
- Never hardcode credentials
- Audit all modifications
- Review generated queries
Troubleshooting
Connection Failures
- Verify SERVER_NAME format
- Check network/firewall
- Confirm SQL Server is running
- Validate credentials
- Set TRUST_SERVER_CERTIFICATE if needed
Query Errors
- Add WHERE clauses for filtering
- Reduce result set size
- Check syntax in generated SQL
- Verify column names exist
Permission Denied
- Check account permissions
- Verify READONLY mode isn't blocking writes
- Confirm database user roles
- Review table-level permissions
Timeout Issues
- Increase CONNECTION_TIMEOUT
- Optimize queries with indexes
- Reduce data volume with filters
- Check server performance
T-SQL Quick Reference
Common Functions
-- String functions
LEN(column), SUBSTRING(col, start, length), CONCAT(a, b)
UPPER(col), LOWER(col), TRIM(col), REPLACE(col, old, new)
-- Date functions
GETDATE(), GETUTCDATE(), DATEADD(day, 7, date)
DATEDIFF(day, start, end), YEAR(date), MONTH(date)
FORMAT(date, 'yyyy-MM-dd')
-- Aggregate functions
COUNT(*), SUM(col), AVG(col), MIN(col), MAX(col)
COUNT(DISTINCT col)
-- NULL handling
ISNULL(col, default), COALESCE(col1, col2, default)
NULLIF(a, b)
Window Functions
-- Ranking
ROW_NUMBER() OVER (ORDER BY col)
RANK() OVER (PARTITION BY cat ORDER BY col)
DENSE_RANK() OVER (ORDER BY col DESC)
-- Aggregates
SUM(amount) OVER (ORDER BY date)
AVG(price) OVER (PARTITION BY category)
LAG(col, 1) OVER (ORDER BY date)
LEAD(col, 1) OVER (ORDER BY date)
Common Table Expressions
WITH cte AS (
SELECT column1, column2
FROM table
WHERE condition
)
SELECT * FROM cte;
Additional Resources
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?