Model Context Protocol (MCP) server for Kinsta WordPress hosting
This server has 30 tools with mostly complete schemas and descriptions, placing it in the 'Fair' range. Strengths: all tools have explicit input schemas with Zod validation, descriptions are present and non-trivial, parameter types are defined, and tool annotations (openWorldHint) are used. Weaknesses: descriptions are often brief and lack actionable context for LLM selection; output schemas are not documented; error handling lacks recovery guidance; many tools lack distinction in naming (e.g., 13 analytics 'top-*' tools are near-duplicates); parameter descriptions could be more detailed about constraints and use cases; no evidence of pagination or result limiting despite analytics tools that could return large datasets.
Get bandwidth analytics for an environment.
Get this month's billable bandwidth usage for a site.
Get CDN bandwidth analytics for an environment.
Get this month's billable CDN bandwidth usage for a site.
Get disk space analytics for an environment.
Get response code breakdown.
Get top autonomous system numbers.
13 analytics 'top-*' tools are near-identical with minimal differentiation. Names like 'top-countries', 'top-cities', 'top-browsers' share nearly identical parameter schemas and descriptions. This violates the principle that similar tool names cause LLM conflation. An LLM may select the wrong 'top' variant when intending another.
Output schemas are not documented. The source code shows tool registration with inputSchema but no explicit documentation of what each tool returns. Without documented output structure, LLMs cannot reliably plan downstream tool calls or extract required fields (e.g., does kinsta_domains_list return 'domain_id' or 'id'?). This forces agents to infer structure from partial responses.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 23 | - | v1 |
Get top browsers.
Get top visitor cities.
Get top client IP addresses.
Get top visitor countries.
Get top hosts.
Get top referrers.
Get top user agents.
Get visitor analytics for an environment.
Get visit dispersion.
Get this month's billable visit usage for a site.
Add a custom domain to an environment.
Remove custom domains from an environment.
List all custom domains for an environment.
Set the primary domain for an environment.
Get DNS verification records for a domain.
Clear the server cache for an environment. Returns an operation_id.
Get the list of denied (blocked) IP addresses for an environment.
Update the list of denied (blocked) IP addresses for an environment.
Get the Force HTTPS status for an environment.
Set the Force HTTPS status for an environment.
Change the PHP version for an environment. Returns an operation_id.
Restart PHP for an environment. Returns an operation_id.
Preview or perform a database search and replace. perform_replacement defaults to false for a safe preview.
Analytics tools with time-span parameters lack result-limiting guidance. Tools like kinsta_analytics_visits and kinsta_analytics_top-countries accept custom date ranges but no limit parameter. No description states a maximum result count. Returning large datasets risks context window exhaustion.
Tool naming inconsistency: get vs list. kinsta_tools_denied-ips (read) uses no verb prefix, while kinsta_domains_list (read) explicitly uses 'list'. This inconsistency wastes LLM reasoning cycles deciding between grammatical forms of the same action. Adopt a consistent convention: either all 'get_*' or all 'list_*' for READ operations.
Parameter descriptions are sparse. Many parameters have one-liner descriptions (e.g., 'The environment ID') without explaining the expected format, valid range, or how to obtain it. Descriptions should guide LLMs on what values are valid and when to use this tool vs. a similar one.
No error recovery guidance. Tool descriptions and code do not indicate what an LLM should do if an operation fails. For example, kinsta_tools_clear-cache returns an operation_id but offers no guidance on checking operation status or interpreting errors. Error responses should include recovery instructions.
Irreversible operations lack confirmation step. kinsta_tools_search-and-replace and kinsta_domains_delete can permanently modify or remove data. While search-and-replace defaults to dry-run (perform_replacement=false), the description does not emphasize this safety feature or warn about consequences.
Generic parameter names without type suffixes. Parameters like 'environment_id' and 'site_id' are used inconsistently. Some tools accept 'env_id' (kinsta_tools_force-https_get), others 'environment_id' (kinsta_tools_clear-cache). This naming variation forces LLMs to track multiple conventions and risks passing a site_id where an env_id is expected.