Delivery
Claude, Cursor & more (MCP)
What it does
Lets your AI client (Claude, Cursor, VS Code, Codex and others) run RulerIQ's free site check and fetch paste-ready fixes without leaving your editor or chat. It returns no Score; the full check of the four engines runs at /grader.
Set it up: the free site check, no key
Pick your client below. Every option connects to the same endpoint, https://ruleriq.com/api/mcp (Streamable HTTP, JSON-RPC 2.0). It needs no sign-in and no API key. The same box is on /integrations.
- Run this in a terminal. Add --scope user to make it available in every project.
- Check it connected with /mcp inside a Claude Code session.
claude mcp add --transport http ruleriq https://ruleriq.com/api/mcp- Use the one-click link, or add the snippet to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects).
- Cursor asks you to confirm the install. No sign-in is needed.
{
"mcpServers": {
"ruleriq": {
"url": "https://ruleriq.com/api/mcp"
}
}
}- Add this to .vscode/mcp.json in your workspace, or run MCP: Open User Configuration from the Command Palette to add it for every workspace.
- Start the server from the Start code lens in the file, then use it in Copilot Chat's agent mode. The top-level key is servers, not mcpServers.
{
"servers": {
"ruleriq": {
"type": "http",
"url": "https://ruleriq.com/api/mcp"
}
}
}- Run this in a terminal, or add the TOML to ~/.codex/config.toml (or .codex/config.toml in a trusted project).
codex mcp add ruleriq --url https://ruleriq.com/api/mcp[mcp_servers.ruleriq]
url = "https://ruleriq.com/api/mcp"- Open Customize, then Connectors, click Add, then Add custom connector.
- Name it RulerIQ and paste https://ruleriq.com/api/mcp as the remote MCP server URL.
- Leave sign-in off (the site check needs none) and click Add. In a chat, open the + menu, choose Connectors and switch RulerIQ on.
- Team and Enterprise: an Owner adds it under Organization settings, Connectors; members then click Connect.
- Not claude_desktop_config.json. That file is for local servers; remote servers are added as connectors.
https://ruleriq.com/api/mcp- Paste this into any agent that can edit its own MCP settings. It works in clients not listed here that support remote Streamable HTTP servers.
Add the RulerIQ MCP server to my MCP config. It's a remote Streamable HTTP server at https://ruleriq.com/api/mcp with no authentication. Then use its ruleriq_audit_domain tool to check example.com.Use RulerIQ to check example.comClaude Desktop does not use a config file for this
Claude Desktop's claude_desktop_config.json is for servers that run on your computer. A remote server like RulerIQ is added as a custom connector (Customize, Connectors), as shown in the Claude Desktop / claude.ai tab. The JSON snippets above are for Cursor and VS Code only.
Beta: read your own data with an access key
Beta, for tracked brands (paid plans are not open yet). An access key lets Claude, Cursor, VS Code or Codex read your own tracked brands, and — if you create it with write access — mark fixes done too. Nothing is crawled or sent anywhere, and a key only ever sees brands on your own account.
Create a key. In the app, open Settings, then Keys and connections, type a name (for example "Claude Code on my laptop") and choose Create access key. The key starts with riq_ and is shown once, with the setup box filled in for you. We store only a hash of it, so we can't show it again: if you lose it, revoke it and create another. You can have 5 active keys. Creating a key needs a tracked brand.
Read or read + write. Keys read by default. Tick the "Write access — read + write" box while creating a key to let an agent mark fixes done with ruleriq_mark_fix_done; the key's scope is shown next to it in the list. A write key can also read. Anything else a key can do is unchanged: it only touches brands on your own account.
Send it as a header. Every client sends the same thing, Authorization: Bearer riq_.... Put it in the client like this (the setup box shows these filled in right after you create a key):
- Claude Code: add
--header "Authorization: Bearer riq_..."to theclaude mcp addcommand. - Cursor: a
headersobject withAuthorizationon the server entry inmcp.json. - VS Code:
headerson the server entry, with the key asked for through aninputspassword entry (${input:...}) so it isn't written into the file. - Codex:
bearer_token_env_var = "RULERIQ_ACCESS_KEY"on the server entry, with the key in that environment variable. - Claude Desktop and claude.ai: a custom connector has a Request headers field for fixed credentials such as bearer tokens. Claude's guide doesn't show the field's exact layout, so check it there. OAuth sign-in for RulerIQ is planned, so that you won't need to paste a key.
The key goes in the header only. We refuse a request that puts a key in the URL.
What you get. With a valid key, tools/list also shows these tools. Without a key they aren't listed, and calling one by name returns a short message on how to get a key. Brand arguments take a domain or an id, and may be left out when your account tracks one brand.
ruleriq_list_brands: your tracked brands, plan, last check and next check.ruleriq_get_score: the latest Score with its margin of error, the four components, the week-over-week verdict and the trend.ruleriq_get_history: the History page's rows (and its CSV) with from, to, engine and question filters, up to 104 rows.ruleriq_get_fix_list: the fix list from the latest check, ranked as in the app, each item with its status (open, improving, verified, regressed or not enough data).ruleriq_get_answers: for each question and engine in a check, whether you were named, how many runs agreed (for example 3/5), your best rank and the pages cited.ruleriq_mark_fix_done(only with a write-access key): marks a fix-list item done (done=true, the same as the Mark done button in the app) or undone (done=false, back to still missing). It takesbrandId(domain or id),fixId(from the fix list) anddone.
Every reply carries sentences that RulerIQ computes from your stored checks, the same ones the app shows. Agents should quote them rather than restate a change in their own words: a move only counts as a real change when the sentence says it beat the normal run-to-run variation.
What it can't do yet. RulerIQ doesn't store the engines' answer text, so ruleriq_get_answers returns who was named and how consistently, not quotes. Question wording is kept for checks made since 2026-11-04; earlier checks show numbered questions. Marking a fix done from your client needs a write-access key; a fix only counts as verified after at least two later full checks confirm it. Each key is limited to 2,000 requests a day.
Revoke a key. In Settings, Keys and connections, choose Revoke next to the key. It stops working immediately and the client gets a 401. The list shows each key's name, its first characters, when it was created and when it was last used (updated at most once a minute).
Beta: the full check on your own keys, no account
Beta. Ask your AI client for the full four-engine check (ChatGPT, Perplexity, Gemini and Claude) and pay the model providers directly with your own API keys. There is no RulerIQ account, no email and no plan. You get the Score with its margin of error, per-engine and per-question results, wrong prices, the pages engines cite and the paste-ready fix kit, in your client.
It is the same check as the free grader: 5 buyer questions, 2 runs each plus extra runs where the engines disagree, the same models and the same per-check cost cap, so a Score from here is comparable to one from /grader. One difference: this path does no DeepSeek fact checking (we don't spend our own keys here).
What it needs. All four keys, because the Score needs all four engines. If any is missing the tool says which and does nothing. Keys are never tool arguments, because arguments are saved in your chat history. They go in your client's config as four request headers: X-OpenAI-Key, X-Anthropic-Key, X-Gemini-Key and X-Perplexity-Key. We refuse a request that puts a key in a tool argument or in the URL.
How the keys are handled. A key is used for that one request and then forgotten. We don't store it, cache it or write it to logs, and error text from a provider is scrubbed before we use it. The result isn't cached either. This is separate from own-key plans, where keys are stored encrypted for weekly checks. Use dedicated keys with a spend limit, as that page explains. The clients below read the keys from environment variables or a hidden prompt, so they aren't written into a config file.
- Set the four variables in the shell you start Claude Code from. Use dedicated keys with spend limits.
- Add this .mcp.json to your project. It holds variable names, not keys, so it is safe to commit; Claude Code fills in each ${...} when it starts.
- Don't use claude mcp add --header for these: it saves the value you type into its config file.
export RULERIQ_OPENAI_KEY="paste the key here"
export RULERIQ_ANTHROPIC_KEY="paste the key here"
export RULERIQ_GEMINI_KEY="paste the key here"
export RULERIQ_PERPLEXITY_KEY="paste the key here"{
"mcpServers": {
"ruleriq": {
"type": "http",
"url": "https://ruleriq.com/api/mcp",
"headers": {
"X-OpenAI-Key": "${RULERIQ_OPENAI_KEY}",
"X-Anthropic-Key": "${RULERIQ_ANTHROPIC_KEY}",
"X-Gemini-Key": "${RULERIQ_GEMINI_KEY}",
"X-Perplexity-Key": "${RULERIQ_PERPLEXITY_KEY}"
}
}
}
}- Set the four variables in your shell profile or system environment, then start Cursor from a session that has them. Use dedicated keys with spend limits.
- Add this to .cursor/mcp.json (or ~/.cursor/mcp.json). Cursor resolves ${env:NAME} in headers, so the file holds names, not keys.
export RULERIQ_OPENAI_KEY="paste the key here"
export RULERIQ_ANTHROPIC_KEY="paste the key here"
export RULERIQ_GEMINI_KEY="paste the key here"
export RULERIQ_PERPLEXITY_KEY="paste the key here"{
"mcpServers": {
"ruleriq": {
"url": "https://ruleriq.com/api/mcp",
"headers": {
"X-OpenAI-Key": "${env:RULERIQ_OPENAI_KEY}",
"X-Anthropic-Key": "${env:RULERIQ_ANTHROPIC_KEY}",
"X-Gemini-Key": "${env:RULERIQ_GEMINI_KEY}",
"X-Perplexity-Key": "${env:RULERIQ_PERPLEXITY_KEY}"
}
}
}
}- Add this to .vscode/mcp.json, or run MCP: Open User Configuration for every workspace. The top-level key is servers, not mcpServers.
- VS Code asks for each of the four keys when the server starts (hidden as you type), so nothing is written into the file. Use dedicated keys with spend limits.
{
"inputs": [
{
"type": "promptString",
"id": "ruleriq-openai-key",
"description": "OpenAI API key for RulerIQ full checks",
"password": true
},
{
"type": "promptString",
"id": "ruleriq-anthropic-key",
"description": "Anthropic API key for RulerIQ full checks",
"password": true
},
{
"type": "promptString",
"id": "ruleriq-gemini-key",
"description": "Gemini API key for RulerIQ full checks",
"password": true
},
{
"type": "promptString",
"id": "ruleriq-perplexity-key",
"description": "Perplexity API key for RulerIQ full checks",
"password": true
}
],
"servers": {
"ruleriq": {
"type": "http",
"url": "https://ruleriq.com/api/mcp",
"headers": {
"X-OpenAI-Key": "${input:ruleriq-openai-key}",
"X-Anthropic-Key": "${input:ruleriq-anthropic-key}",
"X-Gemini-Key": "${input:ruleriq-gemini-key}",
"X-Perplexity-Key": "${input:ruleriq-perplexity-key}"
}
}
}
}- Set the four variables in your shell, then add this to ~/.codex/config.toml (or .codex/config.toml in a trusted project). env_http_headers maps each header to the environment variable that holds its value. Use dedicated keys with spend limits.
export RULERIQ_OPENAI_KEY="paste the key here"
export RULERIQ_ANTHROPIC_KEY="paste the key here"
export RULERIQ_GEMINI_KEY="paste the key here"
export RULERIQ_PERPLEXITY_KEY="paste the key here"[mcp_servers.ruleriq]
url = "https://ruleriq.com/api/mcp"
env_http_headers = { "X-OpenAI-Key" = "RULERIQ_OPENAI_KEY", "X-Anthropic-Key" = "RULERIQ_ANTHROPIC_KEY", "X-Gemini-Key" = "RULERIQ_GEMINI_KEY", "X-Perplexity-Key" = "RULERIQ_PERPLEXITY_KEY" }Use RulerIQ to run a full check on example.comWhat it costs. Up to $0.90 per check on your keys. Each result includes an estimate from our per-call cost model; your provider's dashboard is the source of truth.
How long it takes. About one to three minutes. The check runs while the request is open: we answer as an event stream with keep-alives, and with progress updates if your client asks for them. The keys are never saved for a background job, which is why it isn't asynchronous. If your client gives up waiting, the provider calls already started still finish and are billed to your keys, up to the cost cap.
Limits. 3 full checks per IP address per day, counted when the check starts (a mistyped domain uses one). If an engine rejects its key, no Score is returned: the tool says which engine and why, and the calls already made stop early.
What you don't get. No history, weekly schedule, verified fixes or delivery to Slack, Linear or email. Those are in the paid plans.
ruleriq_full_check("Full check on your own keys"): argumentsdomainand an optionalcategory. Quote the sentences it returns as they are.
Claude Desktop and claude.ai aren't offered here: custom connectors only take literal header values, so you would paste four keys into a settings screen.
Test it
In your client, ask: “Use RulerIQ to check example.com.” The ruleriq_audit_domain tool should run and return readiness, facts found and fixes. Or from a terminal:
curl -s https://ruleriq.com/api/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
What RulerIQ can and can't access
The free tools fetch public pages on the domain you give (robots.txt, homepage, pricing and a few others) through our safe fetcher, and return results to your editor. Nothing is read from your editor or files. A per-IP daily limit applies. The full check on your own keys also fetches the domain you give, then sends the buyer questions and your keys to the four model providers and nowhere else; keys aren't kept. The access-key tools read only data stored in your own account, and a write-access key's one write is marking your own fixes done or undone — nothing else.
Disconnect and delete
Remove the ruleriq entry (or, in Claude, the RulerIQ connector) from your client's MCP settings; in Claude Code run claude mcp remove ruleriq. To stop a key working, revoke it in Settings, Keys and connections.