Skip to main content
MetaManager runs a remote MCP server, so an agent you already use can check pages, read your audits, and confirm that a fix actually worked. That last part is the point. An agent can check a page, read exactly what is wrong, edit your templates, then check again and see the score move — a loop with a verifiable end, rather than a suggestion you have to evaluate yourself.

Connecting

Every client needs the same two facts: the address above, and which door you are coming through. OAuth — the client opens MetaManager in your browser, you tick the permissions it may have, and the client stores and refreshes the credential itself. Nothing is written into a config file. An API key — a bearer token you paste, for clients that do not speak OAuth yet and for scripts of your own. Prefer OAuth where the client supports it. The credential never lands in a file, it carries only the permissions you ticked, and revoking it is one click.
Add the server:
Then run /mcp inside Claude Code, pick MetaManager, and approve in the browser window that opens. From a shell instead:
With an API key, one command does both steps:
With a key, do not use -s project. That scope writes .mcp.json, which is meant to be committed and shared — your key would go into version control with it. -s user keeps the key in your own configuration and makes MetaManager available in every project.

A client that is not listed

Every client needs the URL and, for a key, an Authorization: Bearer header. What differs is only where the file lives and what the fields are called — which is where most failed setups come from, because a config copied from another client’s documentation is usually ignored in silence rather than rejected. The bare host without /mcp also works, so an existing configuration keeps running. Other paths do not: a typo returns a 404 naming the right address rather than appearing to succeed.

What you are approving

The approval screen lists one permission per checkbox, and you can hand over less than the client asked for: Untick anything you would rather not grant. A connection that gets only checks can still do most of what an agent does — check a page and fix it — without seeing your account at all. Approved connections are listed at connected agents, where revoking one stops it immediately.
Nothing is shared with the agent beyond your own account. Connections are per-account and can be revoked at any time without touching your API keys.

Fixing a missing image

missing_og_image is the most common finding, and the usual fix is an image somebody has to design and host. MetaManager draws it instead, so an agent can close that loop by itself:
The domain has to be verified on your account first. If it is not, get_card_snippet says so and where to do it, rather than handing back a line that would not draw.

Teach your agent the workflow

Connecting the server gives your agent the tools. A companion skill teaches it when to reach for them — and, more importantly, that a metadata change is not finished until it has been re-checked.
For Claude Code you can also copy it in directly:
The skill is optional. Without it your agent can still call every tool; it just has to be told what to do with them.

The tools

What it costs

check_url, get_fix_prompt and explain_issue draw only on your hourly rate limit, so an agent can use them freely — including to re-check a page after every edit, which is exactly what you want it doing. start_audit spends one of your monthly audits and takes minutes rather than seconds. That is why it needs a key with write access: an agent in a loop can exhaust a month’s allowance without noticing, and giving that power away should be a decision rather than a default.
Every key on your account shares one hourly bucket. Connecting three agents with three keys does not give you three times the limit.

What a Free key reaches

Single-page work: check_url, get_fix_prompt and explain_issue, at Free’s 100 checks an hour. The Pro tools answer with a message saying they need Pro, which your agent will report rather than retry.

If something goes wrong

Errors come back as readable sentences rather than status codes, and say whether retrying will help:
  • Not authenticated — the key is missing, wrong, or revoked. Not retryable.
  • This API key is read-only — the tool needs a key with write access. Not retryable with that key.
  • This endpoint needs Pro — not retryable on the current plan.
  • Limit reached — the hourly rate limit; retryable after waiting.