io.github.cyanheads/eurostat-mcp-server
io.github.cyanheads/eurostat-mcp-server
MCP Bill of Materials
A machine-readable inventory of what this server exposes and depends on: tools with their effects, transports, packages, findings and provenance (schema version 1.0). Third-party text in it is escaped. Also available from the REST API at /api/v1/servers/904ee0e9-a1c9-4675-a0a5-ed2fd3d26d32/mcbom.
MCP Bill of Materials
root{21}
schema_version: "1.0"
bom_format: "squatch-mcbom"
generator{3}
name: "squatch-mcp"
classifier_version: "rules_v1@2026-10-11.1"
unicode_version: "18.0.0"
server{7}
name: "io.github.cyanheads/eurostat-mcp-server"
title: null
description: "Search and query the Eurostat catalogue — EU economy, demography, trade, and NUTS regional data."
version: "0.11.3"
homepage_url: null
source: "official_registry"
upstream_status: "active"
publisher{4}
namespace: "io.github.cyanheads"
display_name: "io.github.cyanheads"
type: "registry_namespace"
status: "unclaimed"
organization: null
repository{5}
url: "https://github.com/cyanheads/eurostat-mcp-server"
provider: "github"
owner: "cyanheads"
name: "eurostat-mcp-server"
verified: false
packages[2]
0{4}
registry_type: "npm"
identifier: "@cyanheads/eurostat-mcp-server"
version: "0.11.3"
transport: "stdio"
1{4}
registry_type: "npm"
identifier: "@cyanheads/eurostat-mcp-server"
version: "0.11.3"
transport: "streamable-http"
transports[3]
0{5}
kind: "package"
type: "stdio"
endpoint_url: null
endpoint_host: null
auth_type: "unknown"
1{5}
kind: "package"
type: "streamable-http"
endpoint_url: null
endpoint_host: null
auth_type: "unknown"
2{5}
kind: "remote"
type: "streamable-http"
endpoint_url: "https://eurostat.caseyjhand.com/mcp"
endpoint_host: "eurostat.caseyjhand.com"
auth_type: "none"
auth{3}
type: "none"
authorization_servers[0]
scopes[0]
protocol{4}
era: "modern"
negotiated_version: "2026-07-28"
supported_versions[0]
transport_type: "streamable-http"
tools[8]
0{9}
name: "eurostat_browse_themes"
title: "Browse Eurostat Theme Hierarchy"
effect: "WRITE"
effect_confidence: 0.533
capabilities[0]
risk_severity: "LOW"
fingerprint: "f53af4545ba0c05bff8bec3b9c45ebd30fb11d861528547353172ed3524fe6b2"
input_schema_fingerprint: "99508854120c7535ef4e733d7e93953fbff4cd142dfd6430b4d9dfbcfb5b5595"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: true
1{9}
name: "eurostat_dataframe_describe"
title: "Describe Eurostat Dataframes"
effect: "READ"
effect_confidence: 0.888
capabilities[0]
risk_severity: "INFO"
fingerprint: "53ef6879acc2e033d03757717d825423e96a17ec62272441b1c653033482529b"
input_schema_fingerprint: "c0e19d127fea8f2b4c93747dba2090ebe106405523214c08c918909f5502c9b9"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: false
2{9}
name: "eurostat_dataframe_query"
title: "Query Eurostat Dataframes"
effect: "EXECUTE"
effect_confidence: 0.869
capabilities[1]
0{2}
capability: "DATABASE_ACCESS"
confidence: 0.648
risk_severity: "CRITICAL"
fingerprint: "3250c21fd96c179851e527ae010866545a8343635a3406f7713d4bd1da804800"
input_schema_fingerprint: "d94abcaad625212290e4d30778d420ebf431a7bc0f6a080f2102fa524f6e5810"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: false
3{9}
name: "eurostat_download_dataset"
title: "Download Eurostat Dataset"
effect: "READ"
effect_confidence: 0.776
capabilities[3]
0{2}
capability: "DATABASE_ACCESS"
confidence: 0.653
1{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.592
2{2}
capability: "LOCATION"
confidence: 0.567
risk_severity: "LOW"
fingerprint: "081a56b469768fafa143cf4dc265e73ad2002ee4f740eb4043a347878d033685"
input_schema_fingerprint: "eb0e721f5c3bb260723c9244bb7fe011e1ddc2a7c79c760baf5b07ebfb0bc5a1"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: true
4{9}
name: "eurostat_get_dataset_info"
title: "Get Eurostat Dataset Info"
effect: "READ"
effect_confidence: 0.888
capabilities[0]
risk_severity: "INFO"
fingerprint: "facd5b10fe3d99bdf6cdb50e33b8e63d1f7278d4ff7ddedec045c770f439add3"
input_schema_fingerprint: "ccd53bf1de9579da0da9e8c033fb17ce7b690a2b8b4fc3575ed219ff0a7a0a71"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: true
5{9}
name: "eurostat_get_dimension_values"
title: "Get Eurostat Dimension Values"
effect: "READ"
effect_confidence: 0.888
capabilities[1]
0{2}
capability: "LOCATION"
confidence: 0.744
risk_severity: "LOW"
fingerprint: "8c07420cca72937ff91e875e3745ae58d91fee2a3573b3e6991287ea3032f9e3"
input_schema_fingerprint: "b056b53acebd327c8e42dfa026c10c8a53328ae3984a5df5c24ee2639cbd5e4d"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: true
6{9}
name: "eurostat_query_dataset"
title: "Query Eurostat Dataset"
effect: "READ"
effect_confidence: 0.776
capabilities[1]
0{2}
capability: "LOCATION"
confidence: 0.582
risk_severity: "LOW"
fingerprint: "fe6f89efe2798136f66b3c45bccb31d133cd9467ae6ebecaa8b09221254ef9ff"
input_schema_fingerprint: "5f798ed515005264f08bbfaf10a9b73ab4b760b6e862906e3647d04e2b78212f"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: true
7{9}
name: "eurostat_search_datasets"
title: "Search Eurostat Datasets"
effect: "READ"
effect_confidence: 0.888
capabilities[0]
risk_severity: "INFO"
fingerprint: "410efd1973bd817edb387fb352f52a98ca3ae92befc07b984c7e8a3e6d72c7c1"
input_schema_fingerprint: "bc41f522e7c092a07aa625669ecc919dd070dd9841a831c43ea3777db618aeac"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: null
idempotentHint: true
openWorldHint: true
resources[3]
0{4}
key: "skill://eurostat-guide/SKILL.md"
kind: "resource"
mime_type: "text/markdown"
fingerprint: "1d301c3168534ad19e759bb6c2245e778dc5bf229dd195218acadaf92876c194"
1{4}
key: "eurostat://dataset/{dataset_code}"
kind: "template"
mime_type: "application/json"
fingerprint: "351c865fda1a3c31f8d6e61b18e91256df298dbd3e02c5d4e0d599b684841fc1"
2{4}
key: "skill://{+path}"
kind: "template"
mime_type: null
fingerprint: "9777dc7f1cf468158c157032a0ccebf9b50270f4e8753af9ccaf2fe99890ccf0"
prompts[0]
extensions[1]
0: "io.modelcontextprotocol/skills"
data{6}
privacy_completeness: "not_provided"
data_categories[0]
ai_training: null
retention_policy: null
processing_regions[0]
subprocessors[0]
external_integrations[1]
0{3}
host: "eurostat.caseyjhand.com"
registrable_domain: "caseyjhand.com"
source: "transport"
findings[8]
0{6}
check_id: "SQ-SERVER-AUTH-NONE-WRITE"
category: "authentication"
severity: "MEDIUM"
title: "State-changing tools available without authentication"
subject_type: "server"
subject_name: null
1{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "LOW"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "eurostat_browse_themes"
2{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "HIGH"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "eurostat_dataframe_query"
3{6}
check_id: "SQ-TOOL-CONCEALMENT"
category: "prompt_injection"
severity: "HIGH"
title: "Text asks the AI model to hide actions from the user"
subject_type: "tool"
subject_name: "eurostat_download_dataset"
4{6}
check_id: "SQ-TOOL-CONCEALMENT"
category: "prompt_injection"
severity: "HIGH"
title: "Text asks the AI model to hide actions from the user"
subject_type: "tool"
subject_name: "eurostat_search_datasets"
5{6}
check_id: "SQ-TOOL-INJECTION-INSTRUCTIONS"
category: "prompt_injection"
severity: "MEDIUM"
title: "Instructions addressed to the AI model"
subject_type: "tool"
subject_name: "eurostat_get_dimension_values"
6{6}
check_id: "SQ-TOOL-INJECTION-INSTRUCTIONS"
category: "prompt_injection"
severity: "MEDIUM"
title: "Instructions addressed to the AI model"
subject_type: "tool"
subject_name: "eurostat_search_datasets"
7{6}
check_id: "SQ-TOOL-TITLE-EFFECT-MISMATCH"
category: "deceptive_metadata"
severity: "HIGH"
title: "Display title describes a lower-impact action than the name"
subject_type: "tool"
subject_name: "eurostat_dataframe_query"
trust{9}
registry_namespace: "verified_upstream"
publisher_identity: "unverified"
organization: "unverified"
domain: "unverified"
repository: "unverified"
source_provenance: "partial"
security_scan: "findings_detected"
privacy_transparency: "not_provided"
monitoring: "active"
provenance{4}
registry_name: "io.github.cyanheads/eurostat-mcp-server"
registry_content_sha256: "6638cd590bd2969392141fbede05a7646d7ff8d96486403bfc0aef5d3d54cddc"
scan_snapshot_fingerprint: "0a4bdf8e138b7e52cce09fdd93f74cc95e4dce6bc4b2567eda5f5473465e41a1"
scanner_version: "1.0.0"
timestamps{4}
generated_at: "2026-11-15T02:14:33.371Z"
observed_at: "2026-11-08T20:50:57.768+00:00"
registry_published_at: "2026-11-08T19:38:11.140048+00:00"
registry_updated_at: null