Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ai.foura/mcp

NPM · @FOURADATA/MCP · 2 COMPONENTS · SCANNED SEP 20

Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.

−1 this week 90 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to fouradata/mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2849 tokens (~712/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "foura_single" implies "send" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the ai.foura/mcp server?

ai.foura/mcp runs locally as an npm package, launched with npx -y @fouradata/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @fouradata/mcp

# add to Claude Code
claude mcp add ai-foura-mcp -- npx -y @fouradata/mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "ai-foura-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@fouradata/mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ai-foura-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@fouradata/mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add ai-foura-mcp -- npx -y @fouradata/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-foura-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@fouradata/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ai-foura-mcp --command npx --arg -y --arg @fouradata/mcp
# ~/.hermes/config.yaml
mcp_servers:
  ai-foura-mcp:
    command: "npx"
    args: ["-y", "@fouradata/mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ai-foura-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@fouradata/mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add ai-foura-mcp -t stdio -c npx -a -y @fouradata/mcp
// mcp.json
{
  "mcpServers": {
    "ai-foura-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@fouradata/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 19 Sept 26 0
    • Stability: 0.97 → pass security
  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +15
    • Stability: 0.90 → unverified security
    • Tool safety: pass → unverified security
    • Malware scan: unverified → pass security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 0.7.1 → 0.7.2 functional
  • 16 Sept 26 −15
    • Malware scan: pass → unverified security
    • Schema quality: 548 → 712 functional
    • Package version: 0.6.0 → 0.7.1 functional
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 12 Sept 26 0
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@fouradata/mcp@0.7.2

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo fouradata/mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/fouradata/mcp/.github/workflows/publish.yml@refs/tags/v0.7.2
Rekor log index 2877376809
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:f68e73b611aa6fce509cc29a2afb10589fa1bcfc6f4b3cda76a9740f2440251b46a19a99cdd979193e420af8c34425061441ddd9b193da6c948d7ab7f

Background: How many MCP packages publish verified provenance →

Dependencies 96 packages
Packages resolved 96
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 4 exposed · ~2,849 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
foura_auto ~653

Give it a public URL and get the content back. Use it when only the content matters and not how it is fetched: it escalates from a direct request to a rotating proxy to a full browser only as far as the target forces, and returns the session that worked so the next call can replay it. On protected targets, or whenever HTTP 200 may still be a challenge or an incomplete page, pass validate.data.accept with text unique to the real content; auto makes bounded attempts and returns either validated content or a failure, and cannot guarantee a match. It owns its own retry settings, so there is no maxTries here, and timeout_ms is the budget for every attempt together rather than for one. What it cannot do is the reason to reach for another tool: a strict exit country, a pinned exit and a premium exit live on foura_proxy (auto can only avoid exits, through ignoreProxies); choosing which browser is presented to the target lives on foura_single and foura_proxy; a scripted browser session lives on foura_browser. A request that names any of those belongs there rather than here. One FourA API key authenticates every call, the result reports the credits it spent, which is the sum of the attempts it made, and a refusal by your own plan arrives as a plan_limit_ code with retryAfter rather than as a block by the target.

NameTypeReqDescription
dataRequest body for non-GET methods. Strings sent as-is; objects auto-serialized to JSON.
followRedirectsintegerFollow up to N redirects for HTTP and proxy requests. Default 5; 0 means don't follow. Browser navigation handles redirects itself.
forceProxybooleanRequire proxy routing for every target request. Default true. Send false to allow direct HTTP when suitable.
headersarrayCustom HTTP headers as [name, value] tuples. Example: [["Accept", "application/json"], ["Authorization", "Bearer ..."]]
ignoreProxiesarrayExits to avoid - base36 proxy IDs (like "4DZ3VE") or proxy URLs. Use this to rotate away from an exit that was just blocked.
methodstringHTTP method for the target request (default GET).
offload_largebooleanIf true, response bodies of 50 KB or more are returned as a resource_link instead of inlined. Default false. Read the returned offloaded_resource_uri with resources/read.
returnSessionbooleanReturn reusable {proxy, cookies, userAgent} values for follow-up calls. Default true. Send false for a leaner response when you only need the content.
timeout_msintegerTotal time budget in ms for the whole operation. Every attempt must fit inside it. Default 120000, max 180000.
urlstringyesPublic target URL. Private or reserved targets return `ssrf_blocked`. Use {ts} in the URL to insert the current Unix timestamp. Example: https://example.com/page.
validateobjectPost-fetch response validation. When the response fails these checks foura_auto returns an error envelope.
NameTypeReqDescription
attemptsnumberTotal attempts when the request failed (also present inside `meta`).
codestringStable error code for retry classification. auth_failed means the FourA API key was rejected; verify that key, not target-site credentials. Other codes: ssrf_blocked, upstream_non_json, output_valida…
creditsnumberCredits this call spent. Reported on failures too: the work was done either way.
currentobjectCaller's current usage at error time
dataDecoded response body of the delivered page. String by default; object when the body parsed as JSON. Omitted when offloaded.
errorstringHuman-readable error message when the request could not deliver content within the budget.
headersResponse headers from the successful request, as an array of objects. Each entry has `result.{version, code, reason}` plus header-name keys. The last entry is the final response.
limitsobjectPer-service limits at error time
metaobjectCompletion details: rung, solved, attempts, and credits. Always present.
offloaded_resource_uristringfoura-mcp://payload/<uuid>. Pass this URI to resources/read to retrieve the offloaded body.
request_idstringFourA's id for this call, for a support request.
retryAfternumberSeconds to wait before retrying a 429 or 503 response
servicestring
sessionobjectReusable {proxy, cookies, userAgent} values for follow-up calls. For plain HTTP, call foura_single with session.proxy as proxy, session.userAgent as a User-Agent header, and session.cookies serialize…
size_bytesintegerTotal offloaded body size in bytes
statusintegerHTTP status code from the request that delivered the content. `0` means no HTTP response was received; check `error`.

No examples provided.

foura_browser ~593

Load a public URL in a full browser session. JavaScript runs, the DOM renders, and cookies come back with the response. Use it for single-page apps, lazy-loaded content, or supported browser challenges. You can set your own headers, cookies and userAgent, and checkStatus or checkText turn a navigation that rendered the wrong page into a failure instead of returning it as content. For a protected page, call foura_proxy first and pass its returned proxy ID here to reuse that same exit, instead of starting a new selection here; with no proxy the session leaves from one fixed address. Set unblocker:false when you want the page exactly as it loads, challenge included. It is the most expensive of the four tools and the slowest, so prefer foura_single or foura_proxy whenever the content is already in the HTML. One FourA API key authenticates every call, the result reports the credits it spent, and a refusal by your own plan arrives as a plan_limit_ code, including plan_limit_browser_daily when the daily browser allowance is spent.

NameTypeReqDescription
checkStatusintegerExpected HTTP status code. A different status returns an error envelope carrying the actual value. Example: 200 for a product page.
checkTextstringValidate the rendered HTML once navigation completes. This is a substring check, not a waiter, and it doesn't poll. A missing substring returns an error envelope. Example: "add to cart" for a product…
cookiesarrayCookies to set before navigation: [{ name, value, domain? }]
headersobjectCustom HTTP headers as a key-value object rather than [name, value] tuples. Example: {"Referer": "https://google.com/"}
offload_largebooleanIf true, response bodies of 50 KB or more are returned as a resource_link instead of inlined. Default false. Read the returned offloaded_resource_uri with resources/read.
proxystringOptional proxy. Three forms: (1) URL `http://user:pass@host:port` or `socks5://host:port`; (2) base36 ID from foura_proxy (e.g. `4DZ3VE`) to reuse the same exit; (3) omit to use the default route.
timeout_msintegerPage load timeout in ms (default 30000, max 120000)
unblockerbooleanHandle supported anti-bot or captcha challenges during navigation. Default true. Set false to return the page exactly as it loads, including any challenge page.
urlstringyesPublic URL to load in a full browser session. Private or reserved targets return `ssrf_blocked`. Example: https://shop.example.com/product/123.
userAgentstringOverride the browser's User-Agent string
NameTypeReqDescription
bodyFully-rendered page content. String HTML when content-type is HTML; object when the page returned JSON and it was auto-parsed. Field is named `body`, not `data`. Omitted when offloaded.
codestringStable error code for retry classification. auth_failed means the FourA API key was rejected; verify that key, not target-site credentials. Other codes: ssrf_blocked, upstream_non_json, output_valida…
cookiesarrayFull cookie objects collected after navigation, including name, value, domain, path, expiry, and same-site settings.
creditsnumberCredits this call spent. Reported on failures too: the work was done either way.
currentobject
errorstringHuman-readable error message
exitClassstring`premium` when a premium exit served this call, which happens when `proxy` replays one from foura_proxy.
headersobjectResponse headers as a flat key-value object. Values are typically strings but may be arrays for repeated headers.
limitsobject
offloaded_resource_uristringfoura-mcp://payload/<uuid>. Pass this URI to resources/read to retrieve the offloaded body.
request_idstringFourA's id for this call, for a support request.
retryAfternumber
servicestring
size_bytesintegerTotal offloaded body size in bytes
statusintegerHTTP status code from the target page. `0` indicates the navigation failed before any HTTP response (DNS / connection refused / timeout) - check the `error` field for the underlying reason.
userAgentstringThe User-Agent the browser session presented

No examples provided.

foura_proxy ~615

Route an HTTP request through rotating proxies, retrying on another exit until one delivers. Use it when foura_single is blocked, and whenever the exit itself matters: this is the only tool that takes a strict exit-country allowlist (exitCountries, which never falls back to another country), presents a named browser family per attempt, excludes exits you already know are dead (ignoreProxies), and may escalate to a premium exit (exitClass, an allowance rather than an instruction). maxTries bounds how many exits are tried and timeout_ms bounds the whole rotation, so a short timeout can end it before maxTries is reached; protected targets often need 25 to 30. validate decides what counts as delivered, and an attempt it rejects is retried on the next exit. The response returns the id of the exit that succeeded: pass that returned id to foura_single.proxy or foura_browser.proxy to send the next request from the same exit. A failed rotation returns attemptReport, which separates exits that never answered from exits a bot check refused from pages your own rule threw away. Use foura_browser when the page needs JavaScript. Rotation costs several times a single request. One FourA API key authenticates every call, the result reports the credits it spent, and a refusal by your own plan arrives as a plan_limit_ code with retryAfter rather than as a block by the target.

NameTypeReqDescription
exitClassstringAllow escalation to a premium exit for a target the standard pool cannot deliver. An allowance, not an instruction: the pool still races and usually wins, and the response reports which class served.…
exitCountriesarrayOptional target-visible proxy countries as two-letter provider codes, for example ["CZ", "GB"]. Use codes supplied by the user or target requirements. When geography matters, do not guess codes or su…
ignoreProxiesarrayEncoded proxy IDs (base36 strings like "4DZ3VE") or proxy URLs to exclude from rotation.
maxTriesintegerMaximum rotation attempts before giving up (default 5, max 90). Difficult protected targets may need 25-30. Use exitCountries for country scope.
offload_largebooleanIf true, response bodies of 50 KB or more are returned as a resource_link instead of inlined. Default false. Read the returned offloaded_resource_uri with resources/read.
requestobjectyesThe inner HTTP request to send through each proxy attempt. Validation rules here determine when a proxy is treated as failed and retried.
timeout_msintegerOverall timeout across all rotation attempts in ms (default 45000, max 120000). Must be positive.
NameTypeReqDescription
attemptReportobjectWhy a failed rotation ran out of tries. Read `summary` first. Counts over `total` attempts: noResponse (the exit never answered), defense (a bot check was recognised, named in `vendors`), contentReje…
codestringStable error code for retry classification. auth_failed means the FourA API key was rejected; verify that key, not target-site credentials. no_eligible_proxy means the strict exitCountries scope had…
creditsnumberCredits this call spent. Reported on failures too: the work was done either way.
currentobject
dataDecoded response body. Omitted when offloaded.
defenseobjectPresent when the target ran a bot check. When solved is false the body may be a challenge page: retry with a different browser, os, or version, or move to foura_browser.
detailsobjectStructured no_eligible_proxy context containing the normalized requested country scope. Preserve this scope and retry later. Do not propose or perform an unscoped fallback; change it only after the u…
errorstringHuman-readable error message
exitClassstringWhich class delivered, when the request named exitClass. `standard` means the standard pool answered first, which is also the answer once the premium allowance is spent. Neither is an error.
exitCountrystringLatest available two-letter target-visible exit-country code used for selection. Present on successful requests that use exitCountries.
headersResponse headers per redirect hop, as an array of objects. Each entry has `result.{version, code, reason}` plus arbitrary header-name keys whose values are strings (or arrays of strings for multi-val…
limitsobject
offloaded_resource_uristringfoura-mcp://payload/<uuid>. Pass this URI to resources/read to retrieve the offloaded body.
profilestringThe browser family rotation moved to after the target refused the one this request sent. Absent means it went out as written; when present, replay with it or repeat the version that failed.
proxystringBase36 ID of the exit that succeeded (e.g. `4DZ3VE`). Pass it to foura_single.proxy or foura_browser.proxy to reuse that exit, or to foura_proxy.ignoreProxies to skip it on future rotations.
requestEchoed PrRequest from upstream PrResponseError
request_idstringFourA's id for this call, for a support request.
retryAfternumber
servicestring
size_bytesintegerTotal offloaded body size in bytes
statusintegerHTTP status code from the target (from the succeeding proxy attempt). `0` indicates every attempt failed before any HTTP response (DNS / connection refused / timeout) - check the `error` field for th…
totalnumberOuter total time in seconds (proxy selection + retries + the successful inner attempt). Float.
total_timenumber|string|nullPer-attempt wall-clock duration of the succeeding inner request

No examples provided.

foura_single ~988

Send one HTTP request and return the response. Use it for static pages, JSON APIs, and server-rendered HTML, with your own headers, body and cookies. Set browser, os, or version when a target refuses the default Chrome. Pass a proxy id returned by foura_proxy to leave from that same exit. validate decides what counts as success, so a response it rejects comes back as a failure instead of as content; the timeouts nest, with timeout_ms bounding the whole request and the connect, accept and server_response ones bounding stages inside it. Switch to foura_proxy when the response is blocked or the exit country matters, and to foura_browser when the page needs JavaScript. One FourA API key authenticates every call, the result reports the credits it spent, and a refusal by your own plan arrives as a plan_limit_ code with retryAfter rather than as a block by the target.

NameTypeReqDescription
accept_timeout_msintegerTimeout in ms to receive the first response byte after the request is sent (0-120000). Omit for the default.
browserstringBrowser to present: Chrome, Edge, Safari, Firefox, or Tor. Omit every profile field and the request presents the latest Google Chrome.
connect_timeout_msintegerTimeout in ms for establishing the TCP/TLS connection (0-120000). Omit to use the default.
dataRequest body. Strings sent as-is; objects auto-serialized to JSON. Example: {"query": "hello"} for POST APIs.
dns_cache_timeout_secintegerHow long (seconds) to cache the target's resolved DNS (0-240). Omit for the default.
followRedirectsintegerMax number of redirects to follow (0-20). Omit to disable redirect following.
headersarrayCustom HTTP headers as [name, value] tuples. Example: [["Accept", "application/json"], ["Referer", "https://google.com/"]]
methodstringyesHTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, or any WebDAV verb like PROPFIND/MKCOL)
offload_largebooleanIf true, response bodies of 50 KB or more are returned as a resource_link instead of inlined. Default false. Read the returned offloaded_resource_uri with resources/read.
osstringOperating system to present: Windows, macOS, Android, or iOS. A family name accepts any of its versions.
profilestringExact profile id from the public catalogue at https://api.foura.ai/api/profiles. Use browser/os/version when you do not have an id.
proxystringOptional proxy. Two forms: (1) URL `http://host:port` or `socks5://host:port`; (2) base36 ID from foura_proxy (e.g. `4DZ3VE`) to reuse the same exit. For rotation, use foura_proxy.
returnBufferbooleanReturn raw bytes as a serialized Buffer JSON shape (`{type:"Buffer", data:[byte, ...]}`, bytes 0-255) instead of decoded string. Use for binary responses (images, protobuf). Reconstruct: `Buffer.from…
server_response_timeout_msintegerTimeout in ms for the server to send the complete response (0-120000). Omit for the default.
timeout_msintegerOverall request timeout in ms (max 120000, default 15000)
tryJsonDatabooleanIf true, attempt JSON.parse on the response body. On success, `data` is the parsed value (typically object or array). On parse failure, `data` silently stays as the original string - no error, no war…
unblockerbooleanSend a full browser header set, including User-Agent and Sec-Ch-Ua. Default true. Set false for a plain HTTP request; profile selection needs it on and errors when it is off.
urlstringyesPublic target URL. Private or reserved targets return `ssrf_blocked`. Use {ts} in the URL to insert the current Unix timestamp. Example: https://api.example.com/v1/users.
validateobjectPost-fetch response validation. When the response fails these checks the tool returns an error envelope.
versionstringBrowser version to present, as listed in the catalogue. The newest match wins when several fit. An impossible combination returns an error listing what is available; no other browser is substituted.
NameTypeReqDescription
codestringStable error code for retry classification. auth_failed means the FourA API key was rejected; verify that key, not target-site credentials. Other codes: ssrf_blocked, upstream_non_json, output_valida…
creditsnumberCredits this call spent. Reported on failures too: the work was done either way.
currentobjectCaller's current usage at error time
dataDecoded response body. String by default; object when tryJsonData=true and the body parsed as JSON; serialized Buffer JSON shape (`{type:"Buffer", data:[byte, ...]}`, bytes 0-255) when returnBuffer=t…
defenseobjectPresent when the target ran a bot check. When solved is false the body may be a challenge page: retry with a different browser, os, or version, or move to foura_proxy or foura_browser.
errorstringHuman-readable error message
exitClassstring`premium` when a premium exit served this call, which happens when `proxy` replays one from foura_proxy.
headersResponse headers per redirect hop, as an array of objects. Each entry has `result.{version, code, reason}` plus arbitrary header-name keys whose values are strings (or arrays of strings for multi-val…
limitsobjectPer-service limits at error time
offloaded_resource_uristringfoura-mcp://payload/<uuid>. Pass this URI to resources/read to retrieve the offloaded body.
request_idstringFourA's id for this call, for a support request.
retryAfternumberSeconds to wait before retrying (429/503)
servicestring
size_bytesintegerTotal offloaded body size in bytes
statusintegerHTTP status code from the target. `0` indicates the request failed before any HTTP response (DNS failure, connection refused, timeout) - check the `error` field for the underlying reason.
total_timenumber|string|nullWall-clock request duration in seconds. Number when present; string in some variants; null when the request never started.

No examples provided.

Common questions

What is the ai.foura/mcp server?

ai.foura/mcp is listed in the public MCP registry as ai.foura/mcp. Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering. This page covers its npm package (@fouradata/mcp).

Is the ai.foura/mcp server safe to use?

ai.foura/mcp scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ai.foura/mcp server expose?

ai.foura/mcp exposes 4 tools: foura_single, foura_proxy, foura_browser, foura_auto. Their descriptions and schemas cost roughly 2,849 tokens of context every time the server is loaded.

Is the ai.foura/mcp server still maintained?

ai.foura/mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the ai.foura/mcp server under?

ai.foura/mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.