The MCP server
One Streamable HTTP endpoint at /mcp speaking JSON-RPC. Connect a client and scan from a conversation.
Connect a client
Codex
codex mcp add axrush --url https://axrush.com/mcp
Claude Code
claude mcp add --transport http axrush https://axrush.com/mcp
Cursor, and any client that reads an mcp.json
{
"mcpServers": {
"axrush": { "url": "https://axrush.com/mcp" }
}
}In Claude Desktop, add it as a custom connector with the same URL, under Settings and Connectors.
Anonymous tools
Available to every connection, no key and no account, rate limited like the public API because a scan sends real traffic:
list_integrationswith{}: lists the integration catalogue and each provider’s current availability. Planned providers cannot be connected. No account or repository metadata is returned.scan_sitewith{ "domain": "example.com" }: measures a domain and returns text and structured findings, with measurement date, engine version and applicabilityget_reportwith{ "host": "example.com" }: reads the stored public report without sending the site any trafficget_agent_taskswith{ "host": "example.com" }: reads the task replays a site's owner publishedread_channelwith{ "handle": "@midudev" }: reads a YouTube channel by handle and returns 8 verdicts rather than a score: identity, about, contact, hub, keywords, captions, chapters, naming; nothing is stored
Your sites, authenticated
Authenticated endpoints cover websites, social identities, exact channels, context and Answers. Each operation checks its own permissions, role, plan and revisions. Reading saved results never starts a paid execution.
An anonymous connection never sees these tools, so an agent is never taught about a door it cannot open. Sign in, then create keys on your account page
list_my_site_ai_executionswith{"site_id":"...","limit":20}: Read saved AI execution metadata: context policy and revision, model usage and outcome. No prompts or context values are returned. Requires the subject’s explicit context-read permission.list_my_social_ai_executionswith{"identity_id":"...","limit":20}: Read saved AI execution metadata: context policy and revision, model usage and outcome. No prompts or context values are returned. Requires the subject’s explicit context-read permission.list_my_social_identitieswith{}: Manage social identities and channelsget_my_social_identitywith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsget_my_social_channelwith{"channel_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsget_my_social_channel_connectionwith{"channel_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelslist_my_social_connection_optionswith{"channel_id":"00000000-0000-4000-8000-000000000001","session_id":"00000000-0000-4000-8000-000000000002"}: Manage social identities and channelsselect_my_social_connection_optionwith{"channel_id":"00000000-0000-4000-8000-000000000001","session_id":"00000000-0000-4000-8000-000000000002","option_id":"123456789","expectedIdentityRevision":1,"expectedChannelRevision":1}: Manage social identities and channelscancel_my_social_connectionwith{"channel_id":"00000000-0000-4000-8000-000000000001","session_id":"00000000-0000-4000-8000-000000000002"}: Manage social identities and channelscreate_my_social_identitywith{"requestId":"00000000-0000-4000-8000-000000000002","identityKind":"brand","name":"Example Brand","channel":{"platform":"youtube","handle":"example"},"siteId":null}: Manage social identities and channelsset_my_social_identity_kindwith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"identityKind":"brand"}: Manage social identities and channelsset_my_social_identity_sitewith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"siteId":null}: Manage social identities and channelsdelete_my_social_identitywith{"identity_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1}: Manage social identities and channelsadd_my_social_channelwith{"identity_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"platform":"youtube","handle":"example"}: Manage social identities and channelsupdate_my_social_channelwith{"channel_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"expectedChannelRevision":1,"handle":"example"}: Manage social identities and channelsremove_my_social_channelwith{"channel_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"expectedChannelRevision":1}: Manage social identities and channelsset_my_social_channel_watchingwith{"channel_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"expectedChannelRevision":1,"watched":true}: Manage social identities and channelsread_my_channelwith{"channel_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"expectedChannelRevision":1}: Manage social identities and channelsget_my_readingwith{"reading_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelslist_my_channel_readingswith{"channel_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsget_my_channel_documentswith{"channel_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsverify_my_channel_documentwith{"channel_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"expectedChannelRevision":1,"document":"description"}: Manage social identities and channelslist_my_channel_verificationswith{"channel_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsadd_my_social_rivalwith{"identity_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"rivalId":"00000000-0000-4000-8000-000000000002"}: Manage social identities and channelsremove_my_social_rivalwith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"rivalId":"00000000-0000-4000-8000-000000000002"}: Manage social identities and channelslist_my_social_rivalswith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsdisconnect_my_social_channelwith{"channel_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"expectedChannelRevision":1}: Manage social identities and channelsget_my_social_removalwith{"operation_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelslist_my_social_alert_ruleswith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelssave_my_social_alert_rulewith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"ruleId":"00000000-0000-4000-8000-000000000002","type":"mention_drop","threshold":10,"checkId":null,"enabled":true,"notifyEmail":true,"webhookUrl":null}: Manage social identities and channelsdelete_my_social_alert_rulewith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"ruleId":"00000000-0000-4000-8000-000000000002"}: Manage social identities and channelsget_my_social_alert_secretwith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"ruleId":"00000000-0000-4000-8000-000000000002"}: Manage social identities and channelsget_my_social_answer_questionswith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelssave_my_social_answer_questionswith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"expectedRevision":0,"questions":[{"text":"What does Example Brand offer?","kind":"accuracy","active":true}]}: Manage social identities and channelsget_my_social_answer_settingswith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsset_my_social_answer_settingswith{"identity_id":"00000000-0000-4000-8000-000000000001","expectedIdentityRevision":1,"expectedRevision":0,"cadence":"off","engines":["openai"]}: Manage social identities and channelsget_my_social_answer_optionswith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsrun_my_social_answerswith{"identity_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1,"engines":["openai"]}: Manage social identities and channelsrun_my_social_answer_giftwith{"identity_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1}: Manage social identities and channelssuggest_my_social_answer_questionswith{"identity_id":"00000000-0000-4000-8000-000000000001","requestId":"00000000-0000-4000-8000-000000000002","expectedIdentityRevision":1}: Manage social identities and channelsget_my_social_answer_suggestionwith{"identity_id":"00000000-0000-4000-8000-000000000001","suggestion_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsget_my_social_answerswith{"identity_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsget_my_social_answer_passwith{"identity_id":"00000000-0000-4000-8000-000000000001","pass_id":"00000000-0000-4000-8000-000000000001"}: Manage social identities and channelsget_my_site_artifact_optionswith{"site_id":"..."}: Inspect generation options, then explicitly confirm scope, AI use and replacement to reserve a durable operation. Follow its status and paginated history. Saved-file reads withhold stale or unknown bodies. Requires artifact read/write consent for OAuth; generation never publishes a site.generate_my_site_artifactswith{"site_id":"...","idempotencyKey":"...","expectedFingerprint":"...","scope":"llms-only","allowAi":false,"replaceExisting":false}: Inspect generation options, then explicitly confirm scope, AI use and replacement to reserve a durable operation. Follow its status and paginated history. Saved-file reads withhold stale or unknown bodies. Requires artifact read/write consent for OAuth; generation never publishes a site.get_my_site_artifact_generationwith{"site_id":"...","operation_id":"..."}: Inspect generation options, then explicitly confirm scope, AI use and replacement to reserve a durable operation. Follow its status and paginated history. Saved-file reads withhold stale or unknown bodies. Requires artifact read/write consent for OAuth; generation never publishes a site.list_my_site_artifact_generationswith{"site_id":"...","page":1}: Inspect generation options, then explicitly confirm scope, AI use and replacement to reserve a durable operation. Follow its status and paginated history. Saved-file reads withhold stale or unknown bodies. Requires artifact read/write consent for OAuth; generation never publishes a site.list_my_site_artifactswith{"site_id":"..."}: Inspect generation options, then explicitly confirm scope, AI use and replacement to reserve a durable operation. Follow its status and paginated history. Saved-file reads withhold stale or unknown bodies. Requires artifact read/write consent for OAuth; generation never publishes a site.get_my_artifactwith{"site_id":"...","kind":"llms_txt"}: Inspect generation options, then explicitly confirm scope, AI use and replacement to reserve a durable operation. Follow its status and paginated history. Saved-file reads withhold stale or unknown bodies. Requires artifact read/write consent for OAuth; generation never publishes a site.generate_my_site_markdown_draftwith{"site_id":"...","contextRevision":1,"bindingRevision":1,"idempotencyKey":"...","allowAi":true}: Generate a paid homepage Markdown draft from public context and verified source evidence, or read its saved result. Review and confirm public content before preparing a PR.get_my_site_markdown_draftwith{"site_id":"...","draft_id":"..."}: Generate a paid homepage Markdown draft from public context and verified source evidence, or read its saved result. Review and confirm public content before preparing a PR.verify_my_site_remediationwith{"site_id":"...","operation_id":"...","expectedRevision":1,"idempotencyKey":"..."}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.list_my_site_remediationswith{"site_id":"...","page":1}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.get_my_site_remediationwith{"site_id":"...","operation_id":"..."}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.save_my_site_remediation_inputswith{"site_id":"...","kind":"security_txt","expectedRevision":0,"contact":"mailto:security@example.com","expires":"2027-01-01T00:00:00Z"}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.prepare_my_site_remediationwith{"site_id":"...","scanId":"...","artifactId":"...","bindingRevision":1,"idempotencyKey":"..."}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.approve_my_site_remediationwith{"site_id":"...","operation_id":"...","expectedRevision":1,"patchHash":"...","verifyAfterMerge":false}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.cancel_my_site_remediationwith{"site_id":"...","operation_id":"...","expectedRevision":1}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.retry_my_site_remediationwith{"site_id":"...","operation_id":"...","expectedRevision":1}: Read private corrections and exact diffs. Write access prepares and approves supported recipes; security.txt needs security consent and Content Negotiation needs source consent and confirmed public Markdown. A draft PR requires exact-manifest approval, owner/admin role, paid website coverage and repository access. Separate verify consent enables bounded post-merge public-content checks and a fresh indicator review, without changing original/global scores or proving deployment or CI. Approve verifyAfterMerge is optional and false by default. No AI, merge or deployment is included.list_my_integrationswith{}: read authorized accounts and paginated repositories, or read, save and remove versioned site repository connections. Requires owner/admin authorization and explicit integration scopes for OAuth. These tools do not edit files, open pull requests, merge or deploy.list_my_repositorieswith{"connection_id":"...","page":1}: read authorized accounts and paginated repositories, or read, save and remove versioned site repository connections. Requires owner/admin authorization and explicit integration scopes for OAuth. These tools do not edit files, open pull requests, merge or deploy.get_my_site_repositorywith{"site_id":"..."}: read authorized accounts and paginated repositories, or read, save and remove versioned site repository connections. Requires owner/admin authorization and explicit integration scopes for OAuth. These tools do not edit files, open pull requests, merge or deploy.set_my_site_repositorywith{"site_id":"...","connectionId":"...","repositoryId":123,"branch":"main","rootDirectory":"","productionUrl":"https://example.com","expectedRevision":0}: read authorized accounts and paginated repositories, or read, save and remove versioned site repository connections. Requires owner/admin authorization and explicit integration scopes for OAuth. These tools do not edit files, open pull requests, merge or deploy.disconnect_my_site_repositorywith{"site_id":"...","expectedRevision":1}: read authorized accounts and paginated repositories, or read, save and remove versioned site repository connections. Requires owner/admin authorization and explicit integration scopes for OAuth. These tools do not edit files, open pull requests, merge or deploy.get_my_contextwith{"site_id":"..."}: Read private context, provenance, revisions, usage and automation, even before the first scan.get_my_context_historywith{"site_id":"..."}: Read research activity in pages of five. Pass the returned older or newer cursor with its direction.get_my_context_jobwith{"site_id":"...","jobId":"..."}: Read a real context job and its proposal or source comparison. Poll no more than once every five seconds.save_my_contextwith{"site_id":"...","expectedRevision":0,"document":{"name":"Example","description":"","audience":"","languages":"","offerings":"","goals":"","facts":"","constraints":""}}: Save the complete context document at its current revision. Preserve unchanged fields.run_my_contextwith{"site_id":"...","kind":"research","requestId":"...","locale":"en"}: Start paid AI research or a source comparison. Reuse requestId only to retry the same request. Plan limits apply.apply_my_context_proposalwith{"site_id":"...","jobId":"...","expectedRevision":0,"fields":["description"]}: Accept selected proposal fields at the expected revision. This does not edit the website.set_my_context_preferenceswith{"site_id":"...","expectedRevision":1,"field":"description","protected":true,"visibility":"private"}: Change field protection or visibility at the current revision. Publishing a field requires explicit user intent.set_my_context_policywith{"site_id":"...","expectedRevision":0,"policy":{"cadence":"off","autoApply":"off","monthlyLimit":12,"assessAnswers":false}}: Configure cadence, auto-acceptance and budget. Owner/admin only; enabled automation requires paid coverage.get_my_social_contextwith{"identity_id":"..."}: Read private brand or creator identity, topics, audience, business facts, field provenance, privacy, revision, automation and usage. Works before a first channel reading. Requires the separate social-context read grant.get_my_social_context_historywith{"identity_id":"..."}: Read five social identity research or comparison jobs with stable pagination. Returns evidence excerpts and source metadata, never raw model output or source bodies.get_my_social_context_jobwith{"jobId":"...","identity_id":"..."}: Read the real status, proposal, evidence or findings of one social identity context job. Poll no faster than every five seconds and stop when ready, failed or cancelled.save_my_social_contextwith{"expectedRevision":0,"document":{"name":"Example","description":"","audience":"","languages":"","offerings":"","goals":"","facts":"","constraints":"","aliases":"","topics":"","affiliations":"","businessContact":"","sponsorshipPolicy":""},"identity_id":"...","expectedIdentityRevision":1}: Replace the social identity context at expectedRevision. Preserve unrequested fields. Corrections become protected. Legacy social declarations are projections of this document; historical channel checks and answers remain unchanged.run_my_social_contextwith{"kind":"research","requestId":"...","locale":"en","identity_id":"...","expectedIdentityRevision":1}: Start paid research from current supported channel readings and an optional linked public hub, or compare that evidence and independent agent answers with context. Requires active paid channel coverage. Use a unique requestId, reused only for retries. Budgets, cooldown and a single active job apply. Returns a jobId, not a finished result.apply_my_social_context_proposalwith{"jobId":"...","expectedRevision":0,"fields":["description"],"identity_id":"...","expectedIdentityRevision":1}: Apply explicitly selected fields from a ready social identity research proposal at expectedRevision after reviewing evidence and conflicts. Requires active paid channel coverage and current sources. Does not publish to a channel or change measured answers.set_my_social_context_preferenceswith{"expectedRevision":1,"field":"description","protected":true,"visibility":"private","identity_id":"...","expectedIdentityRevision":1}: Change protection and public/private visibility of a social identity context field at expectedRevision. Private is the default. Make public only when the user explicitly requests it.set_my_social_context_policywith{"expectedRevision":0,"policy":{"cadence":"off","autoApply":"off","monthlyLimit":12,"assessAnswers":false},"identity_id":"...","expectedIdentityRevision":1}: Configure social identity research cadence, budget, automatic acceptance and answer comparisons at the policy expectedRevision. Owner/admin only. Enabling requires active paid channel coverage and social-context run scope. Obtain the intended schedule and budget before enabling.list_my_siteswith{}: lists your sites with their ids and latest scoresget_my_reportwith{ "site_id": "..." }: the latest full report for one of your sites, pages includedget_my_historywith{ "site_id": "..." }: the score history with the engine version on every rowscan_my_sitewith{ "site_id": "..." }: queues a scan of your own site and returns its id at onceget_my_scanwith{ "scan_id": "..." }: polls one scan until it settles; succeeded carries the full reportget_my_fixeswith{ "site_id": "..." }: the open work on one site, ordered by the points each fix returnsget_my_fixwith{ "site_id": "...", "check_id": "llms-txt" }: every finding behind one check, its guide, and the whole fix as one prose blockcompare_my_scanswith{ "site_id": "..." }: compares the latest two finished scans; optionally supply both before_scan_id and after_scan_id. Reports resolved origin checks, regressions, and warnings when the engine or coverage changedget_my_verificationswith{ "site_id": "..." }: reads existing fix verification records without scheduling workget_my_answerswith{ "site_id": "..." }: lists stored Answers passes and reads the latest finished one; pass_id selects another pass, including one still runningget_my_agent_runswith{ "site_id": "..." }: reads stored agent runs, including unpublished ones, with verdicts, answers and evidence; run_id selects one run
Connect with your key
Codex
codex mcp add axrush --url https://axrush.com/mcp --bearer-token-env-var AXRUSH_API_KEY
Set AXRUSH_API_KEY to your organization API key in the environment that launches Codex, then restart the client. Codex sends it as a bearer token.
Claude Code
claude mcp add --transport http axrush https://axrush.com/mcp \ --header "Authorization: Bearer axr_..."
Cursor, and any client that reads an mcp.json
{
"mcpServers": {
"axrush": {
"url": "https://axrush.com/mcp",
"headers": { "authorization": "Bearer axr_..." }
}
}
}Read, fix, verify
Start with list_my_sites and get_my_report. Read get_my_fixes, then get_my_fix for the selected check. After publishing your changes, call scan_my_site and poll get_my_scan after pollAfterSeconds. Use the baseline and completed scan ids with compare_my_scans. Comparisons cover origin findings; a changed engine or page coverage prevents declaring fixes or regressions confirmed.
Every tool returns readable text and structuredContent matching its outputSchema, with a nextStep. Check isError first: errors contain an error code and message. N/A checks have applicable=false and score=null, and do not count as failures.
list_my_site_ai_executions, list_my_social_ai_executions, list_my_social_identities, list_my_channel_readings, list_my_channel_verifications, list_my_social_rivals, get_my_social_answers, list_my_sites, get_my_history, get_my_verifications, get_my_answers, and get_my_agent_runs accept limit (1–50, default 20) and offset (default 0). Repeat with nextOffset as offset and the same limit until nextOffset is null. In Answers, pagination applies to the pass list; selectedPass identifies the pass whose results are returned.
Native clients need no Origin header. Browser clients must use the site origin or an origin explicitly allowed by the deployment. Supported MCP protocol versions: 2025-06-18 and 2025-03-26. The endpoint is stateless and accepts JSON requests up to 64 KiB.