Football Atlas
REMOTE · FUTBOLATLAS.APP · SCANNED SEP 20
The Laws of the Game and world football's major competitions, every claim cited to primary sources
Available components
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 →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability90
- 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
- Tool/resource definitions use about 12402 tokens (~78/item across 158 items; 9 tools + 149 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 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 Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Football Atlas MCP server?
Football Atlas is a hosted endpoint at https://futbolatlas.app/mcp?via=manifest, 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 · futbolatlas.app
claude mcp add --transport http app-futbolatlas-futbol-atlas 'https://futbolatlas.app/mcp?via=manifest'
{
"mcpServers": {
"app-futbolatlas-futbol-atlas": {
"url": "https://futbolatlas.app/mcp?via=manifest"
}
}
} {
"servers": {
"app-futbolatlas-futbol-atlas": {
"type": "http",
"url": "https://futbolatlas.app/mcp?via=manifest"
}
}
} [mcp_servers.app-futbolatlas-futbol-atlas] url = "https://futbolatlas.app/mcp?via=manifest"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-futbolatlas-futbol-atlas": {
"type": "remote",
"url": "https://futbolatlas.app/mcp?via=manifest",
"enabled": true
}
}
} openclaw mcp add app-futbolatlas-futbol-atlas --url 'https://futbolatlas.app/mcp?via=manifest' --transport streamable-http
mcp_servers:
app-futbolatlas-futbol-atlas:
url: "https://futbolatlas.app/mcp?via=manifest" {
"McpServers": {
"app-futbolatlas-futbol-atlas": {
"Transport": "http",
"Url": "https://futbolatlas.app/mcp?via=manifest"
}
}
} assistant mcp add app-futbolatlas-futbol-atlas -t streamable-http -u 'https://futbolatlas.app/mcp?via=manifest'
{
"mcpServers": {
"app-futbolatlas-futbol-atlas": {
"type": "http",
"url": "https://futbolatlas.app/mcp?via=manifest"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Sept 26 0
- Server version: 0.9.1 → 0.9.2 functional
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Sept 26 +1
- Tool “get_related” rewrote its description, which is the text the model reads security
- Server version: 0.8.0 → 0.9.1 functional
- “get_related” added an optional parameter “cursor” cosmetic
- “get_related” added an optional parameter “limit” cosmetic
- 7 Sept 26 +1
- Tool “answer” rewrote its description, which is the text the model reads security
- Tool “get_sources” rewrote its description, which is the text the model reads security
- Tool “get_topic” rewrote its description, which is the text the model reads security
- Tool “search” rewrote its description, which is the text the model reads security
- Schema quality: 97 → 77 ▲ functional
- The server now declares the “completions” capability functional
- The server now declares the “resources” capability functional
- First check of Schema quality: 100 functional
- New resource “advantage” functional
- New resource “afcon-2025” functional
- New resource “ballon-dor-2025” functional
- New resource “bundesliga-2025-26” functional
- New resource “champions-league-1960-final” functional
- New resource “champions-league-1994-final” functional
- New resource “champions-league-1999-final” functional
- New resource “champions-league-2005-final” functional
- New resource “champions-league-2012-final” functional
- New resource “champions-league-2014-final” functional
- New resource “champions-league-2024-final” functional
- New resource “champions-league-2025-final” functional
- New resource “champions-league-2026-final” functional
- New resource “champions-league-titles-by-club” functional
- New resource “club-world-cup-2025” functional
- New resource “copa-america-2015” functional
- New resource “copa-america-2016” functional
- New resource “copa-america-2019” functional
- New resource “copa-america-2021” functional
- New resource “copa-america-2024” functional
- New resource “copa-america-titles-by-country” functional
- New resource “corpus-1” functional
- New resource “corpus-2” functional
- New resource “corpus-3” functional
- New resource “corpus-4” functional
- New resource “corpus-5” functional
- New resource “current-champions-faq” functional
- New resource “direct-free-kick” functional
- New resource “direct-vs-indirect-free-kick” functional
- New resource “dissent” functional
- New resource “dogso” functional
- New resource “euro-1960” functional
- New resource “euro-1964” functional
- New resource “euro-1968” functional
- New resource “euro-1972” functional
- New resource “euro-1976” functional
- New resource “euro-1980” functional
- New resource “euro-1984” functional
- New resource “euro-1988” functional
- New resource “euro-1992” functional
- New resource “euro-1996” functional
- New resource “euro-2000” functional
- New resource “euro-2004” functional
- New resource “euro-2008” functional
- New resource “euro-2012” functional
- New resource “euro-2016” functional
- New resource “euro-2020” functional
- New resource “euro-2024” functional
- New resource “euro-titles-by-country” functional
- New resource “europa-league-2026-final” functional
- New resource “europa-league-titles-by-club” functional
- New resource “handball” functional
- New resource “handball-misconceptions” functional
- New resource “how-a-penalty-shootout-works” functional
- New resource “how-handball-actually-works” functional
- New resource “how-offside-actually-works” functional
- New resource “how-the-48-team-world-cup-works” functional
- New resource “index” functional
- New resource “indirect-free-kick” functional
- New resource “intercontinental-cup-2025” functional
- New resource “laliga-2025-26” functional
- New resource “law-01-field-of-play” functional
- New resource “law-02-the-ball” functional
- New resource “law-03-players” functional
- New resource “law-04-players-equipment” functional
- New resource “law-05-referee” functional
- New resource “law-06-other-match-officials” functional
- New resource “law-07-duration-of-the-match” functional
- New resource “law-08-start-and-restart” functional
- New resource “law-09-ball-in-and-out-of-play” functional
- New resource “law-10-outcome-of-a-match” functional
- New resource “law-11-offside” functional
- New resource “law-12-fouls-and-misconduct” functional
- New resource “law-13-free-kicks” functional
- New resource “law-14-penalty-kick” functional
- New resource “law-15-throw-in” functional
- New resource “law-16-goal-kick” functional
- New resource “law-17-corner-kick” functional
- New resource “libertadores-2025-final” functional
- New resource “ligue-1-2025-26” functional
- New resource “offside” functional
- New resource “offside-misconceptions” functional
- New resource “panenka” functional
- New resource “premier-league-2025-26” functional
- New resource “serie-a-2025-26” functional
- New resource “serious-foul-play” functional
- New resource “serious-foul-play-vs-violent-conduct” functional
- New resource “simulation” functional
- New resource “sources-1” functional
- New resource “sources-2” functional
- New resource “substitution-rules-faq” functional
- New resource “the-best-fifa-awards-2025” functional
- New resource “uefa-historical-sources-faq” functional
- New resource “var” functional
- New resource “var-misconceptions” functional
- New resource “var-vs-goal-line-technology” functional
- New resource “violent-conduct” functional
- New resource “what-changed-in-2026-27” functional
- New resource “womens-euro-1984” functional
- New resource “womens-euro-1995” functional
- New resource “womens-euro-1997” functional
- New resource “womens-euro-2001” functional
- New resource “womens-euro-2005” functional
- New resource “womens-euro-2009” functional
- New resource “womens-euro-2013” functional
- New resource “womens-euro-2017” functional
- New resource “womens-euro-2022” functional
- New resource “womens-euro-2025” functional
- New resource “womens-euro-titles-by-country” functional
- New resource “womens-world-cup-1991” functional
- New resource “womens-world-cup-1995” functional
- New resource “womens-world-cup-1999” functional
- New resource “womens-world-cup-2003” functional
- New resource “womens-world-cup-2007” functional
- New resource “womens-world-cup-2011” functional
- New resource “womens-world-cup-2015” functional
- New resource “womens-world-cup-2019” functional
- New resource “womens-world-cup-2023” functional
- New resource “womens-world-cup-2027” functional
- New resource “womens-world-cup-titles-by-country” functional
- New resource “world-cup-1930” functional
- New resource “world-cup-1934” functional
- New resource “world-cup-1938” functional
- New resource “world-cup-1950” functional
- New resource “world-cup-1954” functional
- New resource “world-cup-1958” functional
- New resource “world-cup-1962” functional
- New resource “world-cup-1966” functional
- New resource “world-cup-1970” functional
- New resource “world-cup-1974” functional
- New resource “world-cup-1978” functional
- New resource “world-cup-1982” functional
- New resource “world-cup-1986” functional
- New resource “world-cup-1990” functional
- New resource “world-cup-1994” functional
- New resource “world-cup-1998” functional
- New resource “world-cup-2002” functional
- New resource “world-cup-2006” functional
- New resource “world-cup-2010” functional
- New resource “world-cup-2014” functional
- New resource “world-cup-2018” functional
- New resource “world-cup-2022” functional
- New resource “world-cup-2026” functional
- New resource “world-cup-2026-awards” functional
- New resource “world-cup-2026-faq” functional
- New resource “world-cup-2026-final” functional
- New resource “world-cup-all-time-top-scorers” functional
- New resource “world-cup-most-titles-by-player” functional
- New resource “world-cup-titles-by-country” functional
- Server version: 0.6.23 → 0.8.0 functional
- New tool “compare” functional
- “get_sources” added an optional parameter “accessed_since” cosmetic
- “get_sources” added an optional parameter “cursor” cosmetic
- “get_sources” added an optional parameter “host” cosmetic
- “get_sources” added an optional parameter “limit” cosmetic
- “get_sources” added an optional parameter “tier” cosmetic
- “get_topic” added an optional parameter “cursor” cosmetic
- “get_topic” added an optional parameter “limit” cosmetic
- “get_sources” reworded the description of “object_id” cosmetic
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 · Probed https://futbolatlas.app/mcp?via=manifest
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=futbolatlas.app | CN=YR1,O=Let's Encrypt,C=US | 17 Aug 2026 | 15 Nov 2026 | RSA 2048 | SHA256-RSA | 6ea27030870e6e5653d47a6380ccbe1848a |
| SANs: futbolatlas.app | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of futbolatlas.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| futbolatlas.app. | 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 |
|---|---|
| strict-transport-security | max-age=63072000 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://futbolatlas.app/mcp?via=manifest | Verified | 200 | |
| http (plaintext) | http://futbolatlas.app/mcp?via=manifest | HTTPS enforced | 308 | https://futbolatlas.app/mcp?via=manifest |
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 →
answer Answer a question about Football Atlas ~113
Answer a question from the corpus, or refuse. Returns only the claims that bear on the question, each with the sources it cites and its editorial confidence. When the corpus cannot answer, answered is false and abstention_reason plus missing_topics say what was not covered — a refusal is a real result here, not an error. Use this when the user asked a question in words; use search when you want to see the candidates yourself.
| Name | Type | Req | Description |
|---|---|---|---|
| question | string | yes | The question to answer, in the words the user asked it. |
| Name | Type | Req | Description |
|---|---|---|---|
| abstention_reason | string | – | Why the corpus declined: empty_query, no_candidates, below_coverage, ambiguous_candidates or no_intent_match. |
| answered | boolean | yes | – |
| candidates | array | yes | Near misses, so a refusal is still a lead. Present whether or not the question was answered. |
| claims | array | – | – |
| coverage | number | – | Share of the question's information the winning object accounts for, weighted by term rarity. |
| entity | object | – | – |
| margin | number | – | Relative gap between the best candidate and the runner-up. A small margin means the corpus cannot tell them apart. |
| match_confidence | number | – | How well the answer fits the QUESTION — retrieval confidence, not editorial. Never confuse it with a claim's own confidence, which is how much the corpus stands behind the statement. |
| match_score | number | – | – |
| match_threshold | number | yes | The coverage this corpus requires before it will answer at all. |
| matched_fields | array | – | – |
| matched_question | string | – | The stored question this was matched to, when the answer came from one. |
| missing_topics | array | yes | Meaningful words in the question that appear nowhere in the winning object — the gap, named. |
No examples provided.
compare Compare Football Atlas objects side by side ~168
Two to six knowledge objects side by side: their cards, every indexed attribute as a matrix (the same fields api/index.json publishes, null where an object does not say), the tags they share, the relations that run between them, the neighbours they have in common, and each one's claims with sources and confidence. Use this when the question is 'X vs Y', 'is X the same as Y' or 'how does X differ from Y' — search or get_topic first if you only have names, then pass the ids. An unknown id lands in `missing` with a near-miss suggestion and the rest are still compared.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Two to six knowledge object ids, as returned by search, get_topic or get_related, in the order you want the columns. |
| Name | Type | Req | Description |
|---|---|---|---|
| claims | object | yes | Every compared object's claims, keyed by object id. |
| facets | array | yes | – |
| found | boolean | yes | True only when every id resolved. |
| missing | array | yes | The ids that resolved to nothing, in the order asked. |
| objects | array | yes | – |
| recovery | object | – | – |
| relations_between | array | yes | – |
| shared_neighbours | array | yes | – |
| shared_tags | array | yes | – |
No examples provided.
get_entity Get one Football Atlas knowledge object ~93
Fetch one knowledge object by id, with its claims and the sources each claim cites. Use this once search, answer or get_topic has given you an id. An unknown id is not a dead end: the answer names near-miss ids you can retry with.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The knowledge object's id, as returned by search, answer, get_topic or get_related — the last segment of its canonical URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| entity | object | – | – |
| found | boolean | yes | – |
| recovery | object | – | – |
No examples provided.
get_latest Latest verified Football Atlas objects ~84
Most recently verified knowledge objects (freshness signal). Use this to judge how current the corpus is, or to see what changed since you last read it. It ranks by verification date and ignores your topic entirely — use search or get_topic when you want objects that are relevant rather than recent.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many recently verified objects to return, newest verification first. |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | – |
| total | integer | yes | – |
No examples provided.
get_overview Overview of Football Atlas ~46
Corpus overview: what this instance knows, counts by type, published tags, freshness. Use this first when you land here and do not yet know whether this corpus can answer your question.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| by_type | object | yes | – |
| description | string | yes | – |
| instance | string | yes | – |
| newest_verification | string | yes | – |
| oldest_verification | string | yes | – |
| tags | array | yes | – |
| total_media | integer | yes | – |
| total_objects | integer | yes | – |
No examples provided.
get_related Traverse the Football Atlas knowledge graph ~185
Graph neighbours of an object: outgoing and incoming relations, each with its relation type. PAGED: 25 relations by default, 200 at most, and a response budget of about 64 KB per call — a page over budget comes back shorter WITH a next_cursor, never truncated. One cursor walks both directions, outgoing first; its absence means you have the last page. Use this after get_entity to widen an answer with adjacent objects. It walks one hop from an id you already have — use search when you have a question and no starting object.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Continue from a previous call: pass the next_cursor it returned. Opaque; do not construct one. |
| id | string | yes | The knowledge object to walk out from, by id. |
| limit | integer | – | How many relations to return, across both directions. Defaults to 25. |
| Name | Type | Req | Description |
|---|---|---|---|
| found | boolean | yes | – |
| incoming | array | – | – |
| next_cursor | string | – | Pass to the next call to continue. ABSENT means this was the last page. |
| outgoing | array | – | – |
| recovery | object | – | – |
| returned | integer | – | – |
| total | integer | – | How many relations this object has in both directions, before paging. |
No examples provided.
get_sources Sources behind Football Atlas ~290
The instance's source registry — each entry with its evidence tier, reliability and access date. PAGED: 25 entries by default, 200 at most, and a response budget of about 64 KB per call — a page over budget comes back shorter WITH a next_cursor, never truncated. Read next_cursor and call again to continue; its absence means you have the last page. Filter by object_id, tier, host or accessed_since to avoid paging through a registry you do not need. Use this when you need the registry entry behind a citation, or a sample of the whole registry to judge the corpus before trusting it; get_entity already tells you which sources a claim cites.
| Name | Type | Req | Description |
|---|---|---|---|
| accessed_since | string | – | Only sources accessed on or after this ISO date (YYYY-MM-DD). |
| cursor | string | – | Continue from a previous call: pass the next_cursor it returned. Opaque; do not construct one. |
| host | string | – | Only sources whose URL is served by this host, compared without a leading www. A source with no URL never matches. |
| limit | integer | – | How many entries to return. Defaults to 25. |
| object_id | string | – | Restrict the answer to the sources cited by this knowledge object. Omit it to page the whole registry. |
| tier | string | – | Only sources of this evidence tier, spelled exactly as get_sources reports it. |
| Name | Type | Req | Description |
|---|---|---|---|
| found | boolean | yes | – |
| next_cursor | string | – | Pass to the next call to continue. ABSENT means this was the last page. |
| recovery | object | – | – |
| returned | integer | yes | – |
| sources | array | yes | – |
| total | integer | yes | How many sources matched the filters, before paging. |
No examples provided.
get_topic Browse Football Atlas by topic ~215
List the knowledge objects carrying a tag (topics are content-backed tags). PAGED: 25 objects by default, 200 at most, and a response budget of about 64 KB per call — a page over budget comes back shorter WITH a next_cursor, never truncated. Read next_cursor and call again to continue, and its absence means you have the last page. Use this to browse a known topic; use search when you have a question rather than a tag, and get_overview to see which tags exist. An unknown tag comes back with the topics that do exist, so a miss still moves you forward.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Continue from a previous call: pass the next_cursor it returned. Opaque; do not construct one. |
| limit | integer | – | How many objects to return. Defaults to 25. |
| tag | string | yes | The topic to list, spelled exactly as get_overview publishes it. Every published topic has objects under it, so an empty answer means the topic does not exist. |
| Name | Type | Req | Description |
|---|---|---|---|
| next_cursor | string | – | Pass to the next call to continue. ABSENT means this was the last page. |
| recovery | object | – | – |
| results | array | yes | – |
| returned | integer | yes | – |
| tag | string | yes | – |
| total | integer | yes | How many objects carry this tag, before paging. |
No examples provided.
search Search Football Atlas ~256
Full-text search over the knowledge graph. Matching ignores accents and apostrophes, so query in the user's own words; every hit carries the fields it matched and a score. BM25 relevance: each query term is weighted by how RARE it is in this corpus and by where it hits (name 3, tags 2, questions 2, body 1). A hit must also cover a minimum share of the question's information, measured in the same rarity weights — matching only common words does not qualify. Centrality (how many objects point at this one) breaks TIES ONLY and is never part of the score, so it cannot make an irrelevant object rank. Two hits with the same matched_fields can still differ: the score is rarity-weighted, so matching a rare term is worth more than matching a common one. Use this whenever you have a question rather than an id, then follow up with get_entity.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many ranked hits to return, best first. |
| query | string | yes | What to look for, in the user's own words. Matched against titles, questions, claim text and tags; accents and apostrophes are ignored, so 'jose' finds 'José'. |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | – |
| total | integer | yes | – |
No examples provided.
What is the Football Atlas MCP server?
Football Atlas is an MCP server listed in the public MCP registry as app.futbolatlas/futbol-atlas. The Laws of the Game and world football's major competitions, every claim cited to primary sources. This page covers its hosted endpoint (https://futbolatlas.app/mcp?via=manifest).
Is the Football Atlas MCP server safe to use?
Football Atlas scores 89 out of 100 on VerifyMCP. 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 Football Atlas MCP server expose?
Football Atlas exposes 9 tools: search, get_entity, get_topic, answer, get_sources, and 4 more. Their descriptions and schemas cost roughly 1,450 tokens of context every time the server is loaded.
Does the Football Atlas MCP server require authentication?
No. We connected to Football Atlas without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Football Atlas MCP server still maintained?
Football Atlas 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.