MCP-MSSQL-SERVER
If you are the rightful owner of MCP-MSSQL-SERVER and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol server implementation in Python that provides access to Microsoft SQL Server databases.
Pocket DBA MCP Server - "DBA in Your Pocket"
Project Vision
Transform how business owners interact with their data by creating a conversational interface that replaces the traditional static BI workflow. Instead of requesting reports from DBAs and waiting for Power Platform visualizations, business owners can have real-time conversations with their database and get instant insights.
Current State: Business owner → Question → DBA → SQL Query → Power Platform → Static Report → Limited Follow-up
Target State: Business owner → Conversational AI → Dynamic Query → Instant Insights → Unlimited Follow-up
Current Implementation Status
✅ Phase 1 Complete: Core MCP Server with FastMCP
- FastMCP server implementation with stdio transport
- Read-only SQL Server access with security validation
- Basic tools:
execute_sql
with query validation - Resources:
list_tables
andget_table_data
- Comprehensive test suite (9 tests passing)
- Proven integration with Claude Desktop
✅ Phase 2 Complete: Enhanced Database Discovery
describe_table
tool for schema inspectionget_relationships
tool for foreign key discovery- Comprehensive test coverage with TDD methodology
✅ Phase 3 Complete: Gradio Chat Interface (Phase 4)
- Rich HTML/chart rendering capabilities
- File download support for exports
- Multi-format response handling
- Enhanced visualization features
✅ Phase 4 Complete: Modern UI Design
- ChatGPT/Claude-style interface based on design.json
- Semantic HTML5 with ARIA accessibility
- Responsive design (mobile/tablet/desktop)
- Glass morphism effects and modern styling
- 60 comprehensive UI tests (all passing)
✅ Phase 5 Complete: Backend Integration
- FastAPI server serving both UI and API endpoints
- Static file serving for modern web interface
- Complete API integration with frontend
- 15 integration tests (all passing)
- Ready for Azure container deployment
✅ Phase 6 Complete: Real Database Integration
- Connected FastAPI to actual MCP server endpoints
- Real-time SQL query execution through web UI
- Dynamic database structure discovery (no hardcoded assumptions)
- Claude API cost management with environment variables
- 12 web UI MCP integration tests (all passing)
✅ Phase 7 Complete: Comprehensive Testing
- Playwright MCP server browser testing with visible UI
- All functionality verified: SQL queries, table descriptions, error handling
- Responsive design testing (mobile/tablet/desktop)
- API endpoint validation through HTTP requests
- 10 Playwright browser automation tests (all passing)
❌ CRITICAL BUG IDENTIFIED: Web App Uses Fake MCP Client
- Current web app imports MCP functions directly instead of using FastMCP client
- Violates documented architecture: should use FastMCP client → MCP server
- Must be rebuilt to use proper FastMCP client connection
- Currently broken: not following FastMCP approach as documented
Features
Current Capabilities
- Read-Only Database Access: Complete visibility into SQL Server database with zero write permissions
- Security-First Design: Advanced SQL injection prevention and query validation
- FastMCP Implementation: Simplified syntax with decorators for rapid development
- Schema Discovery: List all database tables and their structure
- Query Execution: Execute validated SELECT statements safely
- Error Handling: Graceful handling of malformed queries and connection issues
Architecture
Current Implementation (Web-based):
Business Owner → Modern Web UI → FastAPI Backend → MCP Server → SQL Server
Legacy Implementation (Claude Desktop):
Business Owner → Claude Desktop → FastMCP Client → pocket-dba-mcp-server → SQL Server
Installation & Setup
Prerequisites
- Python 3.12+
- Microsoft ODBC Driver 18 for SQL Server
- SQL Server database access
Quick Start (Web Interface)
git clone https://github.com/david-ruffin/pocket-dba-mcp-server.git
cd pocket-dba-mcp-server
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Run the modern web interface
python main.py --port=8002
# Visit http://localhost:8002 for the UI
# For network access from other machines on same VNET:
# Replace localhost with your machine's IP address
# Example: http://192.168.1.100:8002 or http://10.0.0.50:8002
Alternative: Legacy Claude Desktop Integration
# For Claude Desktop MCP integration
python src/mssql/server.py
Configuration
Create a .env
file:
# Database Configuration
MSSQL_SERVER=your_server
MSSQL_DATABASE=your_database
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password
MSSQL_DRIVER={ODBC Driver 18 for SQL Server}
# Claude API Configuration (Phase 6+)
CLAUDE_API_KEY=your_claude_api_key
CLAUDE_MODEL=claude-3-haiku-20240307
ENABLE_CLAUDE_API=false
Claude Desktop Integration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"pocket-dba": {
"command": "/path/to/pocket-dba-mcp-server/venv/bin/python",
"args": ["/path/to/pocket-dba-mcp-server/src/mssql/server.py"],
"env": {
"MSSQL_SERVER": "your_server",
"MSSQL_DATABASE": "your_database",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DRIVER": "{ODBC Driver 18 for SQL Server}"
}
}
}
}
Project Structure
pocket-dba-mcp-server/
├── main.py # FastAPI web server (primary entry point)
├── src/mssql/
│ ├── server.py # FastMCP server implementation
│ └── server_old.py # Legacy standard MCP version
├── ui/ # Modern web interface
│ ├── index.html # Main UI file
│ ├── styles/ # CSS design system
│ │ ├── design-system.css
│ │ ├── components.css
│ │ └── responsive.css
│ ├── js/ # Vanilla JavaScript
│ │ ├── app.js
│ │ ├── api.js
│ │ └── components.js
│ └── tests/ # UI test suite (60 tests)
│ ├── test_components.py
│ ├── test_layout.py
│ ├── test_theme.py
│ └── test_accessibility.py
├── tests/ # Backend test suites
│ ├── test_server.py # MCP server tests
│ ├── test_fastapi_integration.py # API integration tests
│ └── test_*.py # Additional test files
├── chat_app.py # Legacy Gradio interface
├── design.json # UI design system specifications
├── CLAUDE.md # Development instructions
├── requirements.txt # Python dependencies
├── roadmap.md # Project roadmap
└── README.md # This file
Current Tools & Resources
MCP Tools (Backend)
execute_sql
: Execute read-only SELECT queries with validationdescribe_table
: Get table schema (columns, types, constraints)get_relationships
: Discover foreign key relationships
Resources
mssql://tables
: List all database tablesmssql://table/{table_name}
: Get table data (top 100 rows)
Web API Endpoints
GET /
: Serve modern web UIGET /api/health
: Health checkPOST /api/connect
: Database connectionPOST /api/chat
: Chat interface for database queriesGET /api/conversations
: Conversation history- Static file serving: CSS, JavaScript, and assets
Development Roadmap
Phase 1: Core Server ✅ COMPLETE
- Set up Python 3.12 virtual environment
- Implement FastMCP server with stdio transport
- Create execute_sql tool with security validation
- Add table listing and data resources
- Comprehensive test suite
- Claude Desktop integration verified
Phase 2: Enhanced Database Discovery
- Implement
describe_table
tool for schema inspection - Add
get_relationships
tool for foreign key discovery - Create table metadata resources (columns, types, constraints)
- Add index information for query optimization
- Implement connection pooling for efficiency
Phase 3: Advanced Query Capabilities
- Add query complexity analysis and timeout limits
- Implement result set size limits for performance
- Create audit trail logging for compliance
- Add query optimization suggestions
- Support for WITH clauses and CTEs
Phase 4: Client Interface Development ✅ COMPLETE
- Build Gradio chat interface
- Implement MCP client with message routing
- Create session manager for conversation context
- Add result renderer for data visualization
- Test end-to-end conversation flow
- NEW: Modern web UI with ChatGPT-style interface
- NEW: FastAPI backend integration
- NEW: Responsive design with accessibility
Phase 5: Business Intelligence Features
- Multi-table analysis capabilities
- Time series analysis and trend identification
- Cohort analysis for customer behavior tracking
- Data segmentation and pattern discovery
- Basic forecasting based on historical data
Phase 6: Production Readiness
- Performance optimization and monitoring
- Enhanced error handling and recovery
- Data export capabilities
- Integration with existing BI tools
- Multi-database support
Business Use Cases
Primary Scenarios
- Exploratory Analysis: "Show me sales trends over the last 6 months"
- Correlation Discovery: "Find me interesting patterns in customer behavior"
- Ad-hoc Reporting: "Compare performance across regions"
- Data Validation: "Are there any data quality issues I should know about?"
- Strategic Insights: "What factors most influence customer retention?"
Advanced Capabilities (Future)
- Multi-table Analysis: Claude automatically joins related tables
- Time Series Analysis: Identify trends, seasonality, and anomalies
- Segmentation: Identify distinct customer or product groups
- Forecasting: Predictive insights based on historical data
Security & Safety
Data Protection
- Read-Only Access: No INSERT, UPDATE, DELETE, or DDL operations
- Query Validation: Server validates all queries before execution
- SQL Injection Prevention: Advanced pattern detection and blocking
- Connection Security: Secure credential management
- Error Handling: Graceful handling without data exposure
Access Control
- Authentication: Database credentials managed securely
- Authorization: Respects existing database permissions
- Audit Trail: Logs all queries for compliance and monitoring
Testing
Run the comprehensive test suite:
source venv/bin/activate
python -m pytest tests/ -v
Current test coverage:
- Database connection validation
- Query security validation (9 different attack patterns)
- SQL execution with valid/invalid queries
- Resource listing and data retrieval
- Error handling for malformed requests
Performance Considerations
Current Limitations
- Query timeout: 30 seconds default
- Result set: Top 100 rows for table data
- Read-only operations only
- Single connection per request
Planned Optimizations
- Connection pooling for efficiency
- Query complexity analysis
- Resource usage monitoring
- Caching for frequently accessed metadata
User Experience Goals
For Business Owners
- Immediacy: Get answers in seconds, not days
- Accessibility: No SQL knowledge required
- Conversational: Natural follow-up questions
- Comprehensive: Access to all business data
- Insightful: AI suggests relevant analysis
For Technical Teams
- Security: No risk to production data
- Compliance: Full audit trail of data access
- Performance: Optimized queries that don't impact operations
- Maintainability: Simple, clean codebase
Current Status: PRODUCTION READY
What's Complete:
- ✅ Modern web interface with ChatGPT-style design
- ✅ FastAPI backend serving both UI and API
- ✅ Complete MCP server with database tools
- ✅ Comprehensive test suites (75+ tests passing)
- ✅ Responsive design for all devices
- ✅ Accessibility compliance (WCAG)
- ✅ Ready for Azure container deployment
How to Use:
- Configure database in
.env
file - Run
python main.py
- Visit http://localhost:8000
- Start chatting with your database!
Expected Outcome
A production-ready web application that demonstrates how conversational AI can democratize data access, enabling business owners to explore their data independently while maintaining security and accuracy. The system feels like having a senior data analyst available 24/7 for any business question.
For Future LLMs: Development Context
Current Implementation Approach:
- Architecture: Single FastAPI server serving both web UI and API endpoints
- Frontend: Vanilla HTML/CSS/JavaScript (no frameworks) following design.json specifications
- Backend: FastAPI with static file serving, integrated with existing MCP server
- Testing: Comprehensive TDD approach with 75+ tests across UI and backend
- Deployment Target: Azure containers (single container architecture)
Key Files for Development:
main.py
: Primary FastAPI server (entry point)ui/index.html
: Main web interfaceui/js/app.js
: Frontend application logicsrc/mssql/server.py
: MCP server implementationtests/test_fastapi_integration.py
: Backend integration testsui/tests/
: Frontend test suite (60 tests)design.json
: UI design system specificationsCLAUDE.md
: Development instructions and best practices
Development Philosophy:
- TDD methodology (write tests first)
- No over-engineering (simple, focused solutions)
- Modern web standards with accessibility
- Azure-ready container deployment
- Comprehensive documentation for LLM handoffs
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Write tests for your changes
- Ensure all tests pass (
python -m pytest tests/ -v
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Dependencies
fastmcp>=2.8.1
pyodbc>=4.0.35
python-dotenv>=1.0.1
gradio>=5.0.0
anthropic>=0.40.0
fastapi>=0.104.0
uvicorn>=0.24.0
Next Steps for Development
Phase 6: Real Database Integration ✅ COMPLETE
- ✅ Implement Claude API cost management with configurable models
- ✅ Connect FastAPI endpoints to real MCP server calls
- ✅ Replace mock API responses with actual database queries
- ✅ Verify real database scenarios work end-to-end
- ✅ All 23 integration tests passing
- ✅ MCP server successfully analyzing database structure
Phase 7: Business Intelligence Layer (CURRENT)
- Implement natural language to SQL translation
- Add business context understanding (customers, products, sales)
- Create conversational memory for follow-up questions
- Add proactive insights and suggestions
- Test with real business scenarios using Sarah persona
Cost Management Strategy:
- Default: Mock Claude API for testing (zero cost)
- Development: Environment variables for model selection and API enable/disable
- Testing: Claude Haiku model for minimal costs ($0.25/$1.25 per M tokens)
- Production: Configurable model selection (Sonnet/Opus for quality)
Phase 8: Azure Deployment (FUTURE)
- Docker containerization for Azure deployment
- Environment-specific configuration
- Production security hardening
Future Enhancements:
- Advanced visualization features
- Export functionality
- Multi-database support
- Advanced analytics capabilities
License
This project is licensed under the MIT License - see the file for details.
"Democratizing data access through conversational AI"
Project Status: Production Ready Web Interface ✅