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.

Voidly Hosted MCP

REMOTE · API.VOIDLY.AI

Voidly MCP: research, Atlas score, capabilities; gated Voidpay, Voidmail, Home, board and bounty.

Available components

– Trust /100
Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

No category breakdown is available for this channel yet.

Install

How do I install the Voidly Hosted MCP server?

Voidly Hosted MCP is a hosted endpoint at https://api.voidly.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.voidly.ai

# add to Claude Code
claude mcp add --transport http voidly-ai-voidly-hosted 'https://api.voidly.ai/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "voidly-ai-voidly-hosted": {
      "url": "https://api.voidly.ai/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "voidly-ai-voidly-hosted": {
      "type": "http",
      "url": "https://api.voidly.ai/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.voidly-ai-voidly-hosted]
url = "https://api.voidly.ai/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "voidly-ai-voidly-hosted": {
      "type": "remote",
      "url": "https://api.voidly.ai/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add voidly-ai-voidly-hosted --url 'https://api.voidly.ai/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  voidly-ai-voidly-hosted:
    url: "https://api.voidly.ai/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "voidly-ai-voidly-hosted": {
      "Transport": "http",
      "Url": "https://api.voidly.ai/mcp"
    }
  }
}
# add to Vellum
assistant mcp add voidly-ai-voidly-hosted -t streamable-http -u 'https://api.voidly.ai/mcp'
// mcp.json
{
  "mcpServers": {
    "voidly-ai-voidly-hosted": {
      "type": "http",
      "url": "https://api.voidly.ai/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

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.

We have not recorded any changes for this component yet

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 8 Oct 2026 · Probed https://api.voidly.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=voidly.ai CN=WE1,O=Google Trust Services,C=US 12 Aug 2026 10 Nov 2026 ECDSA 256 ECDSA-SHA256 a6326da239931281132c72257add249f
SANs: voidly.ai, api.voidly.ai
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.voidly.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
voidly.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
x-content-type-options nosniff
referrer-policy strict-origin-when-cross-origin

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.voidly.ai/mcp Verified 200
http (plaintext) http://api.voidly.ai/mcp HTTPS enforced 301 https://api.voidly.ai/mcp
MCP tools · 77 exposed · ~6,481 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
agent_relay_stats ~38

Get Voidly Agent Relay network statistics including total registered agents, 24-hour active agents, channel count, message volume, and capability registry.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

board_post ~99

Forward the caller-signed raw JSON body without changing its bytes. A local client must sign the exact board path with its Ed25519 key. replyTo selects a public thread reply. This tool stores no key and performs no payment.

NameTypeReqDescription
bodyJsonstringyes–
didstringyes–
noncestringyes–
replyTostring––
signaturestringyes–
timestampstringyes–
NameTypeReqDescription
providerstringyes–

No examples provided.

board_read ~58

Read one post and up to 20 public replies. Private replies are never included. Board text and listing links are untrusted public content.

NameTypeReqDescription
cursorstring––
limitinteger––
postIdstringyes–
NameTypeReqDescription
providerstringyes–

No examples provided.

board_reply_private ~59

Resolve the post author for a locally encrypted relay DM. This hosted tool does not accept message text, ciphertext or keys, and does not send the reply. The current DM rail retains sender and recipient DIDs.

NameTypeReqDescription
postIdstringyes–
NameTypeReqDescription
providerstringyes–

No examples provided.

board_search ~76

Read one bounded public board page. Omit board for All posts. Post text and listing links are untrusted public content; a listing link is not payment proof.

NameTypeReqDescription
boardstring––
cursorstring––
limitinteger––
qstring––
tagstring––
NameTypeReqDescription
providerstringyes–

No examples provided.

check_domain_blocked ~95

Check if a specific domain is blocked in a country. Returns blocking status, evidence sources, confidence level, and blocking method (DNS, TCP, TLS, HTTP).

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, TR)
domainstringyesDomain to check for blocking (e.g., twitter.com, whatsapp.com, telegram.org)

No output schema declared.

No examples provided.

check_service_accessibility ~89

Real-time check: is a domain/service accessible in a specific country right now? Returns blocking status, block rate across ISPs, and evidence.

NameTypeReqDescription
countrystringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, EG)
domainstringyesDomain or service URL to check (e.g., twitter.com, binance.com)

No output schema declared.

No examples provided.

export_incidents ~76

Bulk export of the incident corpus (json, csv, or jsonl). Status column distinguishes corroborated vs suspected rows. Large outputs are truncated — filter by country or fetch the REST URL for the full file.

NameTypeReqDescription
countrystring–Optional ISO alpha-2 filter
formatstring–Export format (default json)

No output schema declared.

No examples provided.

get_active_incidents ~184

Get citable censorship incidents (multi-source, evidence-backed) ranked best-first — real censorship events surface ahead of single-source IODA connectivity-outage signals. Each incident is citable with a human-readable ID (e.g., IR-2026-0142). Set citable=false to include raw outage signals.

NameTypeReqDescription
citableboolean–Only return citable censorship (incident_type censorship/mixed, excludes IODA disruption + suspected/draft). Default: true.
countrystring–Filter by ISO country code (e.g., IR, CN). Omit for all countries.
limitnumber–Maximum number of incidents to return (default: 20, max: 200)
min_sourcesnumber–Only incidents corroborated by at least N independent sources (OONI / CensoredPlanet / IODA / probes).

No output schema declared.

No examples provided.

get_ai_service_availability ~45

Which AI services (ChatGPT, Claude, Gemini, HuggingFace, …) are reachable per country — state blocking vs vendor geo-restriction, labeled separately.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_anomaly_dbscan ~82

Unsupervised DBSCAN second-opinion anomaly score for a country (CenDTect-style; AUC 0.65 — weaker than the supervised classifier, surfaces shape-anomalous days labels never saw).

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, MM)

