MCP server
Connect Fenn to your AI assistant.
Fenn’s hosted MCP server lets Claude, ChatGPT or any MCP client pull your AI-search audit issues, suggested fixes and fix prompts in conversation. Anything that would change your site is queued for a person to approve.
Works today5
Return real data from your account: what to fix on your site, and the prompt to fix it.
audit_issuessuggest_fixesget_fix_promptlist_fix_tasksdraft_fix
Queues for a person2
Never execute. The request is queued for a person, and the tool says so.
execute_fixrequest_publish
Not connected yet8
Measurement and tracking. They answer “not measured yet” and point to the dashboard, where measurement runs.
visibility_reportprompt_detaillist_promptsrank_checkkeyword_gapsbacklinkstrack_prompttrack_keyword
Every tool, and what it does today
The band says what a tool could do to you before you call it; the status says what it does in production right now.
| Tool | Band | Today | What it does | Returns |
|---|---|---|---|---|
audit_issuesdomain | Read | Works today | The AI-search readiness issues on a site, highest impact first. | Issue count by severity, up to 10 issues, link to the fixes |
suggest_fixesdomain | Read | Works today | The fixes that apply to a site’s current issues. Proposes; does not write. | Suggested fixes with links |
get_fix_promptdomain, fix_id | Read | Works today | The self-contained prompt for one fix — the issue, the change, file patterns and the checks that prove it — to hand your developer or an AI coding tool. | Ready-to-paste prompt |
list_fix_tasksdomain | Read | Works today | Which fixes are waiting on a person. | Totals and the pending fixes |
visibility_reportdomain | Read | Not connected yet | Visibility per engine for a domain. Run measurements in the dashboard for now. | “Not measured yet”, with a link to the dashboard |
prompt_detaildomain, prompt | Read | Not connected yet | The answers behind one tracked prompt. | “Not measured yet”, with a link to the dashboard |
list_promptsdomain | Read | Not connected yet | The prompts tracked for a domain. | “Not measured yet”, with a link to the dashboard |
rank_checkdomain, keyword | Read | Not connected yet | Search rank for a keyword. | “Not measured yet”, with a link to the dashboard |
keyword_gapsdomain | Read | Not connected yet | Questions where competitors are named and you are not. | “Not measured yet”, with a link to the dashboard |
backlinksdomain | Read | Not connected yet | Domains linking to the site. | “Not measured yet”, with a link to the dashboard |
draft_fixdomain, fix_id | Draft | Works today | The prompt for one fix, same as get_fix_prompt. It does not touch a repository. | Ready-to-paste prompt |
track_promptdomain, prompt | Draft | Not connected yet | Start tracking a new prompt. Add prompts in the dashboard for now. | “Not measured yet”, with a link to the dashboard |
track_keyworddomain, keyword | Draft | Not connected yet | Add a keyword to rank tracking. | “Not measured yet”, with a link to the dashboard |
execute_fixfix_id | Gated | Queues for a person | Asks for a fix to be applied. Never executes: a request is queued for a person. | “Applying a fix requires a human approval. A request has been queued.” + link |
request_publish— | Gated | Queues for a person | Asks for something to be published. Never executes: a request is queued for a person. | “Publishing requires a human approval. A request has been queued.” + link |
Read
No side effects. An assistant can call these freely without asking you first.
Draft
Would change what Fenn tracks or produce a draft. Every call is written to the activity log.
Gated
Never executes on call. The request is queued for a person, and the tool says so, with a link to review it in the dashboard.
Setup
Create an API key in the Fenn dashboard under Settings → MCP & API, then add the connector. Never paste a key into a shared chat; create a second key and revoke it when you’re done.
Settings → Connectors → Add custom connector
Name: Fenn
URL: https://api.fenn.sh/mcp
Auth: Bearer <your API key>
Then, in any chat:
"Using Fenn, what should I fix first on mydomain.com?"Settings → Connectors → Create → MCP server
Name: Fenn
Server URL: https://api.fenn.sh/mcp
Auth: API key (paste the key from your dashboard)
Enable the connector in the composer, then ask in plain
language. No tool names required.{
"mcpServers": {
"fenn": {
"type": "http",
"url": "https://api.fenn.sh/mcp",
"headers": { "Authorization": "Bearer $FENN_API_KEY" }
}
}
}Keys are created and revoked in the dashboard at app.fenn.sh.
A conversation, end to end
Illustrative, with the Example workspace. The tool responses use the production server’s own wording, shortened.
you ▸ What should I fix first on yourwebsite.sh?
agent ▸ audit_issues({ domain: "yourwebsite.sh" })
3 answer-engine issue(s) on https://yourwebsite.sh. The highest-
impact one is "Publish llms.txt with your key pages".
agent ▸ get_fix_prompt({ domain: "yourwebsite.sh", fix_id: "fx_1" })
A self-contained prompt: the issue, the change, file patterns for
App Router, Pages Router and static sites, and the checks that
prove it worked.
you ▸ Go ahead and apply it.
agent ▸ execute_fix({ fix_id: "fx_1" })
Applying a fix requires a human approval. A request has been
queued.
agent ▸ Nothing has changed on your site. I can hand the prompt to
your coding agent now, or you can approve it in Fenn.
you ▸ How visible are we in ChatGPT?
agent ▸ visibility_report({ domain: "yourwebsite.sh" })
Visibility has not been measured for this account yet … The
audit and fix tools work now.
agent ▸ Measurement isn't available over MCP yet. Run one in the
Fenn dashboard; meanwhile I can work through the fixes.Accounts start with a demo.
API keys come with an account, and accounts are set up with you on a call. Bring your website; we’ll show you the fixes an assistant could work through first.