Hi Dave,
Thanks so much for the report, and sorry for the hassle getting /.well-known/mcp.json to load.
Good news first: it’s not a file-permissions issue.
RankReady doesn’t write mcp.json to disk it generates the manifest live from WordPress each time the URL is requested, so there’s nothing your server needs write access to.
That means the 404 is almost always one of two things, both quick to fix:
- Permalinks / rewrite rules. The endpoint is served by a rewrite rule, which needs “pretty” permalinks. Could you check Settings → Permalinks and make sure it’s set to anything other than “Plain,” then click Save once (even without changing anything)? That re-flushes the rewrite rules and /.well-known/mcp.json should start resolving. Toggling WebMCP off and back on in RankReady re-registers the route too.
- If your host runs nginx. Many nginx setups block any path starting with a dot – including /.well-known/ — before the request ever reaches WordPress. When that happens the plugin can’t override it from PHP; it needs one line added to your server config, placed above the “deny dotfiles” rule:
location ^~ /.well-known/ { allow all; try_files $uri $uri/ /index.php?$args; }
(Apache and LiteSpeed don’t need this it’s nginx-specific, and your host’s support can add it in under a minute.)
On your idea of a manual export, that’s a genuinely thoughtful suggestion and we’ve noted it. One heads-up: if the cause is an nginx rule blocking .well-known, a manually uploaded file would get blocked the same way (the server denies the whole path before serving anything there), so the config line above is the real unlock. For the permalink case, the live endpoint just works once the rules refresh.
We also have an update heading to WordPress.org shortly that makes this much friendlier: RankReady’s Diagnostics will now pinpoint exactly which of these is happening including how your specific server handles .well-known and hand you the precise fix, and the rewrite rules now self-heal so an enabled endpoint can’t silently 404.
If it’s still stuck after the permalink re-save, just reply with your host / server type (nginx, Apache, or LiteSpeed) and I’ll point you to the exact fix.
Really appreciate you flagging this and great to see you putting the WebMCP manifest to work.
Best,