{
  "markdown": "# OpenWeb Ninja MCP Server\n\nOfficial [Model Context Protocol](https://modelcontextprotocol.io) server for [OpenWeb Ninja](https://www.openwebninja.com) APIs. Gives any MCP-compatible AI agent (Claude, Cursor, Cline, and others) real-time access to web search, local business data, jobs, e-commerce, real estate, finance, news, and more, through a single connection.\n\nOne tool per API product (41 tools), each exposing that API's operations, plus a `subscribe` tool for adding an API's free tier on demand — 42 tools in total. Schemas are generated directly from OpenWeb Ninja's OpenAPI specs, so the server always matches the live APIs.\n\n## Setup\n\nYou need an OpenWeb Ninja API key. Get one at [openwebninja.com](https://www.openwebninja.com).\n\nThe server runs via `npx` — there's nothing to install globally. Pick your client below; `npx` fetches `@openwebninja/mcp-server` on demand.\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json` (Settings -> Developer -> Edit Config):\n\n```json\n{\n  \"mcpServers\": {\n    \"openwebninja\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@openwebninja/mcp-server\"],\n      \"env\": { \"OPENWEBNINJA_API_KEY\": \"your-api-key\" }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add openwebninja -e OPENWEBNINJA_API_KEY=your-api-key -- npx -y @openwebninja/mcp-server\n```\n\n### Cursor / Cline / Continue / Windsurf\n\nUse the same `command` / `args` / `env` shape in the client's MCP config (`mcp.json` or equivalent).\n\n### From source (local development)\n\n```bash\ngit clone <repo> && cd openwebninja-mcp\nnpm install\nnpm run build\n```\n\nThen point your MCP client at the built entry:\n\n```json\n{\n  \"mcpServers\": {\n    \"openwebninja\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/openwebninja-mcp/dist/index.js\"],\n      \"env\": { \"OPENWEBNINJA_API_KEY\": \"your-api-key\" }\n    }\n  }\n}\n```\n\n## How the tools work\n\nEach tool maps to one OpenWeb Ninja API and takes two inputs:\n\n- `operation`: which endpoint to call (e.g. `search`, `product_details`)\n- `args`: the parameters for that operation\n\nThe tool description lists every operation and its required parameters. Example call to the `jsearch` tool:\n\n```json\n{\n  \"operation\": \"search\",\n  \"args\": { \"query\": \"site reliability engineer remote\", \"country\": \"us\" }\n}\n```\n\nArguments are validated and type-coerced before the request is sent, and responses return the OpenWeb Ninja `data` payload plus a `request_id`.\n\n## Environment variables\n\n| Variable | Required | Description |\n| --- | --- | --- |\n| `OPENWEBNINJA_API_KEY` | yes | Your OpenWeb Ninja API key (sent as `x-api-key`). |\n| `OPENWEBNINJA_BASE_URL` | no | Override the API host (defaults to `https://api.openwebninja.com`). For staging/testing. |\n\n## Available tools (42)\n\n**Search & discovery:** `realtime_web_search`, `realtime_news_data`, `real_time_news_search`, `realtime_forums_search`, `web_search_autocomplete`, `realtime_image_search`, `reverse_image_search`, `realtime_lens_data`, `real_time_video_search`, `realtime_shorts_search`, `ai_overviews`, `google_ai_mode`, `social_links_search`\n\n**Local & maps:** `local_business_data`, `yelp_business_data`, `trustpilot_company_and_reviews`, `local_rank_tracker`, `driving_directions`, `waze`, `ev_charge_finder`\n\n**Jobs & companies:** `jsearch`, `job_salary_data`, `realtime_glassdoor_data`\n\n**Commerce & product:** `realtime_amazon_data`, `realtime_product_search`, `real_time_walmart_data`, `real_time_ebay_data`, `realtime_costco_data`, `real_time_wayfair_data`, `realtime_books_data`, `play_store_apps`\n\n**Real estate:** `realtime_zillow_data`, `real_time_redfin_data`\n\n**Finance & events:** `realtime_finance_data`, `realtime_events_data`\n\n**Contact & enrichment:** `website_contacts_scraper`, `email_search`\n\n**Utility:** `web_unblocker`\n\n**LLM relays:** `chatgpt`, `gemini`, `copilot`\n\n**Access:** `subscribe` (add an API's free tier on demand)\n\n## Development\n\n```bash\nnpm run sync       # sync OpenAPI specs from S3 into openapi-cache/ (needs AWS creds)\nnpm run generate   # regenerate src/generated/manifest.ts from the specs\nnpm run build      # compile TypeScript to dist/\nnpm run dev        # run the server over stdio (tsx, no build)\nnpm run inspect    # launch the MCP Inspector against the server\nnpx tsx test/smoke.ts   # smoke test: list tools + validation + request path\n```\n\nThe pipeline is: OpenAPI specs (`openapi-cache/`) -> `scripts/generate.ts` -> `src/generated/manifest.ts` -> tools registered at runtime in `src/server.ts`. To add or update an API, re-sync the specs and regenerate; no hand-written per-tool code is needed (only the curated descriptions in `src/lib/descriptions.ts`).\n",
  "bytes": 4625,
  "sha": "755956c5ba5b43b7b0ca3af1cb2fd2dec2b9b4ad409fc9b746f70da0a14d9096",
  "repo_slug": "openweb-ninja/openwebninja-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_openweb_ninja_openwebninja_mcp_b5101e71/readme"
}