Brings the plugin back in line with hostinger-api-mcp (now 1.29.0) and with the product surface of the Hostinger VS Code extension (1.3.2). The plugin was last touched on 2026-05-27, two days before OAuth shipped.
- Every Hostinger tool name in the rules, skills, agent, and command was invented. The plugin instructed the agent to call
list_hosting_plans,create_nodejs_deployment,list_dns_records,create_dns_snapshot,query_logs,restore_backup, and others — none of which the MCP server has ever exposed. All 104 tool references now use the real OpenAPI operation IDs (hosting_listWebsitesV1,DNS_getDNSRecordsV1,billing_getSubscriptionListV1, …) and are verified in CI. - The token-leak hook never ran.
hooks/hooks.jsonused apre-committrigger, which is not a Cursor hook event, along with an array shape and ascriptkey that Cursor's v1 schema doesn't read. It is now abeforeShellExecutionhook matchinggit commit, and the script speaks the hook JSON protocol on stdin/stdout. It fails open, so a guard that can't read the staged diff won't block every commit. - The deployment guidance described an API that doesn't exist. There is no framework "preset" parameter.
rules/framework-presets.mdcinvented seven preset names; the realapp_typeoverride accepts onlycreate-react-app,vite,angular,react,vue,parcel,express,fastify, andnest, with everything else auto-detected frompackage.json. Replaced byrules/nodejs-deployments.mdc, documenting the real tools and the acceptednode_version,package_manager,root_directory,output_directory,build_script, andentry_fileoverrides. - DNS guidance assumed per-record operations. Hostinger's DNS API is zone-oriented:
DNS_updateDNSRecordsV1takes a whole zone array plus anoverwriteflag, and there is no tool to create a snapshot on demand. The skill now explains theoverwritesemantics, usesDNS_validateDNSRecordsV1as a dry run, and cites an existing snapshot ID for rollback instead of promising a fresh backup. query-hosting-logspromised access and error logs the API does not expose. Renamed toquery-deployment-logsand scoped to what exists: JS deployment logs, Node.js build logs, and cron output. The plugin now states plainly that HTTP access logs, PHP error logs, Node.js environment variables, and shared-hosting backups are hPanel-only.repository.urlinplugin.jsonpointed athostinger/api-mcp-serverinstead of this repository.- Added the
LICENSEfile thatplugin.jsonhas always declared.
- One MCP server per product area instead of a single monolith.
mcp.jsonpreviously startedhostinger-api-mcp, loading all 289 tools into context at once. It now registers eight servers — hosting, wordpress, domains, dns, billing, reach, ecommerce, vps — mirroring the VS Code extension's groups, so users can disable areas they don't use from Cursor's MCP settings. - OAuth is the default auth path. The README claimed OAuth was "not currently supported by the Hostinger backend"; it shipped in the MCP server and in extension 1.1.0 on 2026-05-29. The server now signs in through the browser on the first authenticated tool call, and
mcp.jsonno longer hardcodesHOSTINGER_API_TOKEN— the fragile${HOSTINGER_API_TOKEN}interpolation would have shadowed the OAuth fallback. An exported token still takes precedence. - Product naming matches the extension. "Web Hosting" → Websites, "Reach" → Email Marketing, "Billing" → Subscriptions & Payments, and DNS is documented alongside Domains.
- The README now documents the overlap with the VS Code extension, which writes these same servers into
~/.cursor/mcp.json— running both in Cursor duplicates every server.
USER_AGENTon every MCP server (plugin;cursor;<version>), matching the extension's attribution so plugin traffic is no longer invisible to Hostinger.scripts/check-tool-names.mjs— asserts every tool-shaped identifier in the docs resolves to a real tool. It default-denies unknown snake_case identifiers rather than checking known prefixes, because the original fabricated names had no prefix at all and a prefix check would have missed them entirely.scripts/sync-mcp-tools.mjsandscripts/mcp-tools.json— a checked-in snapshot of the published tool catalog (289 tools, 11 groups) so the check runs offline..github/workflows/ci.yml— runs both validators, parses every JSON file, shellchecks the hook, and confirms it's executable. A second advisory job flags when the catalog snapshot falls behindhostinger-api-mcp@latest.
- Hostinger MCP server wiring, five skills, three rules, one agent, one command.