Irmu — Web Data MCP
Irmu memberi agen AI akses ke data web langsung melalui web scraping, rendering browser sungguhan, otomatisasi browser, tangkapan layar halaman penuh, dan ekstraksi data terstruktur bertenaga AI. Hubungkan sekali dan akses berbagai alat data web canggih melalui MCP.
Server MCP Terhosting
npx add-mcp 'https://app.irmu.com/mcp'Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
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. |