No output schema declared.

No examples provided.

get_atlas_score ~54

Atlas Score v2 A–F censorship grade(s). Pass country_code for one country; omit for all graded countries.

NameTypeReqDescription
country_codestring–Optional ISO alpha-2 code; omit for the full table

No output schema declared.

No examples provided.

get_categories ~128

Citizen Lab content-category legend: maps every category code used across the censorship data (NEWS, POLR, HUMR, ANON, GMB, LGBT, REL, ...) to its human name plus how many domains carry it in the corpus, how many are confirmed blocked nationally somewhere, and how many countries block that category. The reference for interpreting any category code returned by get_category_leaders, get_censorship_intent, or the national blocklist. HONEST: national counts are over the >=3-network confirmed layer (a floor); China under-counted (GFW=anomaly).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_category_coverage ~77

How much of Voidly's measured-domain corpus carries a Citizen Lab content category (~69% via the 14k-domain Citizen Lab list) — the observatory disclosing its own categorization blind spot. Returns tagged/untagged counts + per-category domain counts. Use to gauge how complete any 'by category' analysis is.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_category_leaders ~123

Which countries most censor a given Citizen Lab content category — ranked by distinct domains nationally blocked (confirmed across >=3 networks), with example domains. E.g. category=LGBT -> Russia/Iran/Indonesia; also NEWS, HUMR, ANON, POLR, GMB, PORN. HONEST: anomaly-based censors (China GFW) under-counted; counts are a floor.

NameTypeReqDescription
categorystringyesCitizen Lab category code, e.g. NEWS, ANON, HUMR, LGBT, GMB, PORN, POLR

No output schema declared.

No examples provided.

get_censorship_by_category ~118

How each CONTENT CATEGORY is blocked — the blocking-technique composition per content type (news, communication tools, anonymity/VPN, search, adult, etc.). Reveals content-targeted blocking: e.g. several censors reserve TCP-reset / connection-level interference for messaging while DNS-poisoning news. Omit country_code for a global view; add it to see one country.

NameTypeReqDescription
country_codestring–Optional ISO 3166-1 alpha-2 code (e.g., IR). Omit for all countries.

No output schema declared.

No examples provided.

get_censorship_by_region ~116

Censorship aggregated by world region (continent by default, or UN sub-region with level=subregion): countries measured, block fraction, and confirmed national blocks per region. HONEST: confirmed-block counts are a measurement-density map, not a censorship ranking (e.g. Africa shows 0 confirmed blocks despite a high block fraction, because the >=3-network confirmation gate needs dense coverage). Use block_fraction + countries_measured for context.

NameTypeReqDescription
levelstring–'continent' (default) or 'subregion'

No output schema declared.

No examples provided.

get_censorship_index ~57

Get the global censorship index with rankings for monitored countries. Returns country scores, risk tiers, and measurement counts aggregated from OONI, IODA and CensoredPlanet over the recent measurement window. Read current coverage from the response.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_censorship_intent ~158

