{
  "markdown": "# optiqra-mcp\n\nAn MCP (Model Context Protocol) server that exposes every tool in\n[OptiQra](https://github.com/armin5872/OptiQra)'s API to MCP-compatible AI\nclients (Claude Desktop, Claude Code, Cursor, etc.).\n\nOptiQra has four HTTP endpoints. This server wraps all four as MCP tools:\n\n| Tool                  | OptiQra endpoint      | What it does                                                              |\n| ---------------------- | ---------------------- | -------------------------------------------------------------------------- |\n| `optiqra_analyze`      | `POST /api/analyze`    | Crawls a URL and runs the full SEO/GEO/AEO/perf/a11y/security audit        |\n| `optiqra_ai_fix`       | `POST /api/ai-fix`     | Generates an AI-written fix for one issue from a report                    |\n| `optiqra_ai_insights`  | `POST /api/ai-insights`| Generates a site-wide AI strategy summary across a full report             |\n| `optiqra_ai_test`      | `POST /api/ai-test`    | Verifies a provider/API key/model combo works before using the two above   |\n\nBy default it talks to the public demo, `https://optiqra.vercel.app`. Point\nit at your own deployment (see OptiQra's own `DEPLOYMENT.md`/Docker setup)\nwith an env var — see below.\n\n## Install\n\n```bash\nnpm install\n```\n\n(or, once published, `npm install -g optiqra-mcp` / run directly with `npx optiqra-mcp`)\n\n## Configuration (environment variables)\n\n| Variable                  | Required | Purpose                                                                                   |\n| -------------------------- | -------- | ------------------------------------------------------------------------------------------ |\n| `OPTIQRA_BASE_URL`         | No       | Base URL of the OptiQra instance to call. Defaults to `https://optiqra.vercel.app`.        |\n| `OPTIQRA_PROVIDER_API_KEY` | No       | A default AI-provider API key used by `optiqra_ai_fix`/`optiqra_ai_insights`/`optiqra_ai_test` if the model doesn't pass one. Recommended over letting the model handle the key in plaintext. |\n| `OPTIQRA_TIMEOUT_MS`       | No       | Request timeout in ms. Defaults to `120000` (full-site crawls can be slow).                |\n\n## Run it standalone\n\n```bash\nnode src/index.js\n```\n\nIt speaks MCP over stdio, so you won't see anything happen — it's waiting\nfor an MCP client to connect.\n\n## Wire it into an MCP client\n\n### Claude Desktop / Claude Code\n\nAdd to your MCP config (`claude_desktop_config.json`, or via `claude mcp add`\nfor Claude Code):\n\n```json\n{\n  \"mcpServers\": {\n    \"optiqra\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/optiqra-mcp/src/index.js\"],\n      \"env\": {\n        \"OPTIQRA_BASE_URL\": \"https://optiqra.vercel.app\",\n        \"OPTIQRA_PROVIDER_API_KEY\": \"sk-...\"\n      }\n    }\n  }\n}\n\nAny other MCP-compatible client (Cursor, Windsurf, etc.) uses the same\n`command`/`args`/`env` shape — check that client's docs for where the config\nfile lives.\n\n## Notes on the AI-key tools\n\n`optiqra_ai_fix`, `optiqra_ai_insights`, and `optiqra_ai_test` all need a\nprovider API key, exactly like pasting one into OptiQra's own UI — OptiQra's\nserver forwards it straight to the provider (OpenAI, Anthropic, Google, Groq,\nOpenRouter, Mistral, DeepSeek, or xAI) and never stores it. This server does\nthe same: it never persists keys. Prefer setting `OPTIQRA_PROVIDER_API_KEY`\nin your MCP client's env config over having the model pass a key through\nchat.\n",
  "bytes": 3423,
  "sha": "fe11a3c92c42147ebd0cfb539cb446879c8adcdf2a1163540911cca3f283cf11",
  "repo_slug": "armin5872/optiqra-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_armin5872_optiqra_mcp_224a6a9f/readme"
}