Skip to content

EveryInfra

by xiaoxihexiaoyu · remote · no sign-in to list tools · v1.1.0 · published by GitHub user xiaoxihexiaoyu

Structured data from 90 platforms (RedNote, Douyin, TikTok, Amazon), web search, CAPTCHA solving.

Deletes · 5Final · 2Changes · 14

25 tools: 5 can delete or cancel things, 2 do something that can't be undone, 14 change things and 4 only read.

Scanned Oct 21, 2026

5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http everyinfra https://api.everyinfra.com/mcp

Findings

Matches of fixed checks, with the text they matched.

4 warn1 info
  • The server marks "everyinfra_search" destructive (destructiveHint: true), and its name says "search", a word for reading.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":true,"openWorldHint":true}; The name "everyinfra_search" says "search": a word for reading.

    What this check looks for
  • The server marks "everyinfra_usage" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "call": a word for a change.

    What this check looks for
  • The server marks "everyinfra_requests" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "everyinfra_requests" says "request": a word for a change.

    What this check looks for
  • The server marks "everyinfra_topup_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "everyinfra_topup_link" says "link": a word for a change.

    What this check looks for
  • The description is 2,024 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: ".... Failed or empty searches leave no final charge (anything reserved is restored)."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

25 tools

Deletes or cancels 5Claude Code: deny
  • everyinfra_call_apiCall any EveryInfra data capability and get structured JSON.No findings

    Why it is in this group

    • The name "everyinfra_call_api" says "call": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Call any EveryInfra data capability and get structured JSON. Priced per platform tier USD 0.56/1K–USD 5.56/1K; failed calls and empty results leave no final charge (anything reserved is restored). Most actions return up to `limit` rows in one call, billed once; multi-target arrays (urls, targets, usernames, tickers) are billed per element, and actions with rows_per_unit per block of rows asked for. Page-based actions (page_size in the catalog) return one page per call, of a fixed size unless page_size_varies (then a short page is not the end); for more, pass the response's top-level next_page_token (some actions repeat it on each row) as page_token — each page is one call. Check platform/action, required params and max_limit or page_size with everyinfra_list_capabilities first. For slow tasks or large limits pass mode=async: you get a job_id at once; read the result with everyinfra_get_job (free).

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: true
    • destructiveHint: true
  • everyinfra_chatEveryInfra's OpenAI-compatible text completions with multi-turn history and any input content or format.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    EveryInfra's OpenAI-compatible text completions with multi-turn history and any input content or format. Free for accounts that have topped up (nothing is deducted); accounts that have not get ai_topup_required. Rate-limited per account by cumulative top-ups (under $100: 50 requests/minute, $100 or more: 500, $500 or more: 5,000, all keys combined); current models: GET /api/v1/models. Good for cleaning collected data: summaries, translation, sentiment labels, topic classification and structured extraction. messages may total up to 45,000 characters; beyond that you get input_too_large — split long documents into several calls.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: true
  • everyinfra_key_deletePermanently delete a key created through an API key, or the calling key itself.No findings

    Why it is in this group

    • The name "everyinfra_key_delete" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a key created through an API key, or the calling key itself. Keys created in the console cannot be deleted this way. Pass confirm: true. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: true
  • everyinfra_solve_captchaSolve a CAPTCHA or bot challenge and get a ready-to-use solution.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Solve a CAPTCHA or bot challenge and get a ready-to-use solution. USD 0.000139/call–0.004583/call, **charged per successful solve; failed or empty attempts leave no final charge (anything reserved is restored)**. Use it when a target site is blocked by Turnstile / reCAPTCHA / hCaptcha / a Cloudflare challenge page / GeeTest and the like. Params differ per type — check them with everyinfra_list_captcha_types first.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: true
    • destructiveHint: true
Can't be undone 2Claude Code: ask
  • everyinfra_ticket_replyAdd a message to one of the account's support tickets; human support answers it.No findings

    Why it is in this group

    • The name "everyinfra_ticket_reply" says "reply": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Add a message to one of the account's support tickets; human support answers it. Reuse the same idempotency_key when retrying the same message. Needs the support:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_webhook_testSend one signed webhook.test event to the configured endpoint now and report the HTTP status and latency.No findings

    Why it is in this group

    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Send one signed webhook.test event to the configured endpoint now and report the HTTP status and latency. Not retried; at most 5 per minute. Needs the settings:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