What each censor TARGETS: per-country category mix of nationally-blocked domains (confirmed across >=3 networks), rolled into three focus shares — political_speech (NEWS/POLR/HUMR), regulated_morality (GMB/PORN/ALDR), circumvention_tooling (ANON/VOIP) — plus the full category breakdown + primary_focus. Reveals WHY a country censors (Iran/Russia=speech, Indonesia/Thailand=morality). HONEST: China under-counted (GFW=anomaly not confirmed); shares are over tagged domains only. Pass country=XX for one country.

NameTypeReqDescription
countrystring–Optional ISO country code, e.g. IR, RU, SA

No output schema declared.

No examples provided.

get_censorship_summary ~109

One-call snapshot of the state of global censorship Voidly measures — countries measured, countries with confirmed national blocks, the deepest censor (Iran, ~789 domains), the broadest-blocked category, measurement depth + data coverage, and freshness, plus links to the per-metric endpoints. The ideal first call: 'give me the state of global censorship'. HONEST: most_blocked_category is broad legal gambling-blocking NOT political; China under-counted (GFW=anomaly).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_censorship_technique_trend ~154

How the censorship METHOD mix shifts over TIME — monthly percentage composition of blocking techniques (DNS manipulation, TCP-reset injection, Tor blocking, connection interference, DPI/middlebox). Companion to get_censorship_techniques (a snapshot); this is the trend. Shares are coverage-robust (not raw counts), so they are not skewed by growing measurement volume. Omit country_code for global; months defaults to 12.

NameTypeReqDescription
country_codestring–Optional ISO 3166-1 alpha-2 code (e.g., IR). Omit for all countries.
monthsnumber–Optional number of recent months to return (default 12, max 60).

No output schema declared.

No examples provided.

get_censorship_techniques ~106

How a country censors, not just what — breakdown of blocking techniques (DNS manipulation, TCP-reset injection, Tor blocking, connection interference, DPI/middlebox, header manipulation). E.g. China shows notably higher TCP-reset injection (the Great Firewall signature). Omit country_code for a global all-country view.

NameTypeReqDescription
country_codestring–Optional ISO 3166-1 alpha-2 code (e.g., CN). Omit for all countries.

No output schema declared.

No examples provided.

get_classifier_info ~25

Classifier transparency: version, training data, honest evaluation methodology and caveats.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_classifier_scope ~193

How accurate is Voidly's v3.3 censorship classifier? The honest answer under THREE evaluation regimes of increasing difficulty, in one call: stratified-random (in-distribution upper bound, AUC ~0.90 / F1 ~0.73), leave-country-out (cross-country generalization, F1 mean ~0.71 / median ~0.87 over 127 countries), and forward-temporal (train past / predict future, AUC ~0.67 / F1 ~0.47) — plus the generalization gap (delta AUC -0.23, 'DEGRADES forward') and which metric to cite for which use. Reads the live training sidecars. Use when asked 'how accurate is the model?' — never quote one number alone. HONEST: the retired v2 '0.998 F1' had country-tier leakage and is not a live claim.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_classifier_score ~79

Country-day censorship classifier score (GradientBoosting v3.3, LOCO mean F1 0.711 across countries; the LOCO median 0.870 is inflated by small-sample countries).

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, MM)

No output schema declared.

No examples provided.

get_co_blocking ~124

Country PAIRS that nationally block the same domains ('censorship twins') — shared blocklist size + Jaccard + the meaningful signal shared_political (NEWS/HUMR/POLR) and shared_tooling (ANON/VPN), which strips coincidental gambling/adult overlap. Iran-Russia share 135 domains incl. 23 of the same human-rights orgs + 25 of the same VPN tools (4.6x the next pair on political). HONEST: overlap is correlation, NOT proof of coordination; China under-counted.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_country_compare ~226

Head-to-head censorship comparison of two countries: each one's nationally-blocked domain count + Citizen Lab category profile, the SHARED blocklist (domains both confirm-block nationally, incl. shared political news/human-rights and shared circumvention tooling), and a per-category side-by-side showing who blocks more in each category. Built on the confirmed-national layer (>=3 independent networks) — counts agree with get_national_blocklist + get_co_blocking (e.g. IR vs RU: IR 789 blocked, 135 shared, RU blocks more NEWS while IR blocks more human-rights/VPN). Use for 'how does country X's censorship differ from Y's?'. HONEST: counts are a floor over the confirmed layer, not a census; deliberately no 'uniquely blocked' lists (absence in one country's layer is unconfirmed, not accessible); China under-counted (GFW=anomaly).

NameTypeReqDescription
astringyesFirst ISO country code, e.g. IR
bstringyesSecond ISO country code, e.g. RU

No output schema declared.

No examples provided.

