Irmu — Web Data MCP

Irmu gives AI agents access to live web data through web scraping, real-browser rendering, browser automation, full-page screenshots and AI-powered structured data extraction. Connect once and access powerful web data tools through MCP.

호스팅형 MCP 서버

npx add-mcp 'https://app.irmu.com/mcp'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

IRMU MCP server

Give an AI agent the crawler: fetch any page, screenshot it, read Google's AI Overview for a query, and search Booking.com -- spending your organization's credits, exactly as the HTTP API does.

Server url

https://app.irmu.com/mcp

Streamable HTTP transport. There are two ways to sign in:

  • OAuth (recommended) -- add the url and your client opens a browser. Sign in to the dashboard and choose which of your organizations the client bills.
  • API key -- for clients with no browser (scripts, CI). Send an organization key from the dashboard 's API Keys page as Authorization: Bearer <api key>.

Claude Code

claude mcp add --transport http irmu https://app.irmu.com/mcp

Then run /mcp inside Claude Code, pick irmu and authenticate. Add --scope user to make it available in every project.

With an API key instead:

claude mcp add --transport http irmu https://app.irmu.com/mcp \
  --header "Authorization: Bearer <api key>"

Claude (desktop & web)

  1. Open Settings → Connectors and choose Add custom connector.
  2. Name it Irmu and paste https://app.irmu.com/mcp as the url.
  3. Press Connect, sign in, and choose the organization to bill.

ChatGPT

  1. Turn on Developer mode under Settings → Apps & Connectors → Advanced.
  2. Create a connector with https://app.irmu.com/mcp as its url and OAuth as its authentication.
  3. Sign in and choose the organization, then enable the connector from the tools menu of a chat.

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project), then press Login next to the server under Settings → MCP:

{
  "mcpServers": {
    "irmu": {
      "url": "https://app.irmu.com/mcp"
    }
  }
}

With an API key, add a header:

"irmu": {
  "url": "https://app.irmu.com/mcp",
  "headers": { "Authorization": "Bearer <api key>" }
}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json, or run MCP: Add Server from the command palette. VS Code asks you to sign in the first time a tool is used.

{
  "servers": {
    "irmu": {
      "type": "http",
      "url": "https://app.irmu.com/mcp"
    }
  }
}

With an API key, kept out of the file by prompting for it:

{
  "inputs": [
    { "type": "promptString", "id": "irmu-key", "description": "Irmu API key", "password": true }
  ],
  "servers": {
    "irmu": {
      "type": "http",
      "url": "https://app.irmu.com/mcp",
      "headers": { "Authorization": "Bearer ${input:irmu-key}" }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json and refresh the MCP servers in Cascade. Leave out headers to sign in with OAuth.

{
  "mcpServers": {
    "irmu": {
      "serverUrl": "https://app.irmu.com/mcp",
      "headers": { "Authorization": "Bearer ${env:IRMU_API_KEY}" }
    }
  }
}

Codex CLI

Add to ~/.codex/config.toml, then sign in with codex mcp login irmu:

[mcp_servers.irmu]
url = "https://app.irmu.com/mcp"

With an API key, read from an environment variable instead of signing in:

[mcp_servers.irmu]
url = "https://app.irmu.com/mcp"
bearer_token_env_var = "IRMU_API_KEY"

Gemini CLI

Add to ~/.gemini/settings.json. The first call opens a browser to sign in; /mcp auth irmu signs in again.

{
  "mcpServers": {
    "irmu": {
      "httpUrl": "https://app.irmu.com/mcp"
    }
  }
}

With an API key:

"irmu": {
  "httpUrl": "https://app.irmu.com/mcp",
  "headers": { "Authorization": "Bearer $IRMU_API_KEY" }
}

Good to know

  • Every tool but crawl_poll spends credits. Each answer says what it cost in credits_charged and what is left in credits_remaining; a crawl that fails is refunded.
  • A slow page answers with status queued or running and a job_id. It is already paid for: agents collect it with crawl_poll.
  • To bill a different organization, remove the server from your client and add it again, then choose the other organization when you sign in.
  • Leaving an organization disconnects every client that bills it.

Tools

crawlFetch a web page through a proxied browser and return its HTML in `content`, optionally with an AI answer to `ai_query` in `data`. Spends credits; `credits_charged` says how many. If `status` is "queued" or "running", call `crawl_poll` with the `job_id` to collect it.
screenshotTake a full-page JPEG screenshot of a web page through a proxied browser. Returns the image, plus `data` with an AI answer if `ai_query` was asked. Spends a flat number of credits. If `status` is "queued" or "running", call `crawl_poll` with the `job_id` to collect it.
google_ai_overviewSearch Google for a query and return the AI Overview Google shows above the results, with the sources it cites. `ai_overview` is null when Google showed none for that query. Spends a flat number of credits. If `status` is "queued" or "running", call `crawl_poll` with the `job_id` to collect it.
booking_searchSearch Booking.com for places to stay at a destination and return the properties listed, priced for the stay given. Use `booking_hotel` with a property url for one hotel in detail. Spends a flat number of credits. If `status` is "queued" or "running", call `crawl_poll` with the `job_id` to collect it.
booking_hotelRead one Booking.com property page -- price, rating, rooms, facilities -- priced for the stay given. Takes the property url, e.g. from a `booking_search` result. Spends a flat number of credits, refunded if the page could not be read. If `status` is "queued" or "running", call `crawl_poll` with the `job_id` to collect it.
crawl_pollCollect a crawl that another tool answered with `status` "queued" or "running". Pass its `job_id`. Free. Returns the same `status`; when it is "done", the page is in `content` or the extracted result in `data`. Wait a few seconds between polls.