{"_id":"@albertsnowden/sql-mcp-server","_rev":"2-a5a3268b7b63a62d37d188f2d3b42206","name":"@albertsnowden/sql-mcp-server","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@albertsnowden/sql-mcp-server","version":"1.0.0","keywords":["mcp","sql","llm","database","model-context-protocol","vscode","ai","postgresql","mysql","sqlite","chatgpt","claude"],"author":{"name":"albertsnowden"},"license":"MIT","_id":"@albertsnowden/sql-mcp-server@1.0.0","maintainers":[{"name":"albertsnowden","email":"albertsnowden96@gmail.com"}],"homepage":"https://github.com/albertsnowden/sql-mcp-server#readme","bugs":{"url":"https://github.com/albertsnowden/sql-mcp-server/issues"},"bin":{"sql-mcp-server":"dist/index.js"},"dist":{"shasum":"c488a18ddc1ce56796268c099f9b876e4b2cfb51","tarball":"https://registry.npmjs.org/@albertsnowden/sql-mcp-server/-/sql-mcp-server-1.0.0.tgz","fileCount":56,"integrity":"sha512-IvIAEQmyQadFigrnOzytKGgApIHFw8j6zeIwjbB5JOq7s/uqFEkrAYEHIDjptHv29RdRLf58JtmbpAfu3ZzAdg==","signatures":[{"sig":"MEUCIQDoPevFPrj8IFJc9sf5le+Nc7SEKFOdAl81EPfH82dSoQIgCfl4M+eveDcjovT7sOHWSY6MWyYg9vXr6NcNstlWazs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171047},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4ccc44100773c0d1d174a5163b87c6de2e07d410","scripts":{"dev":"ts-node src/index.ts","test":"vitest","build":"tsc","start":"node dist/index.js","mcp:start":"node dist/index.js","mcp:install":"npm run build && npm link","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"albertsnowden","email":"albertsnowden96@gmail.com"},"repository":{"url":"git+https://github.com/albertsnowden/sql-mcp-server.git","type":"git"},"_npmVersion":"9.2.0","description":"MCP server for LLM-SQL integration with comprehensive database access and security","directories":{},"_nodeVersion":"18.19.1","dependencies":{"pg":"^8.16.0","zod":"^3.25.28","dotenv":"^16.5.0","mysql2":"^3.14.1","@types/pg":"^8.15.2","@modelcontextprotocol/sdk":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","vitest":"^3.1.4","nodemon":"^3.1.9","typescript":"^5.8.3","@types/node":"^22.15.21"},"_npmOperationalInternal":{"tmp":"tmp/sql-mcp-server_1.0.0_1748370925701_0.3785483992743406","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@albertsnowden/sql-mcp-server","version":"1.0.1","description":"MCP server for LLM-SQL integration with comprehensive database access and security","main":"dist/index.js","type":"module","bin":{"sql-mcp-server":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","dev":"ts-node src/index.ts","test":"vitest","test:coverage":"vitest --coverage","prepublishOnly":"npm run build","mcp:install":"npm run build && npm link","mcp:start":"node dist/index.js"},"keywords":["mcp","sql","llm","database","model-context-protocol","vscode","ai","postgresql","mysql","sqlite","chatgpt","claude"],"author":{"name":"albertsnowden"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/albertsnowden/sql-mcp-server.git"},"bugs":{"url":"https://github.com/albertsnowden/sql-mcp-server/issues"},"homepage":"https://github.com/albertsnowden/sql-mcp-server#readme","engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.3","@types/pg":"^8.15.2","dotenv":"^16.5.0","mysql2":"^3.14.1","pg":"^8.16.0","zod":"^3.25.28"},"devDependencies":{"@types/node":"^22.15.21","nodemon":"^3.1.9","tsx":"^4.19.4","typescript":"^5.8.3","vitest":"^3.1.4"},"_id":"@albertsnowden/sql-mcp-server@1.0.1","gitHead":"aa76e8aa46465fb275f2fbea9efa459504cbfa02","types":"./dist/index.d.ts","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-eVsfB1rPg9Dd+IBvfN6cvLLvSlxrqyFCkugn/LZvgwGxQlvBNn5tYm00zJ54eA83MgkK2J+oz76X7KXHWzOEKQ==","shasum":"bf3796b902281b09483dae274f3a1d85ac593ac7","tarball":"https://registry.npmjs.org/@albertsnowden/sql-mcp-server/-/sql-mcp-server-1.0.1.tgz","fileCount":56,"unpackedSize":171781,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCAZeV3yMy+sqw71Bf5cqtSrJONoq1bvnROG+ddkrQUewIgQcZXqc60nWhLSFPbmniZbNGW6Hol2XCQVC7hjBK1jKI="}]},"_npmUser":{"name":"albertsnowden","email":"albertsnowden96@gmail.com"},"directories":{},"maintainers":[{"name":"albertsnowden","email":"albertsnowden96@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sql-mcp-server_1.0.1_1748373086617_0.8208298796156279"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-27T18:35:25.585Z","modified":"2025-05-27T19:11:27.017Z","1.0.0":"2025-05-27T18:35:25.902Z","1.0.1":"2025-05-27T19:11:26.840Z"},"bugs":{"url":"https://github.com/albertsnowden/sql-mcp-server/issues"},"author":{"name":"albertsnowden"},"license":"MIT","homepage":"https://github.com/albertsnowden/sql-mcp-server#readme","keywords":["mcp","sql","llm","database","model-context-protocol","vscode","ai","postgresql","mysql","sqlite","chatgpt","claude"],"repository":{"type":"git","url":"git+https://github.com/albertsnowden/sql-mcp-server.git"},"description":"MCP server for LLM-SQL integration with comprehensive database access and security","maintainers":[{"name":"albertsnowden","email":"albertsnowden96@gmail.com"}],"readme":"# @albertsnowden/sql-mcp-server\n\n[![npm version](https://badge.fury.io/js/@albertsnowden%2Fsql-mcp-server.svg)](https://badge.fury.io/js/@albertsnowden%2Fsql-mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA comprehensive Model Context Protocol (MCP) server that enables Large Language Models to safely interact with SQL databases. This server provides secure database access, schema introspection, and intelligent query execution with built-in safety measures.\n\nPerfect for integration with VS Code MCP extension, Claude Desktop, and other MCP-compatible clients.\n\n## 🚀 Quick Install\n\n```bash\nnpm install -g @albertsnowden/sql-mcp-server\n```\n\n## ✨ Features\n\n- **🔒 Security First**: Role-based access control, query validation, and SQL injection prevention\n- **🗃️ Multi-Database Support**: PostgreSQL, MySQL, SQLite, and SQL Server\n- **🤖 LLM Optimized**: Rich context provision and natural language query support\n- **⚡ High Performance**: Connection pooling, query caching, and optimization\n- **📊 Monitoring**: Comprehensive logging, metrics, and error tracking\n- **🛡️ Production Ready**: Rate limiting, authentication, and audit trails\n- **🔌 VS Code Integration**: Seamless integration with VS Code MCP extension\n\n## 🔧 VS Code Setup\n\n### 1. Install the MCP Extension\nInstall the MCP extension for VS Code from the marketplace.\n\n### 2. Install the SQL Server\n```bash\nnpm install -g @albertsnowden/sql-mcp-server\n```\n\n### 3. Configure VS Code Settings\nAdd this to your VS Code `settings.json`:\n\n```json\n{\n  \"mcp.servers\": {\n    \"sql-server\": {\n      \"command\": \"sql-mcp-server\",\n      \"env\": {\n        \"DB_TYPE\": \"postgresql\",\n        \"DB_HOST\": \"localhost\",\n        \"DB_PORT\": \"5432\",\n        \"DB_NAME\": \"your_database\",\n        \"DB_USER\": \"your_user\",\n        \"DB_PASSWORD\": \"your_password\"\n      }\n    }\n  }\n}\n```\n\n### 4. Alternative: Use Configuration File\nCreate a `.env` file in your workspace:\n\n```bash\nDB_TYPE=postgresql\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=your_database\nDB_USER=your_user\nDB_PASSWORD=your_password\n```\n\n## 📦 Installation Options\n\n### Global Installation (Recommended for VS Code)\n```bash\nnpm install -g @albertsnowden/sql-mcp-server\n```\n\n### Local Project Installation\n```bash\nnpm install @albertsnowden/sql-mcp-server\n```\n\n### Using npx (No Installation Required)\n```bash\nnpx @albertsnowden/sql-mcp-server\n```\n\n## 🗃️ Database Setup\n\nCreate a dedicated user for the MCP server with limited permissions:\n\n### PostgreSQL\n```sql\nCREATE USER mcp_user WITH PASSWORD 'secure_password';\nGRANT CONNECT ON DATABASE your_database TO mcp_user;\nGRANT USAGE ON SCHEMA public TO mcp_user;\nGRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_user;\n```\n\n### MySQL\n```sql\nCREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'secure_password';\nGRANT SELECT ON your_database.* TO 'mcp_user'@'localhost';\nFLUSH PRIVILEGES;\n```\n\n## 🛠️ MCP Tools Available\n\nThe server exposes these MCP tools for LLM interaction:\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `9f1_list_tables` | Get all available tables | `schema?` (optional) |\n| `9f1_describe_table` | Get table schema and relationships | `table_name` |\n| `9f1_execute_query` | Run SELECT queries safely | `query`, `max_rows?`, `timeout?` |\n| `9f1_get_sample_data` | Fetch representative data samples | `table_name`, `limit?` |\n| `9f1_validate_query` | Check query syntax and permissions | `query` |\n| `9f1_search_schema` | Find tables/columns by name | `search_term` |\n\n## 🔐 Environment Variables\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `DB_TYPE` | Database type (postgresql, mysql, sqlite) | postgresql | ✅ |\n| `DB_HOST` | Database host | localhost | ✅ |\n| `DB_PORT` | Database port | 5432 | ✅ |\n| `DB_NAME` | Database name | - | ✅ |\n| `DB_USER` | Database user | - | ✅ |\n| `DB_PASSWORD` | Database password | - | ✅ |\n| `LOG_LEVEL` | Logging level (error, warn, info, debug) | info | ❌ |\n| `MAX_QUERY_RESULTS` | Maximum rows returned | 10000 | ❌ |\n| `QUERY_TIMEOUT` | Query timeout in seconds | 30 | ❌ |\n\n## 💡 Usage Examples\n\n### Ask Natural Language Questions\nOnce configured in VS Code, you can ask your AI assistant questions like:\n\n- \"Show me all tables in the database\"\n- \"What's the structure of the users table?\"\n- \"How many orders were placed last month?\"\n- \"Find customers who haven't placed orders\"\n\n### Direct MCP Protocol Usage\n```json\n{\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"9f1_execute_query\",\n    \"arguments\": {\n      \"query\": \"SELECT COUNT(*) FROM users WHERE created_at > NOW() - INTERVAL '30 days'\"\n    }\n  }\n}\n```\n\n## 🔒 Security Features\n\n- **Query Validation**: Prevents dangerous SQL operations (DROP, ALTER, etc.)\n- **Parameter Binding**: All queries use parameterized statements\n- **Rate Limiting**: Configurable request limits per client\n- **Audit Logging**: All queries and access attempts are logged\n- **Connection Security**: SSL/TLS database connections supported\n- **Read-Only by Default**: Only SELECT operations allowed unless explicitly configured\n\n## 🚀 Production Deployment\n\n### Docker\n```dockerfile\nFROM node:18-alpine\nRUN npm install -g @albertsnowden/sql-mcp-server\nCMD [\"sql-mcp-server\"]\n```\n\n### Systemd Service\n```ini\n[Unit]\nDescription=MCP SQL Server\nAfter=network.target\n\n[Service]\nType=simple\nUser=mcp\nExecStart=/usr/bin/sql-mcp-server\nEnvironment=DB_TYPE=postgresql\nEnvironment=DB_HOST=localhost\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Make your changes\n4. Run tests: `npm test`\n5. Commit: `git commit -m 'Add amazing feature'`\n6. Push: `git push origin feature/amazing-feature`\n7. Submit a pull request\n\n## 📋 Changelog\n\n### v1.0.0\n- Initial release\n- Support for PostgreSQL, MySQL, SQLite\n- VS Code MCP integration\n- Comprehensive security features\n- Production-ready deployment options\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n- 📚 [Documentation](https://github.com/albertsnowden/sql-mcp-server/docs)\n- 🐛 [Report Issues](https://github.com/albertsnowden/sql-mcp-server/issues)\n- 💬 [Discussions](https://github.com/albertsnowden/sql-mcp-server/discussions)\n\n## 🙏 Acknowledgments\n\nBuilt with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk) and inspired by the need for secure, intelligent database access for LLMs.","readmeFilename":"README.md"}