get_country_profile ~94

Consolidated measured-censorship profile for a country in ONE call: data freshness (last measurement + band), 30-day measurement volume, censorship-technique mix (how they block), and the domains nationally blocked there (confirmed across >=3 networks). Best single call for a country overview.

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 code (e.g., IR, CN, RU)

No output schema declared.

No examples provided.

get_country_status ~65

Get detailed censorship status for a specific country including blocked domains, anomaly rates, risk tier, and recent incidents.

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR for Iran, CN for China, RU for Russia)

No output schema declared.

No examples provided.

get_data_confidence ~76

Per-country data-trustworthiness scores (0-100 + band high/medium/low) — how much to trust Voidly's censorship measurements for each country, derived from freshness, volume, stability, and source diversity. The observatory auditing its own data quality; use it to weight conclusions about sparsely-measured countries.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_data_freshness ~37

Per-source data freshness receipts (OONI, IODA, CensoredPlanet, probes) — when each pipeline last delivered.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_domain_timeline ~198

Full-corpus block TIMELINE for one domain: when it was FIRST observed blocked in each country and how the blocking METHOD evolved over time, sorted earliest-first (censorship-spread order). The long-horizon companion to check_domain_blocked / get_domain_history (which show current/recent status). Use for 'when did country X start blocking Y?' and 'how did they block it (DNS vs TCP-reset vs blockpage)?'. Pass domain=twitter.com (optional country=IR to focus one country). HONEST: the evidence corpus begins 2026-02, so blocks predating it are not captured (first dates can cluster at corpus-start); a country absent from the list is accessible OR unmeasured.

NameTypeReqDescription
countrystring–Optional ISO country code to focus on, e.g. IR, RU
domainstringyesDomain to trace, e.g. twitter.com, whatsapp.com

No output schema declared.

No examples provided.

get_election_risk ~64

Election-aware country briefing that joins scheduled dates, current-regime scores and historical context. Verify each calendar date against its source.

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, MM)

No output schema declared.

No examples provided.

get_global_heatmap ~46

Single-call experimental country risk ranking. Scores do not establish shutdown-onset timing.

NameTypeReqDescription
min_risknumber–Minimum risk filter 0-1 (default 0)

No output schema declared.

No examples provided.

get_high_risk_countries ~48

Countries whose experimental current-regime score exceeds a threshold (default 0.5).

NameTypeReqDescription
thresholdnumber–Risk threshold 0-1 (default 0.5)

No output schema declared.

No examples provided.

get_incident_detail ~60

Get detailed information about a specific censorship incident including evidence links, affected domains, blocking methods, and timeline.

NameTypeReqDescription
incident_idstringyesIncident ID — either human-readable (e.g., IR-2026-0142) or hash ID

No output schema declared.

No examples provided.

get_incident_evidence ~41

Evidence permalinks backing one incident — the raw measurements a journalist can verify.

NameTypeReqDescription
incident_idstringyesReadable or hash incident ID

No output schema declared.

No examples provided.

get_incident_report ~73

Citable report for one incident. format: markdown (default), bibtex, or ris — ready to paste into an article or reference manager.

NameTypeReqDescription
formatstring–Output format (default markdown)
incident_idstringyesReadable (IR-2026-0142) or hash ID

No output schema declared.

No examples provided.

get_incident_stats ~39

Aggregate incident statistics. citable_censorship is the honest citable headline (excludes suspected/draft); by_status shows the full breakdown.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_incidents_since ~189

Incidents created or updated after an ISO timestamp (delta sync), oldest first. PAGINATED: the response carries has_more and next_cursor. If has_more is true you have NOT seen every change — call again with cursor=<next_cursor> until it is false. Paging is at-least-once, so de-duplicate on hashId. Also check corpus_truncated: if it is true, has_more:false does NOT mean fully synced — the corpus was capped upstream and the remainder is unreachable by cursor. Say so rather than reporting a complete sync.

NameTypeReqDescription
cursorstring–next_cursor from the previous response, passed back verbatim
limitinteger–Rows per page (default 100, max 1000)
sincestringyesISO 8601 timestamp, e.g. 2026-06-01T00:00:00Z

No output schema declared.

No examples provided.

get_isp_categories ~222

