Skip to main content
skill CX Codex

mssql — Claude Code skill: what it does, how to install

Runs read-only SQL queries against Microsoft SQL Server databases. Useful for exploring schemas and analyzing data without the risk of mutating records.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sanjay3290/ai-skills --skill mssql -a claude-code
Open on GitHub

What mssql does

This skill connects to Microsoft SQL Server instances using pymssql and the scripts/query.py runner. Database configurations live in connections.json or ~/.config/claude/mssql-connections.json. Each entry defines connection credentials along with a description. The agent reads these descriptions to pick the relevant database automatically. Because credentials sit in plain text, the file requires chmod 600 connections.json permissions.

Read-only safety is enforced at the query level. The script permits only SELECT, SHOW, EXPLAIN, WITH, and SP_HELP statements, rejecting multiple commands in a single query. When you pass the --limit flag, it automatically rewrites the query to use MSSQL's TOP N syntax.

Execution fails immediately if Python 3.8+ or the pymssql package is missing. Result sets cap out at 10,000 rows to prevent high memory usage, and queries time out after 30 seconds. Passwords are stripped from error output to avoid credential leaks in chat logs.

What it helps with

  • inspect MSSQL database schemas and table structures
  • run analytical queries without risking data modifications
  • route queries across multiple databases using natural descriptions
  • limit query result sizes via automatic TOP N conversion

Example prompts for the agent

  • List the available databases configured in mssql
  • Query the top 10 rows from the users table in production
  • Show the table schema for the app_prod database

How to install mssql

1Skills CLI (Vercel)

npx skills add sanjay3290/ai-skills --skill mssql -a claude-code

2Manually: put the files in place

~/.claude/skills/mssql/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/mssql/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about mssql

How to install mssql in Claude Code?

Run npx skills add sanjay3290/ai-skills --skill mssql -a claude-code. The runner also requires Python 3.8+ and packages from requirements.txt.

What does the mssql skill do?

It connects to Microsoft SQL Server databases, inspects schemas and tables, and runs read-only analytical queries.

Does the skill block data modifications?

Yes, query validation rejects INSERT, UPDATE, DELETE, and DROP commands. Only SELECT, SHOW, EXPLAIN, WITH, and SP_HELP statements are permitted.

Source text

SKILL.md · Apache-2.0
---
name: mssql
description: "Execute read-only SQL queries against multiple Microsoft SQL Server databases. Use when: (1) querying MSSQL/SQL Server databases, (2) exploring database schemas/tables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database connections with descriptions for intelligent auto-selection. Blocks all write operations (INSERT, UPDATE, DELETE, DROP, etc.) for safety."
license: Apache-2.0
metadata:
  author: sanjay3290
  version: "1.0"
---

# MSSQL Read-Only Query Skill

Execute safe, read-only queries against configured Microsoft SQL Server databases.

## Requirements

- Python 3.8+
- pymssql: `pip install -r requirements.txt`

## Setup

Create `connections.json` in the skill directory or `~/.config/claude/mssql-connections.json`.

**Security**: Set file permissions to `600` since it contains credentials:
```bash
chmod 600 connections.json
```

```json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 1433,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "encrypt": true,
      "tds_version": "7.3"
    }
  ]
}
```

### Config Fields

| Field | Required | Description |
|-------|----------|-------------|
| name | Yes | Identifier for the database (case-insensitive) |
| description | Yes | What data this database contains (used for auto-selection) |
| host | Yes | Database hostname |
| port | No | Port number (default: 1433) |
| database | Yes | Database name |
| user | Yes | Username |
| password | Yes | Password |
| encrypt | No | Enable TLS encryption (default: false) |
| tds_version | No | TDS protocol version: 7.0, 7.1, 7.2, 7.3, 7.4 (default: auto) |

## Usage

### List configured databases
```bash
python3 scripts/query.py --list
```

### Query a database
```bash
python3 scripts/query.py --db production --query "SELECT TOP 10 * FROM users"
```

### List tables
```bash
python3 scripts/query.py --db production --tables
```

### Show schema
```bash
python3 scripts/query.py --db production --schema
```

### Limit results
```bash
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100
```

**Note**: MSSQL uses `TOP N` instead of `LIMIT`. The `--limit` flag automatically inserts `TOP N` after SELECT.

## Database Selection

Match user intent to database `description`:

| User asks about | Look for description containing |
|-----------------|--------------------------------|
| users, accounts | users, accounts, customers |
| orders, sales | orders, transactions, sales |
| analytics, metrics | analytics, metrics, reports |
| logs, events | logs, events, audit |

If unclear, run `--list` and ask user which database.

## Safety Features

- **Read-only enforcement**: Query validation blocks write operations (use a `db_datareader` role user for server-side protection)
- **Query validation**: Only SELECT, SHOW, EXPLAIN, WITH, SP_HELP queries allowed
- **Single statement**: Multiple statements per query rejected
- **TLS support**: Configurable encryption for secure connections
- **Query timeout**: 30-second timeout enforced via pymssql
- **Connection timeout**: 10-second login timeout
- **Memory protection**: Max 10,000 rows per query to prevent OOM
- **Column width cap**: 100 char max per column for readable output
- **Credential sanitization**: Error messages don't leak passwords

## Troubleshooting

| Error | Solution |
|-------|----------|
| Config not found | Create `connections.json` in skill directory |
| Authentication failed | Check username/password in config |
| Connection timeout | Verify host/port, check firewall/VPN |
| TDS version error | Try `"tds_version": "7.3"` or `"7.4"` |
| Encryption error | Set `"encrypt": true` for Azure SQL |
| Permission warning | Run `chmod 600 connections.json` |

## Exit Codes

- **0**: Success
- **1**: Error (config missing, auth failed, invalid query, database error)

## Workflow

1. Run `--list` to show available databases
2. Match user intent to database description
3. Run `--tables` or `--schema` to explore structure
4. Execute query with appropriate `--limit` (auto-converts to TOP N)

© sanjay3290 · Apache-2.0 · sanjay3290/ai-skills

Similar skills

All skills for Data and databases →

From the same set15

deep-research Runs multi-step autonomous investigations using the Google Gemini Deep Research Agent. Generates cited technical reports, market overviews, and competitive matrices. CX Codex +1 672installs imagen This skill turns a text prompt into a PNG using Google Gemini, saving the file straight into your project. Handy for icons, placeholders and docs illustrations. CX Codex +1 626installs postgres Runs safe read-only SQL queries against PostgreSQL databases. Helpful for inspecting schemas, running SELECT queries, and analyzing data without write risks. CX Codex +1 620installs google-calendar This skill lets your agent read Google Calendar, create and edit events, and find free slots. OAuth only, no MCP server involved. CX Codex +1 536installs gmail Searches, reads, and sends emails through Gmail directly from the agent interface. Helpful for triaging the inbox, managing drafts, and organizing labels. CX Codex +1 516installs google-sheets This skill gives your agent read and write access to Google Sheets: pull ranges, append rows, search for files by name. Handy when the data lives in a spreadsheet, not in code. CX Codex +1 465installs mysql This skill runs SELECT queries against several MySQL databases and blocks every write. Handy when you want to inspect a schema or pull data without touching production. CX Codex +1 420installs google-slides A skill for searching, reading, creating, and editing Google Slides presentations directly from agent commands. Uses Python scripts with standalone OAuth. CX Codex +1 407installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor