{"id":"dperussina-mssql-mcp-server","name":"mssql-mcp-server","homepage":null,"repo_url":"https://github.com/dperussina/mssql-mcp-server","category":"devtools","subcategories":[],"tags":["mcp","sql-server","database","read-only","agent-tools","nodejs","stdio","http-sse"],"what_it_does":"Provides an MCP server that bridges AI assistants to an MS SQL Server database for discovery (schemas/tables), read-only SQL querying, and natural-language-to-SQL, with optional stdio (default) and HTTP/SSE transports.","use_cases":["Discover tables and schema in a SQL Server database","Fetch table metadata (columns/data types)","Run read-only SELECT queries and retrieve results (including saved result retrieval for large sets)","Help an AI generate SQL from natural language requests","Assist with data exploration/BI-style analysis via controlled database access"],"not_for":["Executing write/DDL operations (intended read-only behavior)","Handling sensitive production credentials in untrusted environments","Running unbounded/large queries without pagination or result caps","Scenarios requiring fine-grained per-user authorization and audit trails"],"best_when":"You want an agent to safely explore and query a SQL Server database from Claude/Cursor via MCP using locally stored credentials and read-only operations.","avoid_when":"You need strong enterprise-grade security controls (SSO, per-user RBAC, auditing) or you cannot guarantee network/host isolation for the server and credentials.","alternatives":["Other MCP database connectors (e.g., Postgres/MySQL MCP servers)","Direct database access via a secured API layer (custom backend with prepared queries)","BI tools or read-only data APIs (e.g., read-only GraphQL/REST over a warehouse)","Use SQL query generation within your app with parameterized queries and allowlisted operations"],"af_score":56.5,"security_score":48.0,"reliability_score":30.0,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:51:28.333139+00:00","interface":{"has_rest_api":true,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":"http://localhost:3333/sse (or configured SERVER_URL/port; default shown as http://localhost:3333)","has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":[".env-based database credentials (DB_USER/DB_PASSWORD)","No external user auth described for the MCP server itself"],"oauth":false,"scopes":false,"notes":"The README indicates DB credentials are stored locally in .env and used to connect to SQL Server. No explicit authentication/authorization for who can call the MCP server is documented."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source project; no pricing model described."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":56.5,"security_score":48.0,"reliability_score":30.0,"mcp_server_quality":78.0,"documentation_accuracy":70.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":55.0,"rate_limit_clarity":35.0,"tls_enforcement":60.0,"auth_strength":35.0,"scope_granularity":20.0,"dependency_hygiene":55.0,"secret_handling":75.0,"security_notes":"Intended read-only access and claims of SQL injection protection/validation, but the README does not document enforcement details, query allowlisting, or how unsafe statements are blocked. MCP server authentication/authorization for callers is not described, so exposure depends heavily on network isolation. Credentials are stored in a local .env file, which is a positive practice; however, the provided content does not confirm secure logging/no leakage.","uptime_documented":0.0,"version_stability":55.0,"breaking_changes_history":30.0,"error_recovery":35.0,"idempotency_support":"false","idempotency_notes":"Discovery and SELECT queries are naturally idempotent, but the evaluation cannot confirm idempotency guarantees for tool calls or retry behavior from the provided README content.","pagination_style":"offset/fetch and cursor-like pagination for queries; plus saved-result UUID retrieval","retry_guidance_documented":false,"known_agent_gotchas":["If the AI issues non-SQL-Server dialect syntax, it may fail unless prompted to use SQL Server OFFSET/FETCH or cursor patterns.","Large result sets should use pagination or saved-result retrieval (uuid) to avoid overwhelming the agent/context.","Without proper filtering, generated queries could be expensive even if read-only."]}}