{"id":"erikdarlingdata-performancestudio","name":"PerformanceStudio","homepage":"https://erikdarling.com","repo_url":"https://github.com/erikdarlingdata/PerformanceStudio","category":"ai-ml","subcategories":[],"tags":["sql-server","execution-plans","query-optimization","database-performance","cli","gui","mcp-server","model-context-protocol","missing-index-detection","query-store","dotnet"],"what_it_does":"PerformanceStudio analyzes SQL Server execution plans (.sqlplan XML), flags performance issues (memory grants, estimation mismatches, spills, parallel skew, late filters, lookups, scalar UDFs, implicit conversions, anti-patterns, etc.), suggests missing indexes, and can capture actual/estimated plans from a live SQL Server. It provides both CLI/JSON outputs for automation and a desktop GUI. It also includes an opt-in built-in MCP server to let LLM clients analyze loaded plans and Query Store data.","use_cases":["Analyze saved execution plan files (.sqlplan) and produce structured warnings and missing-index CREATE statements","Automate plan analysis in CI pipelines using JSON/text outputs","Capture and analyze execution plans from SQL Server (estimated or actual) for troubleshooting","Use Query Store integration to fetch top queries and review their plans","Use the embedded MCP server to have an AI assistant review loaded plans and Query Store items","Open in SSMS via a right-click VSIX extension to inspect plans in the GUI"],"not_for":["General SQL performance tuning without plan data (it’s plan-centric)","Security-sensitive environments that require strict control over where database credentials are stored/handled beyond OS keychains","High-availability/low-latency production systems where running a query to capture actual plans is unacceptable"],"best_when":"You need repeatable, automation-friendly execution-plan review for SQL Server workloads and want actionable missing-index and warning outputs, optionally augmented by an LLM via MCP.","avoid_when":"You can’t or don’t want to provide database connectivity (for actual plan capture) or you require a server-side, centrally managed API with standard enterprise auth/telemetry controls.","alternatives":["erikdarlingdata tools (e.g., Plan Explorer-style analyzers)","SSMS Query Store/plan tools and manual index tuning","Open-source plan analyzers with CLI outputs (varies by ecosystem)","Commercial SQL performance monitoring suites (e.g., Plan/Index recommendations)"],"af_score":57.2,"security_score":59.5,"reliability_score":28.8,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:43:33.302091+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":"http://localhost:5152/ (as configured via settings.json; default shown as 5152)","has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["CLI: server connection via --login/--password (or --trust-cert)","Credential store/OS keychain: planview credential add/list/remove; then connect without passing password","MCP: local registration with Claude Code (transport http, user scope in MCP URL)"],"oauth":false,"scopes":false,"notes":"No OAuth described. Database auth is by SQL username/password; credentials are stored in OS credential manager/keychain per README. MCP access appears to be local/opt-in with client registration; no detailed auth model/scopes described in the provided README excerpt."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source (MIT license). Costs would be those of running locally and any SQL Server/Docker usage and optional LLM usage by the MCP client."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":57.2,"security_score":59.5,"reliability_score":28.8,"mcp_server_quality":80.0,"documentation_accuracy":75.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":60.0,"rate_limit_clarity":20.0,"tls_enforcement":70.0,"auth_strength":60.0,"scope_granularity":30.0,"dependency_hygiene":50.0,"secret_handling":85.0,"security_notes":"TLS behavior for SQL connections is partially implied via --trust-cert and HTTPS is not discussed for MCP (uses HTTP transport for local MCP). SQL credentials are stored in OS keychain/credential manager and not written to disk in plaintext per README, which is a positive secret-handling signal. MCP/auth model details (auth, authorization, scopes, transport security) are not specified in the provided excerpt, so agent-driven MCP usage may rely on local/network isolation. Dependency hygiene and CVE posture are not provided.","uptime_documented":0.0,"version_stability":45.0,"breaking_changes_history":20.0,"error_recovery":50.0,"idempotency_support":"false","idempotency_notes":null,"pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["MCP server is opt-in via a local settings file; agents must ensure the server is enabled and the correct port is used.","If the agent triggers “Get Actual Plan”/live capture workflows, queries may be executed—coordinate with safe/estimated modes to avoid unintended workload.","No explicit rate-limit headers or retry/backoff guidance is described in the provided content for MCP/API usage."]}}