Changes things 14Claude Code: ask
  • everyinfra_accountThe account behind this API key: wallet balance in USD (paid and bonus separately plus the total, and bonus credit that has not expired yet), this month's top-up discount (top-ups …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The account behind this API key: wallet balance in USD (paid and bonus separately plus the total, and bonus credit that has not expired yet), this month's top-up discount (top-ups credited this month, the current discount, the next tier and how far away it is), the per-minute limit (all keys combined, including a rate package and when it ends), this key's name and creation time, and calls and spend in the last 24 hours. Free. Check the balance before a batch of paid calls; every paid call's billing also carries balance_after_usd (what is left after it).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_billingSpend in USD for the last N days: the total, by platform, charged / free / failed call counts and the current discount, plus recent wallet entries (top-ups, charges, refunds, bonus…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Spend in USD for the last N days: the total, by platform, charged / free / failed call counts and the current discount, plus recent wallet entries (top-ups, charges, refunds, bonuses). Needs the account read permission "billing:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_create_ticketOpen a ticket with EveryInfra's human support team and get back the ticket number and a link the account owner can open.No findings

    Why it is in this group

    • The name "everyinfra_create_ticket" says "create": a word for a change.
    Description, as the server wrote it
    Open a ticket with EveryInfra's human support team and get back the ticket number and a link the account owner can open. Use it when calls keep failing or return wrong or missing data, for top-up, charge or refund questions, or to ask for a new platform, capability or field. Put one line in subject; in description say what you called (platform/action or endpoint), when (UTC), the error code and message and what you expected, and pass that call's request_id (and job_id for an async job); write other IDs with a label such as job_id: job_..., because a bare long ID reads as a secret. Never include API keys or passwords. Ask the user first and open it only if they agree. Errors whose fault is request or account need a fixed request or the user, not a ticket; an error's support field carries a ready draft. Any key on the account works and nothing is charged. Retrying the same request returns the same ticket, and the same capability and error code within 24 hours goes into that ticket. Support is online 10:00-24:00 (UTC+8) with a 10-minute average first reply; replies arrive in the ticket and the account owner also gets an email. Check progress and read support's replies with everyinfra_get_ticket (REST: GET /api/v1/support/tickets/{ticket_id}) using the same key, or at the returned link.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_key_createCreate a new API key on this account and return it once.No findings

    Why it is in this group

    • The name "everyinfra_key_create" says "create": a word for a change.
    Description, as the server wrote it
    Create a new API key on this account and return it once. The new key can never be broader than the key making the call: same or fewer capabilities, the same source-IP limit, no later expiry, no higher per-minute limit, only account read scopes this key has, and never any write scope. At most 20 keys per account per UTC day this way. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_key_disableDisable any key on this account at once, for example one that leaked.No findings

    Why it is in this group

    • The name "everyinfra_key_disable" says "disable": a word for a change.
    Description, as the server wrote it
    Disable any key on this account at once, for example one that leaked. Calls with it fail until the account owner enables it again in the console. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_key_updateRename a key, change its note, move its expiry earlier, or lower its per-minute limit.No findings

    Why it is in this group

    • The name "everyinfra_key_update" says "update": a word for a change.
    Description, as the server wrote it
    Rename a key, change its note, move its expiry earlier, or lower its per-minute limit. Works on keys created through an API key and on the calling key itself; keys created in the console can only be disabled. Needs the keys:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_keysEvery API key of the account: name, prefix, status, product-line permissions, account read permissions, per-minute limit, whether source IPs are restricted, expiry and last use.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Every API key of the account: name, prefix, status, product-line permissions, account read permissions, per-minute limit, whether source IPs are restricted, expiry and last use. Never returns a full key; create, limit or disable keys in the console. Needs the account read permission "account:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_requestsThe account's call records, newest first: request_id, capability, status code, latency, rows returned, whether it was charged, and the amount.1 finding

    Why it is in this group

    • The name "everyinfra_requests" says "request": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "everyinfra_requests" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "everyinfra_requests" says "request": a word for a change.

      What this check looks for
    Description, as the server wrote it
    The account's call records, newest first: request_id, capability, status code, latency, rows returned, whether it was charged, and the amount. Pass request_id (the request_id / X-Request-Id of any call) to look up one call, including its charge's final state (charged, refunded or partly refunded) and any async job it started. failed_only=true lists failures only. Needs the account read permission "requests:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_settings_updateChange console language, time zone and notification switches.No findings

    Why it is in this group

    • The name "everyinfra_settings_update" says "update": a word for a change.
    Description, as the server wrote it
    Change console language, time zone and notification switches. Low-balance alerts use fixed tiers ($100, $50, $10, $5, $1, one email the first time the balance drops below each) and can only be turned on or off. Security notifications can be turned on here but only turned off in the console. Needs the settings:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_ticket_createOpen a ticket with human support.No findings

    Why it is in this group

    • The name "everyinfra_ticket_create" says "create": a word for a change.
    Description, as the server wrote it
    Open a ticket with human support. At most 10 per account per UTC day this way; replies come from staff, not from an AI. Reuse the same idempotency_key when retrying. Needs the support:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_ticketsThe account's support tickets: without ticket_id, the latest tickets; with it, that ticket and its messages.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The account's support tickets: without ticket_id, the latest tickets; with it, that ticket and its messages. Needs the account read permission "support:read" on this key (off by default; the account owner turns it on in the console). Free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_usageCalls per day for the last N days (UTC days, all keys combined, MCP handshakes excluded).1 finding

    Why it is in this group

    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "everyinfra_usage" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "call": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Calls per day for the last N days (UTC days, all keys combined, MCP handshakes excluded). For spend use everyinfra_billing. Needs the account read permission "requests:read" on this key: keys not limited to product lines have the three read permissions by default; for a key limited to product lines, the account owner turns it on in the console (API Keys → permissions). Free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_webhook_setCreate or change the webhook endpoint (public HTTPS only) and its events: balance.low (needs balance_threshold_usd) and job.finished.No findings

    Why it is in this group

    • The name "everyinfra_webhook_set" says "set": a word for a change.
    Description, as the server wrote it
    Create or change the webhook endpoint (public HTTPS only) and its events: balance.low (needs balance_threshold_usd) and job.finished. The signing secret is returned only when the webhook is first created. Needs the settings:write account scope, which is off by default and can only be granted by the account owner in the console.

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
    • destructiveHint: false
Only reads 4Claude Code: allow
  • everyinfra_get_jobRead a job submitted with everyinfra_call_api(mode=async).No findings

    Why it is in this group

    • The name "everyinfra_get_job" says "get": a word for reading.
    Description, as the server wrote it
    Read a job submitted with everyinfra_call_api(mode=async). Free; it does not count against the per-minute limit. While status is submitting / running / finalizing, check again later; succeeded: the rows are in results (paged actions also return next_page_token); failed: see error.reason and error.charged; submit_unknown: the submission is still being confirmed — do not resubmit, follow next_action. Only jobs submitted with the same API key are visible.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_get_ticketRead one support ticket: its status, what happens next, and its latest 100 messages, including support's replies.No findings

    Why it is in this group

    • The name "everyinfra_get_ticket" says "get": a word for reading.
    Description, as the server wrote it
    Read one support ticket: its status, what happens next, and its latest 100 messages, including support's replies. Use it after everyinfra_create_ticket to check progress, with the ticket_id that tool returned. The key that opened a ticket can always read it; reading the account's other tickets (opened in the console or with other keys) needs the account read permission "support:read" on this key. Any other number returns ticket_not_found. Free; the same result as GET /api/v1/support/tickets/{ticket_id}.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_list_capabilitiesList EveryInfra's data platforms and capabilities (90 platforms / 414 capabilities: search, detail, comments, profiles and more).No findings

    Why it is in this group

    • The name "everyinfra_list_capabilities" says "list": a word for reading.
    Description, as the server wrote it
    List EveryInfra's data platforms and capabilities (90 platforms / 414 capabilities: search, detail, comments, profiles and more). Use it before everyinfra_call_api to get the platform/action, required and optional params, the per-call row limit (max_limit, or page_size for page-based actions) and the price. Pass a platform to also get allowed values, returned fields and what they mean. Free. Data collection only — for AI chat use everyinfra_chat.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false
  • everyinfra_list_captcha_typesList the 52 CAPTCHA and bot-challenge types EveryInfra solves.No findings

    Why it is in this group

    • The name "everyinfra_list_captcha_types" says "list": a word for reading.
    Description, as the server wrote it
    List the 52 CAPTCHA and bot-challenge types EveryInfra solves. **Call it before everyinfra_solve_captcha** to get three things: the type name, the required/optional params, and **the shape of the solution** (token / cookie / text / number / fields / points / boxes / tokens / indices — a string to submit, coordinates to click yourself, or grid cells to click: each is used differently). Free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http everyinfra https://api.everyinfra.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__everyinfra__everyinfra_list_capabilities",
      "mcp__everyinfra__everyinfra_get_job",
      "mcp__everyinfra__everyinfra_list_captcha_types",
      "mcp__everyinfra__everyinfra_get_ticket"
    ],
    "ask": [
      "mcp__everyinfra__everyinfra_account",
      "mcp__everyinfra__everyinfra_usage",
      "mcp__everyinfra__everyinfra_requests",
      "mcp__everyinfra__everyinfra_billing",
      "mcp__everyinfra__everyinfra_keys",
      "mcp__everyinfra__everyinfra_tickets",
      "mcp__everyinfra__everyinfra_topup_link",
      "mcp__everyinfra__everyinfra_create_ticket",
      "mcp__everyinfra__everyinfra_key_create",
      "mcp__everyinfra__everyinfra_key_update",
      "mcp__everyinfra__everyinfra_key_disable",
      "mcp__everyinfra__everyinfra_settings_update",
      "mcp__everyinfra__everyinfra_webhook_set",
      "mcp__everyinfra__everyinfra_webhook_test",
      "mcp__everyinfra__everyinfra_ticket_create",
      "mcp__everyinfra__everyinfra_ticket_reply"
    ],
    "deny": [
      "mcp__everyinfra__everyinfra_call_api",
      "mcp__everyinfra__everyinfra_chat",
      "mcp__everyinfra__everyinfra_solve_captcha",
      "mcp__everyinfra__everyinfra_search",
      "mcp__everyinfra__everyinfra_key_delete"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as everyinfra. Review it before you use it.