MCP for AI assistants
AI knows everything except your website.
Ask ChatGPT about your internal links and it guesses. It has no idea which of your pages are orphaned, what is broken, or what you rank for. Linkilo hands Claude, ChatGPT, Gemini or Grok twenty-nine tools wired to your real data, and lets you decide, per person and per area, whether it may only look or also fix.
Included in every plan. 30-day money-back guarantee.
You: Which of my pages get search impressions but have no internal links pointing at them?
Claude: Eleven pages match. The three worth fixing first:
Want me to suggest source posts for each, or link them now?
The job, as it stands
What a WordPress MCP server removes from your day
Copy something out of WordPress. Paste it into a chat. Get an answer. Copy the answer back. Paste it into the editor. Repeat, and hope you did not lose anything in the round trip.
By hand, that means
- Work out what the assistant needs to know, and find it inside WordPress.
- Copy it into a chat window, in pieces small enough to fit.
- Ask, then check the answer against the live site, because what you pasted is already stale.
- Copy the answer back into the editor, link by link.
- Check that nothing was mangled on the way.
Linkilo does every step of that.
What it costs to leave it
The round trip is where the mistakes live. Data copied out of WordPress is stale by the time the answer comes back, and pasting that answer in by hand is how a good suggestion turns into a broken link.
Somebody has to do that: you, or somebody you pay.
What you get back
The copying and pasting, which is most of what "using AI for SEO" currently is.
What it looks like instead
You ask the assistant you already use, and it reads the real data and makes the change in place.
How soon
Issue a token and connect. One screen.
Who does the work
AI, inside deterministic guardrails
The assistant is whichever one you already pay for. What Linkilo provides is the deterministic half: a scoped token, an explicit read/operate/write role, and a log of every call it made.
Time figures describe the shape of the job (an afternoon, a day, a week), not a promise about your site. Your archive is your archive.
Every current way of doing this is a compromise.
You can paste exports into a chat and watch it lose context. You can hand an assistant a WordPress admin login and hope. Or you can accept generic advice that was never about your site.
The three bad options
- Copy-pasting CSVs loses context, hits size limits, and is stale by tomorrow
- Giving an assistant a full admin account puts users, plugins and settings one prompt away
- “You should add internal links to important pages” is not advice, it is a fortune cookie
- You re-explain your site structure at the start of every single conversation
- When it finally finds the fix, you still go and make it by hand
What a real connection looks like
- Ask in plain English and get an answer from live data, not last Tuesday’s export
- Twenty-nine tools wired to real Linkilo data, chosen automatically
- It can only reference pages that exist on your site, and only link text that is already there
- You choose per person: look only, propose changes for your approval, or publish
- Every call recorded: which tool, which connection, allowed or refused
Mapped to the questions you actually ask
Seventeen read your data. Twelve change it, each one only with your say-so. The assistant picks the right tool; you just ask.
“Which pages are orphaned?”
Pages with zero inbound internal links, ranked by priority, with Search Console impressions and index status attached, so you know which orphans are actually worth rescuing.
“What is broken right now?”
Broken, redirected and warning links from the last scan: source page, anchor, URL and status. Then, with permission, fix one everywhere it appears: point it at a working URL or unlink it and keep the text.
“Where should this post link to?”
Internal link suggestions four ways: a diverse ranked set, semantic and topical matches, exact keyword matches, or targets drawn from Search Console data. Each comes with a signed token, so only a real suggestion can be applied.
“Am I competing with myself?”
Keyword cannibalisation, where queries split across competing pages, and link cannibalisation, where one anchor points at multiple URLs. Each with severity and a recommended primary target.
“Which pages hold the authority?”
Linkilo’s PageRank-style link-equity model exposed directly: every page’s internal-authority percentile, site-wide or for one URL.
“What do I rank for?”
Your stored Search Console data (keyword, page, clicks, impressions, CTR, position), filterable by URL or keyword, straight into the conversation.
“Is Google crawling me? Is ChatGPT?”
Crawl-log activity by bot and by URL, including the AI crawlers, plus per-page index coverage from Google’s own URL Inspection data: indexed, not indexed, or excluded.
“What are people clicking?”
Your most-clicked internal links over any recent window, plus topic clusters with their pillar and member pages. The full picture of how readers move through the site.
“Can it make the change for me?”
Yes, inside the areas you allow: add, remove or re-point internal links; fix, unlink or ignore broken links; create, pause or delete redirects; start a scan. Every one needs your confirmation in the chat, and a Draft-only connection’s changes wait for an administrator instead.
“Can it write a client report?”
It can generate a client-ready report from any saved report profile or built-in template, from data already on the site. No scan started, no email sent, no content touched.
“Will it make things up?”
Every tool returns only what is stored on your site. If a dataset is empty the assistant is told so explicitly and instructed never to invent URLs, counts or metrics. Links can only be placed on text that already exists in the post.
“Does it work with what I already use?”
Claude on the web, desktop and Cowork, ChatGPT, Gemini, Grok, Claude Code, and anything else that speaks MCP, Cursor included. Web apps connect through a sign-in flow; scripts and desktop tools can use a key.
AI access without handing over the keys.
Most “AI plus WordPress” setups are a bot with a real admin login. This was designed the opposite way round: deny everything, then let each person grant back exactly what they need, and no more than you allow them.
Look only, propose, or publish. Per person, per area.
Every connection has a level. View only reads reports and suggestions and changes nothing. Draft only proposes changes that wait for an administrator. Publish makes changes live the moment you confirm them in the chat.
It also has areas: internal links, broken links, redirects. An assistant allowed to fix broken links cannot create a redirect, however nicely it asks. And every change runs as the person who connected, so an Author’s assistant can only touch that Author’s posts.
- Two master switches, both off when you install: allow connections, allow changes
- View only, Draft only or Publish, chosen at approval and changeable any time
- Internal links, broken links and redirects granted separately
- Team access: cap what each WordPress role may grant to its own assistant
- Users, plugins, themes, files and settings are unreachable at every level
ChatGPT · Dana (Editor)
Level
View only Draft only Publish
Areas
Internal links Broken links Redirects
Expires in 90 days · changes run as Dana
Draft only means nothing moves until a person says so
When a Draft-only connection proposes a change, Linkilo runs the tool in dry-run mode to check it, then parks it in a queue on the MCP Access screen. An administrator approves or rejects each one, singly or in bulk.
Approval re-runs the same tool with the same arguments and re-checks everything. If the post was edited in the meantime, or the redirect already exists, the change fails safely instead of applying. And when something does apply, WordPress keeps a revision and Linkilo keeps a rollback snapshot.
- Every change requires an explicit confirmation in the chat, even on Publish
- A suggestion can only be applied with the signed token the suggestion came with
- Links are only placed on text that already exists in the post
- Only links whose address matches exactly are removed or re-pointed; menus and sidebars are reported, not edited
- Revision plus rollback snapshot on every content change
Approve selected Reject selected
No API keys. No tokens to paste. Just approve.
Claude, ChatGPT, Gemini and Grok connect through a sign-in flow, the same pattern as “Sign in with Google”. You paste one address, click Connect, and approve the request in your own WordPress admin, choosing the level and areas as you do.
Some web hosts quietly block the addresses assistants read sign-in settings from. Linkilo tests for that on the MCP Access screen and, if your host is one of them, routes that one step through its own sign-in relay. The approval and the keys still go straight between the assistant and your site.
- OAuth sign-in with PKCE, not a pasted secret
- Approval happens in your WordPress admin, by the person connecting, within the cap you set
- A built-in sign-in check, with the fix for hosts that block it
- Keys for tools that need one, such as Cursor or your own scripts, scoped and expiring like any connection
Claude is requesting access to Linkilo on yoursite.com
Level
View only Draft only Publish
Expires 90 days
Approve Deny
The MCP Access screen, exactly as it ships.
Turn it on, check that your host lets assistants sign in, pick your assistant and follow the steps, approve what Draft-only connections proposed, set what each role on your team may grant, and read the log of every call.
Connect an AI assistant
Let Claude, ChatGPT, Gemini or Grok read your Linkilo reports (and, if you allow it, make changes you confirm). The assistant never gets a WordPress login, only Linkilo access at the level you approve.
Access updated. It applies from the assistant’s next request.
1Turn on access ✓ On
Pending AI changes 2 waiting
Draft-only connections propose changes here instead of making them. Approve to apply a change now (Linkilo checks it again first), or reject it. Nothing below is live until approved.
| Change | From | When | ||
|---|---|---|---|---|
Link “season a new humidor” in Cigar Humidity Chart (69% vs 72%) to How to Season a New Humidorapply_link_suggestion |
ChatGPT Dana (Editor) |
14 minutes ago | ||
Fix broken link https://humidorstore.example/product/spanish-cedar-tray in 3 posts: unlink, keep the textfix_broken_link |
ChatGPT Dana (Editor) |
2 hours ago |
Recently decided
| Applied | Redirect /old-category/humidors/ → /guides/cigar-humidors/ (301) | yesterday |
| Not applied | Link “travel humidor” in Best Travel Humidors 2026 to Travel Humidor Buying Guide The post was edited after this was proposed; the anchor is already a link. | 2 days ago |
| Rejected | Delete redirect /summer-sale-2025/ | 3 days ago |
2Sign-in check ✓ Ready
Assistants can read your sign-in settings directly from your site. Nothing to do.
Last checked 3 hours ago.How assistants find your sign-in settings
3Pick your assistant and follow the steps
https://yoursite.com/wp-json/linkilo-mcp/v1/rpc- In Claude (claude.ai, the desktop app or Cowork), open Settings → Connectors and click “Add custom connector”. On a Team or Enterprise plan, an Owner adds it for the organisation.
- Name: Linkilo. Remote MCP server URL: paste your connection address above. Leave “Advanced settings” (OAuth Client ID and Secret) empty.
- Click Add, then Connect. Claude opens your site: sign in to WordPress if asked, choose the access level and click Approve.
- In a chat, turn Linkilo on from the tools menu and ask, for example, “Which of my pages are orphaned?”
4Sign-in activity
Each step an assistant takes while connecting. If a connection fails, the last line shows where it stopped. A healthy connection reads: read the connection details → read the sign-in settings → registered or identified → waiting for your approval → you approved → connected.
| When | Assistant | Step | Details |
|---|---|---|---|
| 14 minutes ago | ChatGPT | connected | Draft only: Internal links, Broken links · expires in 90 days |
| 14 minutes ago | ChatGPT | you approved | Dana (Editor) |
| 15 minutes ago | ChatGPT | waiting for your approval | approval screen opened in wp-admin |
| 15 minutes ago | ChatGPT | registered | dynamic client registration |
| 15 minutes ago | ChatGPT | read the sign-in settings | /.well-known/oauth-authorization-server |
| 15 minutes ago | ChatGPT | read the connection details | /.well-known/oauth-protected-resource |
| 3 days ago | Claude | connected | Publish: Internal links, Broken links, Redirects · expires in 1 year |
Team access
Let people with other WordPress roles connect their own assistant (for example an SEO specialist with an Editor account). They choose a level when they approve, up to the most you allow here. Lowering it applies to their existing connections straight away. Administrators can always connect with full access.
| WordPress role | May connect | Areas they may change |
|---|---|---|
| Editor | ||
| Author | ||
| Contributor | ||
| Subscriber |
Changes still run as that person, so an Author can only change their own posts even with Publish.
Connected assistants and keys
| Name | Person | Access | Key | Last used | Expires | Status | |
|---|---|---|---|---|---|---|---|
| Claude | Jay | lkmcp_7c2e… | 2026-10-05 07:48:11 | 2027-10-02 09:12:40 UTC | active | ||
| ChatGPT | Dana | lkmcp_91c7… | 2026-10-05 07:31:02 | 2027-01-03 07:16:55 UTC | active | ||
| Cursor on my laptop | Jay | lkmcp_4f2a… | 2026-09-28 16:04:19 | 2026-12-27 11:05:52 UTC | active | ||
| Agency audit (Q2) | Sam | View only | lkmcp_b08d… | 2026-07-09 14:22:37 | 2026-07-10 11:05:52 UTC | expired |
What each access level can do
| View only | Reads reports and suggestions. Changes nothing. |
| Draft only | Proposes changes. Each one waits under Linkilo → MCP Access → Pending AI changes until an administrator approves it. Scans still run. |
| Publish | Changes go live as soon as you confirm them in the chat. |
| Internal links | Add, remove and re-point links in posts; run the link scan. |
| Broken links | Fix or unlink broken links, ignore them; run the broken-link scan. |
| Redirects | Create, turn off and delete redirects. |
Every level can read all link reports (linking, orphans, anchors, cannibalization, clusters, broken links, redirects, clicks, crawl log, GSC, index coverage, link equity) and get link suggestions. Changes only happen when “Also allow changes” is on, the connection’s level and areas allow it, and the change is confirmed in the chat. They run as the person who connected, so they can only edit posts that person can edit. No level ever grants WordPress admin: no users, plugins, files or site settings.
Recent tool calls
| When | Name | Access | Tool | Outcome |
|---|---|---|---|---|
| 2026-10-05 07:48:11 | Claude | publish | apply_link_suggestion | ok (post 1184, 1 link inserted) |
| 2026-10-05 07:47:02 | Claude | publish | suggest_internal_links | ok (post 1184, 6 suggestions) |
| 2026-10-05 07:45:39 | Claude | publish | get_broken_links | ok (23 rows) |
| 2026-10-05 07:31:02 | ChatGPT | draft | fix_broken_link | ok (queued for approval) |
| 2026-10-05 07:30:40 | ChatGPT | draft | delete_redirect | denied (area: Redirects not allowed) |
| 2026-10-01 03:00:19 | Cursor on my laptop | view | generate_agency_report | ok (Monthly Client Report) |
| 2026-10-01 03:00:04 | Cursor on my laptop | view | run_broken_link_scan | denied (View only) |
Recreated from core/Linkilo/MCP/Admin.php in 3.0.2. Same steps, same switches, same tables.
A real conversation with your own site.
This is what the work looks like when the assistant can read your data instead of guessing at it, and fix what it finds. The gray line above each answer is the tool it called to get there.
Which of my pages get search impressions but have nothing linking to them?
get_orphan_pages · get_gsc_queries
You have 41 orphaned pages. Three of them are already earning search demand:
- /guides/season-a-humidor/: 9,480 impressions, 212 clicks, 0 inbound internal links
- /guides/travel-humidors/: 5,120 impressions, 96 clicks, 0 inbound internal links
- /reviews/boveda-vs-beads/: 2,180 impressions, 41 clicks, 0 inbound internal links
These are the highest-value rescues on the site: pages Google is already willing to show that nothing on your own site points at.
Suggest internal links for the seasoning guide, and add the best one.
suggest_internal_links (mode: choose)
Six sentences already contain the phrase and none of them is a link. Best three:
- From /guides/cigar-humidity-chart/, anchor “season a new humidor” (high confidence)
- From /best-cigar-humidors/, anchor “seasoning a new humidor” (high confidence)
- From /reviews/boveda-vs-beads/, anchor “humidor seasoning” (medium)
Shall I apply the first one? It will link the words “season a new humidor” in the humidity chart, exactly where they already are. Reply yes to confirm.
Yes.
apply_link_suggestion (confirm: true, signed token)
Done. One link added to /guides/cigar-humidity-chart/, saved as a WordPress revision with a Linkilo rollback snapshot. The seasoning guide now has one inbound link; the other two suggestions are still open.
An illustrative exchange on a Publish-level connection. On Draft only, the last step would have gone to Pending AI changes for an administrator instead. The tools named are the real ones.
Your assistant does the thinking. Linkilo supplies the facts.
This connection does not spend a penny of OpenAI credit, because it never calls a model.
Every tool returns stored data: the link index, the crawl log, Search Console rows, the suggestion cache, the anchor and cannibalisation reports. The reasoning about that data happens in the assistant you already pay for, on its own model. Linkilo’s optional OpenAI key is for the dashboard’s own analysis, and MCP never touches it.
That has a practical consequence. The suggestions an assistant can apply are the ones Linkilo has already scored, from the literal engine or from an earlier AI pass, so the assistant can rank and explain them but cannot conjure a new one. Ask it to link two pages that share no text and it will tell you there is nothing to link.
It also means a Linkilo site with no AI key at all gets the full connection: twenty-nine tools, every report, every fix. The only thing the key ever changed was which engine produced the suggestions in the first place.
The numbers that should reassure your sysadmin
Who this changes the workflow for
Mostly people who already live in an AI assistant and are tired of it being the only thing on their desk that cannot see their site.
People who live in Claude or ChatGPT
Your SEO data is in a different tab from your thinking.
With Linkilo: ask in the chat you were already in, get your own numbers back, and say yes to the fix.
Agencies
Client audits mean assembling data before you can even start analysing.
With Linkilo: connect the site, interrogate it in the kickoff call, and have the monthly report generated from a saved profile.
Editors on a team
You are the one who fixes the links, but you are not the site administrator.
With Linkilo: connect your own assistant at the level your administrator allows, and your changes queue for their approval.
Developers
You would rather not maintain another bespoke integration.
With Linkilo: it is standard MCP over HTTPS, so Cursor, Claude Code and your own scripts need no custom glue.
Security-conscious teams
“Give the AI an admin account” is not a proposal you can approve.
With Linkilo: default-deny, three scoped levels, areas, team caps, expiry, and an auditable log of every call.
Consultants
Every new client site means learning where everything is buried.
With Linkilo: ask the site about itself and get oriented in minutes.
Three ways to get AI help with your SEO. Two are compromises.
| What you want | Linkilo MCP | Copy-paste into ChatGPT | AI with a WP admin login |
|---|---|---|---|
| Answers from your real, current data | Yes | Stale | Yes |
| No size limits or lost context | Yes | No | Yes |
| Cannot invent URLs or metrics | Yes | No | No |
| Cannot touch users, plugins or files | Yes | Yes | No |
| View-only by default | Yes | Yes | No |
| Changes need your confirmation, or an administrator’s | Yes | N/A | No |
| Scoped by area and by person | Yes | N/A | No |
| Access expires automatically | Yes | N/A | No |
| Full audit log of every call | Yes | No | No |
| No API key to paste and manage | Yes | Yes | No |
| Fixes applied with a revision and a rollback snapshot | Yes | No | No |
| Works with the AI you already pay for | Yes | Yes | Yes |
The middle column is free and the right-hand column is fast to set up. Neither is something you would want to explain to a security reviewer.
Connected in four steps
The MCP Access screen numbers them the same way. No code, no middleware, no key to look after.
Turn on access
Linkilo → MCP Access. Tick “Allow AI assistants to connect”. Leave “Also allow changes” off until you want fixes made from the chat.
Run the sign-in check
Linkilo tests whether your host lets assistants read your sign-in settings. If it does not, the screen gives you the Cloudflare rule or routes that step through Linkilo’s relay.
Pick your assistant
Copy your connection address, follow the numbered steps for Claude, ChatGPT, Gemini, Grok or Claude Code, and approve on your own site, choosing the level and areas.
Ask away
Orphans, broken links, rankings, link suggestions, and the fix. Everything it does shows up under Recent tool calls.
The questions a cautious person asks
Connecting an AI assistant to a production site deserves skepticism. Here is the detail.
Model Context Protocol is an open standard for letting AI assistants talk to external systems through a defined set of tools. Instead of pasting data into a chat, the assistant calls a tool, the tool returns structured data, and the assistant answers from that. Linkilo implements the server side; Claude, ChatGPT, Gemini, Grok and other clients implement the other half.
No. The assistant you connect does the reasoning on its own model. Linkilo’s tools only return data already stored on your site, and the suggestion tool reads the suggestion cache rather than calling a provider. A site with no AI key at all gets every tool.
It is off by default, view-only by default, and changes require a second switch you have to deliberately enable. Access is granted through a sign-in flow rather than a pasted key, scoped to a level and to areas, expires, and can be disconnected instantly. Every call is logged including the ones that were refused. And at no level can it reach WordPress users, plugins, themes, files or settings.
Within the areas you allow: add an internal link on text that already exists in a post, apply one of Linkilo’s own suggestions, remove or re-point links to one exact URL, fix or unlink a broken link everywhere the scan found it, ignore or un-ignore a broken link, create, pause or delete a redirect, and start a scan. Each needs your confirmation in the chat. Nothing is deleted from your content, no setting outside Linkilo is touched, and every content edit gets a WordPress revision and a Linkilo rollback snapshot.
Publish applies a change the moment you confirm it in the chat. Draft only checks the change, then parks it under Pending AI changes on the MCP Access screen, where an administrator approves or rejects it. Approval re-runs the tool with the same arguments and re-checks everything, so a change that went stale fails safely.
If you let them. Team access sets, per WordPress role, whether that role may connect and the most it may grant: no, up to View only, up to Draft only, or up to Publish, with the areas ticked separately. Their changes run as them, so an Author with Publish can still only edit their own posts. Lowering a cap applies to existing connections immediately.
Each tool returns only what is stored on your site. When a dataset is empty the assistant is told that explicitly rather than receiving nothing, and it is instructed never to invent URLs, counts or metrics. Applying a suggestion needs the signed token that came with it, and adding a link needs the anchor text to already be in the post, so an invented link is refused by design.
Your web host is answering the “.well-known” addresses itself. The sign-in check on the MCP Access screen tells you, and gives you three ways out: a one-line Cloudflare rewrite rule, the exact request to send your host, or “Automatic”, which routes that one discovery step through Linkilo’s sign-in relay. The relay only republishes your site’s endpoint list; approval and keys still go directly between the assistant and your site.
Claude (web, desktop, Cowork), ChatGPT, Gemini and Grok through the sign-in flow. Claude Code through sign-in or a key. Cursor, Gemini CLI and your own scripts with a key in the Authorization header. Any MCP client over HTTPS.
No. The connector uses the assistant you already pay for. Linkilo does not resell tokens, add a per-question charge, or spend your OpenAI credit.
The connection stops working immediately. Anything it already did stays in the audit log, and any content change it made can be rolled back from the same snapshots that cover manual edits.
AI Internal Link Suggestions
Get link suggestions a human editor would approve, and add them in one click without leaving the editor.
Topic Clusters
Group your content into pillars and clusters automatically, then link them the way Google expects.
Related Posts
Show related posts under every article, chosen by meaning rather than tag soup.
Your SEO data. Your AI. Your rules.
Connect Claude, ChatGPT, Gemini or Grok to Linkilo in about a minute. Ask it what is broken, then let it fix it, with your say-so, every time.
30-day money-back guarantee. Every feature is included in every plan.