Per-ISP selective targeting: which CONTENT CATEGORIES a network (ASN) blocks vs leaves alone, separating targeted political censorship from blanket filtering. Pass country=XX&asn=NNNN for one network's per-category block rates + a blanket/selective/permissive/mixed label (e.g. KZ AS207446 blocks 94% of VPN/circumvention tools but 0% of news — a 'VPN-blocker'; RU AS47541 is the opposite, blocking news not VPNs); pass country=XX for the country's networks ranked. HONEST: block_rate is over MEASURED domains per category (a category absent is UNMEASURED, not 'allowed'); ASN coverage is dominated by CensoredPlanet DNS and is sparse for many networks, so most read 'blanket'.

NameTypeReqDescription
asnstring–Optional ASN (e.g. 207446 or AS207446) for one network's per-category profile
countrystringyesISO country code, e.g. KZ, RU, VE

No output schema declared.

No examples provided.

get_isp_risk_index ~61

ISPs in a country ranked by composite censorship score (aggressiveness, category breadth, blocking methods).

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, MM)

No output schema declared.

No examples provided.

get_measurement_freshness ~64

How recently Voidly measured each country — last-measurement timestamp + band (live/recent/aging/stale) across ALL monitored countries. Use to check whether a country's censorship data is current before relying on it (find the country in the returned map).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_most_blocked_domains ~116

Global leaderboard of the most-blocked domains, ranked by how many countries nationally block them. HONEST: the top is dominated by legal gambling/piracy/adult blocks, NOT political censorship — use category=ANON to isolate circumvention tools (ProtonVPN, Psiphon, Lantern), or category=NEWS for news sites.

NameTypeReqDescription
categorystring–Optional Citizen Lab category filter, e.g. ANON, NEWS, HUMR
limitnumber–Max rows (default 25)

No output schema declared.

No examples provided.

get_most_censored ~59

Get the most censored countries ranked by censorship severity score. Returns country name, score, risk tier, and top blocked categories.

NameTypeReqDescription
limitnumber–Number of countries to return (default: 10, max: 50)

No output schema declared.

No examples provided.

get_multi_horizon_forecast ~68

1/7/30-day censorship forecasts for a country with per-horizon SHAP top features and 90% conformal intervals.

NameTypeReqDescription
country_codestringyesISO 3166-1 alpha-2 country code (e.g., IR, CN, MM)

No output schema declared.

No examples provided.

get_national_blocklist ~164

The COMPLETE list of domains a country blocks nationally (confirmed across >=3 independent networks) — the core 'what does country X block?' product. Returns restriction_map (full domain list), partial_map (sub-national 1-2 network blocks), and confirmed_block_layer (data-recency window). Use this for a full report; for a single domain use check_domain_blocked, for a summary use get_country_profile. HONEST: includes legal gambling/piracy blocks (not only political); a domain NOT listed is accessible OR not measured (absence is not 'accessible'); China under-counted (GFW=anomaly).

NameTypeReqDescription
countrystringyesISO 3166-1 alpha-2 country code, e.g. IR, RU, TR

No output schema declared.

No examples provided.

get_network_depth ~126

Per-country measurement DEPTH: how many distinct ISP networks (ASNs) Voidly has evidence from — a proxy for how many independent vantage points back a country's data, which bounds what the >=3-network confirmed-block gate can confirm. RU 510 / IN 80 / IR 50 networks; ~42 countries carry ASN tags. HONEST: coverage depth, NOT a censorship score; an absent/shallow country is under-measured, not free. Pass country=XX for one country.

NameTypeReqDescription
countrystring–Optional ISO country code, e.g. RU, IR

No output schema declared.

No examples provided.

get_platform_risk ~64

Get censorship risk score for a specific platform across all monitored countries. Shows which countries block it and the overall global risk level.

NameTypeReqDescription
platformstringyesPlatform name (e.g., whatsapp, twitter, telegram, signal, facebook, youtube, tiktok, instagram)

No output schema declared.

No examples provided.

get_platform_scores ~28

All monitored platforms (WhatsApp, X, Telegram, …) ranked by global censorship risk.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Common questions

What is the Voidly Hosted MCP server?

Voidly Hosted MCP is listed in the public MCP registry as io.github.voidly-ai/voidly-hosted. Voidly MCP: research, Atlas score, capabilities; gated Voidpay, Voidmail, Home, board and bounty. This page covers its hosted endpoint (https://api.voidly.ai/mcp).

What tools does the Voidly Hosted MCP server expose?

Voidly Hosted MCP exposes 77 tools: voidly_capabilities, get_censorship_index, get_country_status, check_domain_blocked, get_active_incidents, and 72 more. Their descriptions and schemas cost roughly 6,481 tokens of context every time the server is loaded.

Does the Voidly Hosted MCP server require authentication?

No. We connected to Voidly Hosted MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.