# MSSQL MCP Server - Complete Tool Reference

## 📊 Overview
- **Original Version**: 8 core tools
- **Current Version**: 29 comprehensive tools
- **Improvement**: 263% more capabilities
- **Focus**: Classic ASP to .NET/Angular modernization

---

## 🔧 Core Database Tools (8 tools)
*Essential connectivity and basic database operations*

| Tool Name | Description | Use Case |
|-----------|-------------|----------|
| `list_connections` | List all available named database connections | Connection management |
| `test_connection` | Test database connectivity and get server info | Connection validation |
| `list_databases` | List all databases on SQL Server instance | Database discovery |
| `list_tables` | List all tables in connected database | Schema overview |
| `describe_table` | Get detailed table schema with columns/constraints | Table analysis |
| `sample_data` | Retrieve sample data from tables (top 10 rows) | Data exploration |
| `execute_query` | Execute custom SELECT queries when explicitly enabled with `MSSQL_ENABLE_EXECUTE_QUERY=true` | Custom analysis |
| `get_relationships` | Get foreign key relationships between tables | Relationship mapping |

---

## 🏗️ Schema Discovery Tools (7 tools)
*Extract business logic from database objects*

| Tool Name | Description | Business Value |
|-----------|-------------|----------------|
| `list_stored_procedures` | List all stored procedures and functions | Find business logic to convert |
| `describe_stored_procedure` | Get procedure parameters and definition | Extract business rules |
| `list_views` | List all views with creation info | Identify data abstractions |
| `describe_view` | Get view definition and dependencies | Understand data transformations |
| `list_triggers` | List triggers and associated tables | Find event-driven logic |
| `describe_trigger` | Get trigger definition and events | Extract trigger business rules |
| `list_functions` | List user-defined functions by type | Catalog reusable logic |

**🎯 Modernization Value**: Extract business logic embedded in database objects for conversion to .NET services

---

## ⚡ Index & Performance Tools (5 tools)
*Optimize database performance and identify bottlenecks*

| Tool Name | Description | Performance Impact |
|-----------|-------------|-------------------|
| `list_indexes` | List indexes with detailed usage statistics | Identify index effectiveness |
| `analyze_table_stats` | Get table sizes, row counts, space usage | Plan for scaling |
| `find_missing_indexes` | Identify missing indexes from query patterns | Improve query performance |
| `analyze_index_usage` | Find unused/underutilized indexes | Reduce maintenance overhead |
| `analyze_database_size` | Complete database storage analysis | Capacity planning |

**🎯 Modernization Value**: Optimize database performance before and after modernization

---

## 🔒 Constraint Analysis Tools (5 tools)
*Extract business rules from database constraints*

| Tool Name | Description | Business Rules |
|-----------|-------------|----------------|
| `list_constraints` | List all constraints across tables | Catalog all business rules |
| `analyze_check_constraints` | Extract business rules from check constraints | Convert to validation logic |
| `list_user_defined_types` | List custom data types and definitions | Understand domain models |
| `find_computed_columns` | List computed columns and formulas | Extract calculation logic |
| `list_default_constraints` | List default value constraints | Understand default behaviors |

**🎯 Modernization Value**: Convert database business rules to application-layer validation

---

## 📊 Data Pattern Analysis Tools (4 tools)
*Understand data usage and quality patterns*

| Tool Name | Description | Analysis Value |
|-----------|-------------|----------------|
| `analyze_data_distribution` | Get data distribution and quality patterns | Assess data quality |
| `find_lookup_tables` | Automatically identify reference/lookup tables | Plan for normalized design |
| `analyze_null_patterns` | Find columns with high null percentages | Identify optional fields |
| `detect_audit_columns` | Identify audit trail patterns | Plan tracking requirements |

**🎯 Modernization Value**: Understand data patterns for modern application design

---

## 🚀 Usage Examples

### Business Logic Discovery
```javascript
// Find all stored procedures containing business logic
await mcp.call("list_stored_procedures", { 
  schema: "MyApp", 
  includeSystemObjects: false 
});

// Extract specific business rule
await mcp.call("describe_stored_procedure", {
  procedureName: "CalculateOrderTotal",
  includeDefinition: true
});

// Find business rules in constraints
await mcp.call("analyze_check_constraints", { schema: "MyApp" });
```

### Performance Analysis
```javascript
// Identify performance optimization opportunities
await mcp.call("find_missing_indexes", { 
  schema: "MyApp", 
  minImpact: 1000 
});

// Find unused indexes to remove
await mcp.call("analyze_index_usage", { 
  schema: "MyApp", 
  showUnusedOnly: true 
});
```

### Data Architecture Planning
```javascript
// Identify lookup tables for reference data
await mcp.call("find_lookup_tables", { 
  schema: "MyApp", 
  maxRows: 1000 
});

// Find audit patterns for modern tracking
await mcp.call("detect_audit_columns", { schema: "MyApp" });
```

---

## 🛡️ Security Features

- **Read-Only Operations**: All tools use SELECT-only queries
- **Query Validation**: Blocks dangerous SQL operations (INSERT, UPDATE, DELETE, etc.)
- **Parameter Sanitization**: Safe handling of all input parameters
- **Connection Security**: Secure connection string management
- **Result Limiting**: Automatic limits on query results

---

## 🎯 Classic ASP Modernization Workflow

### Phase 1: Discovery
1. `list_databases` → Identify application databases
2. `list_tables` → Map data structure
3. `get_relationships` → Understand data relationships
4. `find_lookup_tables` → Identify reference data

### Phase 2: Business Logic Extraction
1. `list_stored_procedures` → Find business logic
2. `describe_stored_procedure` → Extract specific rules
3. `analyze_check_constraints` → Find validation rules
4. `list_triggers` → Identify event handling

### Phase 3: Performance Assessment
1. `analyze_table_stats` → Assess current performance
2. `find_missing_indexes` → Optimize queries
3. `analyze_index_usage` → Remove unused indexes
4. `analyze_database_size` → Plan capacity

### Phase 4: Data Quality Analysis
1. `analyze_data_distribution` → Assess data quality
2. `analyze_null_patterns` → Identify data issues
3. `detect_audit_columns` → Plan tracking features

---

## 📈 Benefits for Modernization

### Business Logic Discovery
- **Extract 100% of database business rules**
- **Identify hidden validation logic**
- **Find event-driven processes**
- **Catalog reusable functions**

### Performance Optimization
- **Identify performance bottlenecks**
- **Optimize before migration**
- **Plan for modern workloads**
- **Reduce technical debt**

### Architecture Planning
- **Design Entity Framework models**
- **Plan microservices boundaries**
- **Identify shared reference data**
- **Design audit/logging systems**

### Risk Mitigation
- **Ensure no business logic is lost**
- **Maintain data integrity**
- **Preserve performance characteristics**
- **Plan for scalability**

---

## 🔧 Technical Specifications

- **Language**: TypeScript/Node.js
- **Database**: Microsoft SQL Server (all versions)
- **Protocol**: Model Context Protocol (MCP)
- **Architecture**: Modular, extensible design
- **Security**: Read-only, validated queries
- **Performance**: Optimized for large databases

This comprehensive MCP server provides everything needed to analyze and modernize Classic ASP applications with confidence and completeness.
