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)
- Open Settings → Connectors and choose Add custom connector.
- Name it Irmu and paste
https://app.irmu.com/mcpas the url. - Press Connect, sign in, and choose the organization to bill.
ChatGPT
- Turn on Developer mode under Settings → Apps & Connectors → Advanced.
- Create a connector with
https://app.irmu.com/mcpas its url and OAuth as its authentication. - 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_pollspends credits. Each answer says what it cost incredits_chargedand what is left incredits_remaining; a crawl that fails is refunded. - A slow page answers with
statusqueued or running and ajob_id. It is already paid for: agents collect it withcrawl_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
crawl | Fetch 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. |
|---|---|
screenshot | Take 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_overview | Search 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_search | Search 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_hotel | Read 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_poll | Collect 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. |