io.github.cyanheads/aviation-weather-mcp-server
REMOTE · AVIATION-WEATHER.CASEYJHAND.COM · 2 COMPONENTS
METARs, TAFs, PIREPs, domestic/international SIGMETs and CWAs via NWS AWC. AIRMETs not served.
Last scanned (21 hours ago)
Scores higher than 95% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Maps and Location
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 Security83
- 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. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. 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 is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability72
- 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 2785 tokens (~464/item across 6 items; 5 tools + 1 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 Management100
- No destabilizing schema changes in the last 30 days.Pass
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 5 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 7 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
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
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.
- 5 Nov 26 0
- Stability: 0.97 → pass security
- 4 Nov 26 0
- Stability: pass → 0.97 functional
- 1 Nov 26 −1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “aviation_get_pireps” rewrote its description, which is the text the model reads security
- Tool “aviation_get_advisories” rewrote its description, which is the text the model reads security
- Schema quality: 520 → 464 ▲ functional
- Schema quality: 520 → 465 ▲ functional
- New resource “aviation-weather-guide” functional
- Server version: 0.7.0 → 0.7.1 functional
- Server version: 0.6.0 → 0.7.0 functional
- “aviation_get_advisories” added an optional parameter “altitude_ft” cosmetic
- “aviation_get_pireps” reworded the description of “distance_nm” cosmetic
- “aviation_find_stations” reworded the description of “station_ids” cosmetic
- “aviation_get_advisories” reworded the description of “hazard” cosmetic
- 19 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “aviation_get_advisories” rewrote its description, which is the text the model reads security
- Server version: 0.5.1 → 0.6.0 functional
- “aviation_get_advisories” added an optional parameter “limit” cosmetic
- “aviation_get_advisories” reworded the description of “advisory_type” cosmetic
- “aviation_get_advisories” reworded the description of “bbox” cosmetic
- “aviation_get_advisories” reworded the description of “hazard” cosmetic
- “aviation_get_pireps” reworded the description of “station_id” cosmetic
- Tool “aviation_get_advisories” changed its title: Get Active Aviation Advisories (SIGMETs) → Get Active Aviation Advisories cosmetic
- 15 Oct 26 +2
- DNSSEC: unverified → pass ▲ security
- 14 Oct 26 −2
- DNSSEC: pass → unverified ▼ security
- 9 Oct 26 0
- Server version: 0.5.0 → 0.5.1 functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
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 5 Nov 2026 · Probed https://aviation-weather.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 2 Nov 2026 | 31 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 995a30681ab772540e934241ca1d576c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| 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 secure
Validation of aviation-weather.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| caseyjhand.com. | DS published | 2371 | 13 | Verified |
| aviation-weather.caseyjhand.com. | Verified address RRset verified with the apex keys |
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; includeSubDomains; preload |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://aviation-weather.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://aviation-weather.caseyjhand.com/mcp | HTTPS enforced | 301 | https://aviation-weather.caseyjhand.com/mcp |
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 →
aviation_find_stations Find Aviation Weather Stations ~459
Resolve an airport or weather reporting station by its identifier, or discover stations within a bounding box or US state. Returns all identifier variants (ICAO/IATA/FAA), coordinates, elevation, and available data types (METAR, TAF, SYNOP, etc.). A lookup matches the registry's own identifier, which for an airport is its 4-character ICAO ID (e.g., KSEA, KJFK, K0S9); buoys and mesonet sites carry identifiers of other shapes and resolve by those. At least one of station_ids, bbox, or state is required. limit bounds how many stations an area search returns without changing the area searched, and belongs to the bbox and state modes only.
| Name | Type | Req | Description |
|---|---|---|---|
| bbox | object | – | Geographic bounding box for spatial queries. |
| limit | integer | – | Maximum stations to return, applied after ordering by ICAO identifier ascending with identifier-less stations last — so the same query with the same limit returns the same stations, and airports rath… |
| state | string | – | Two-letter USPS code for one of the 50 US states or DC (e.g., "WA") to list all stations in that jurisdiction. US territories are not supported — use bbox for those. |
| station_ids | array | – | One or more station identifiers (e.g., KSEA, KJFK), with 1–20 identifiers after splitting commas and trimming each token. Empty tokens are rejected. A lookup matches the registry's own identifier: a… |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The upstream row maximum that was applied to the draw. Present only on a truncated result. |
| error | object | – | Present when the call failed. Absent on success. |
| limited | boolean | – | True when the requested limit withheld stations that matched — the caller asked to see fewer of them. False affirms the limit did not bite, so every matching station is here. Present only when the ca… |
| matched | number | – | Stations that matched this query before the limit selected from them. Present only on a limited result. Where the result is also truncated this counts the capped draw and not the search area — the st… |
| missing | array | – | Requested identifiers absent from the result. Deduplicated the way returned is: a repeated or differently-cased identifier appears once, under its first spelling. Absent when none are missing. |
| notice | string | – | Guidance for bbox row caps, requested limits, area results above 110 stations with no limit, unresolved identifiers, or unavailable supplementary magnetic variation. State snapshots are complete and… |
| partial | boolean | – | True when a requested identifier resolved to nothing. False affirms every requested identifier resolved, which a count cannot establish — upstream case-folds and deduplicates, so a shorter list is no… |
| requested | array | – | Station identifiers this call asked for, spelled as the caller wrote them and in the order given. Present only on a station_ids lookup — the bbox and state modes ask for an area, not a list. |
| returned | array | – | Requested identifiers that resolved, spelled as the caller wrote them rather than as upstream returned them. Deduplicated the way upstream deduplicates: a repeated or differently-cased identifier app… |
| shown | number | – | Stations in this result, counted after any client-side state filter and after any limit. |
| stations | array | – | Matching stations. |
| truncated | boolean | – | True when the upstream draw hit the AWC row cap, so stations inside the search area are missing from this result. False affirms the area was drawn in full, which a count alone cannot establish. |
| upstreamRows | number | – | Rows AWC returned before the client-side state filter ran. Present only on a truncated state query the filter then narrowed, where the post-filter count sits below the cap and so cannot reveal the tr… |
No examples provided.
aviation_get_advisories Get Active Aviation Advisories ~487
Get active domestic SIGMETs, international SIGMETs (including oceanic products), and Center Weather Advisories from the NWS Aviation Weather Center. Filter by advisory_type, hazard, optional altitude_ft, or ordered bbox. Returns source coverage, decoded hazards/altitudes/movement, multipart geometry, and original bulletins; missing facts stay null. CWA cancellations are excluded and counted. Independent source failures retain healthy results with partial coverage. AIRMET requests are rejected; this tool does not retrieve AIRMETs. Omit limit to return every available match; an explicit limit sorts results and discloses withheld matches.
| Name | Type | Req | Description |
|---|---|---|---|
| advisory_type | string | – | Product selection: sigmet is domestic SIGMETs, isigmet is international SIGMETs, cwa is Center Weather Advisories, and all reads all three independently. airmet is rejected with guidance to separate… |
| altitude_ft | number | – | Optional finite altitude in feet MSL, rounded to the nearest 100 ft (half steps round upward). SIGMET sources use documented level filtering within ±3000 ft; CWA uses inclusive overlap with that band… |
| bbox | object | – | Ordered geographic bounding box. Matches each geometry part by its bounding envelope, not exact polygon intersection; date-line-crossing source geometry is unwrapped. |
| hazard | string | – | Upstream hazard filter. TS and CONVECTIVE are thunderstorm aliases across every product, retaining source-native output hazards. Domestic also supports TURBULENCE, ICING, IFR. International also supp… |
| limit | integer | – | Optional maximum matches to return, without a default or automatic cap. Sorts by source, issuer, series and validity; omit or raise it to retrieve withheld matches. |
| Name | Type | Req | Description |
|---|---|---|---|
| advisories | array | – | Active advisories matching the filter criteria. May be empty during fair weather periods. |
| altitude_selection | object | – | Applied altitude selection; absent when altitude_ft was omitted. |
| coverage | array | – | Coverage of selected sources, independent of bbox and limit. |
| drawn | number | – | With bbox: decoded active rows after cancellation removal and product/hazard/altitude selection, before geographic filtering; successful sources only. |
| error | object | – | Present when the call failed. Absent on success. |
| matched | number | – | With bbox: rows intersecting any geometry part, before limit. |
| notice | string | – | Coverage-scoped empty, bbox-removal or explicit-limit explanation and recovery. Failed sources never establish zero coverage. |
| partial | boolean | – | True when a source failed or unreadable rows were skipped; no complete-coverage claim is possible. |
| returned | number | – | With bbox or explicit limit: rows returned after limit. |
| total | number | – | With explicit limit: all available matches before limiting. |
| truncated | boolean | – | With explicit limit: whether matches were withheld. Omit or raise limit to retrieve them. |
| unlocated | number | – | With bbox: drawn rows lacking decoded geometry; not known to be outside the box. |
No examples provided.
aviation_get_metar Get METAR Weather Observations ~687
Get current weather observations (METARs) for named airports, or survey every reporting station inside a geographic area. Returns decoded fields — wind direction/speed/gusts, visibility, ceiling with its kind (measured, or indefinite for vertical visibility into an obscuration), present weather, temperature, dewpoint, altimeter, cloud layers — plus the computed flight category (VFR/MVFR/IFR/LIFR) and the raw METAR string. Requires either station_ids (1–10 ICAO IDs, e.g., KSEA, KJFK, K0S9) or bbox (area survey) — not both. station_ids returns every observation inside the hours window; bbox returns the latest observation per station in the box, with flight_category keeping only the stations in the categories named (e.g., IFR and LIFR) and limit bounding how many stations come back. Use aviation_find_stations to resolve or verify an ICAO ID, or to discover nearby stations.
| Name | Type | Req | Description |
|---|---|---|---|
| bbox | object | – | Geographic bounding box for an area observation survey. |
| flight_category | array | – | Return only the stations whose flight category is one of these (e.g., ["IFR", "LIFR"] to find where conditions are poor). Applied in the tool after the draw is reduced to the latest observation per s… |
| hours | integer | – | Lookback window in hours (1–12), not a row limit. With station_ids every observation inside the window is returned, so a station reporting more often than hourly yields more than one row per hour: at… |
| limit | integer | – | Maximum stations to return, applied after the draw is reduced to the latest observation per station, after any flight_category filter, and ordered by station ID ascending — so the same query with the… |
| station_ids | array | – | ICAO station IDs to query. 1–10 stations per call, and every observation inside the hours window is returned for each. Supplying it alongside bbox is rejected — use bbox to ask about an area rather t… |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The upstream row maximum that was applied to the draw. Present only on a truncated result. |
| error | object | – | Present when the call failed. Absent on success. |
| limited | boolean | – | True when the requested limit withheld stations that matched — the caller asked to see fewer of them. False affirms the limit did not bite, so every station drawn is here. Present only when a bbox su… |
| matched | number | – | Stations the draw held before the limit selected from them — after the flight_category filter, where one was supplied. Present only on a limited result. Where the result is also truncated this counts… |
| missing | array | – | Requested station IDs absent from the result. Absent when none are missing. |
| notice | string | – | Guidance for whichever disclosures fired, in this order: the levers that narrow a truncated draw; what the flight_category filter kept of the stations surveyed, or that it emptied the result; what a… |
| observations | array | – | Weather observations. With station_ids, one per station/time pair — multiple entries per station when the hours window holds more than one observation. With bbox, one per station: the latest observat… |
| partial | boolean | – | True when a requested station produced no observation. False affirms the result covers every requested station, so full coverage is distinguishable from a short batch rather than being inferred from… |
| requested | array | – | Station IDs this call asked for, in the order given. Present only on a station_ids lookup — a bbox survey asks for an area, not a list. |
| returned | array | – | Distinct station IDs that produced at least one observation. Counted per station, not per row — with hours > 1 a station reporting six times still appears once. Present only on a station_ids lookup. |
| shown | number | – | Stations in this result, counted after the reduction to one observation per station, after any flight_category filter, and after any limit. Present only on a bbox survey. |
| surveyed | number | – | Stations the survey reached — one per station, the latest observation of each — before the flight_category filter selected from them. Present only when a bbox survey supplied flight_category; the cou… |
| truncated | boolean | – | True when the upstream draw hit the AWC row cap, so stations inside the box are missing from this result. False says the draw did not reach that cap, which a count alone cannot establish — the draw i… |
| upstreamRows | number | – | Observations AWC returned before the reduction to one row per station. Present only on a truncated draw the reduction then narrowed, where the station count sits below the cap and so cannot reveal th… |
No examples provided.
aviation_get_pireps Get Pilot Reports (PIREPs) ~685
Get recent Pilot Reports (PIREPs) near an airport or within a bounding box. Returns decoded turbulence, icing, and cloud reports with altitude, aircraft type, intensity, outside air temperature, wind aloft, flight weather, braking action, and the raw PIREP string. Requires either station_id (ICAO center point for radial search, e.g., KSEA) or bbox (area search) — not both. distance_nm belongs to the station_id search only, and altitude_min_ft must not exceed altitude_max_ft. min_intensity restricts the result to reports carrying a turbulence or icing layer at that intensity or above. limit bounds how many reports come back without changing what is searched, keeping the most recent. Coverage is US-centric; PIREPs are sparse and absence of reports does not imply smooth conditions.
| Name | Type | Req | Description |
|---|---|---|---|
| altitude_max_ft | integer | – | Filter by maximum altitude in feet MSL (e.g., 35000 for FL350), from 0 to 60000 ft — AWC searches no band below sea level, and none centred above FL600, which is already above the altitude any pilot… |
| altitude_min_ft | integer | – | Filter by minimum altitude in feet MSL (e.g., 18000 for FL180), from 0 to 60000 ft — AWC searches no band below sea level, and none centred above FL600, which is already above the altitude any pilot… |
| bbox | object | – | Geographic bounding box for area PIREP search. |
| distance_nm | integer | – | Search radius in nautical miles around station_id, defaulting to 100 when omitted. Belongs to the station_id search only — supplying it alongside bbox is rejected. When station coordinates are unavai… |
| hours | integer | – | How many hours of history to return. Default 3. |
| limit | integer | – | Maximum reports to return, applied last — after every filter and after ordering by observation time descending, so a limited result is the most recent reports rather than an arbitrary slice. It bound… |
| min_intensity | string | – | Return only reports carrying at least one turbulence or icing layer at this intensity or above. The filter selects reports, not layers — a matching report still carries its lighter layers, so a resul… |
| station_id | string | – | ICAO station ID as center point for radial search — 4 ASCII letters or digits, case-insensitive and normalized to uppercase (e.g., KSEA, K0S9). Use with distance_nm. |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The upstream row maximum that was applied to the page. Present only on a truncated result. |
| error | object | – | Present when the call failed. Absent on success. |
| limited | boolean | – | True when the requested limit withheld reports that matched — the caller asked to see fewer of them. False affirms the limit did not bite, so every matching report is here. Present only when the call… |
| matched | number | – | Reports that matched this query before the limit selected from them. Present only on a limited result. Where the result is also truncated this counts the capped page and not the search area — the rep… |
| notice | string | – | Guidance for whichever disclosures fired: the levers that narrow the query before the cap applies, what a requested limit withheld, and — on a result of more than 50 reports from a call that set no l… |
| pireps | array | – | Pilot reports matching the search criteria, ordered by observation time descending. |
| shown | number | – | Reports in this result, counted after geographic selection, altitude filtering, and any limit. |
| truncated | boolean | – | True when the upstream page hit the AWC row cap, so reports inside the search area and time window are missing from this result. False affirms the whole window was searched, which a count alone canno… |
| upstreamRows | number | – | Candidate rows AWC returned before radius and altitude filtering or antimeridian deduplication. Present when those steps narrowed capped draws; each draw has its own 400-row cap. |
No examples provided.
aviation_get_taf Get Terminal Aerodrome Forecast (TAF) ~152
Get the Terminal Aerodrome Forecast (TAF) for one or more airports. Returns each forecast period with valid times, surface wind, low-level wind shear, visibility, decoded weather conditions, cloud layers, and the vertical visibility into a forecast obscuration, plus the raw TAF string. TAFs cover the next 24–30 hours and are issued only for airports with scheduled commercial service; check data_types from aviation_find_stations to confirm TAF availability. Accepts 1–4 ICAO station IDs (e.g., KSEA, KJFK, K36U).
| Name | Type | Req | Description |
|---|---|---|---|
| station_ids | array | yes | ICAO station IDs to query. 1–4 stations per call. |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | Present when the call failed. Absent on success. |
| forecasts | array | – | TAF forecasts, one per requested station. |
| missing | array | – | Requested station IDs absent from the result. Absent when none are missing. |
| notice | string | – | Recovery guidance naming the missing station IDs. Present only on a partial result. It lists the candidate causes without asserting one — upstream omits the row either way. |
| partial | boolean | – | True when a requested station produced no forecast. False affirms the result covers every requested station, so full coverage is distinguishable from a short batch rather than being inferred from the… |
| requested | array | – | Station IDs this call asked for, in the order given. |
| returned | array | – | Distinct station IDs that produced a forecast. |
No examples provided.
How do I install the io.github.cyanheads/aviation-weather-mcp-server server?
io.github.cyanheads/aviation-weather-mcp-server is a hosted endpoint at https://aviation-weather.caseyjhand.com/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 · aviation-weather.caseyjhand.com
claude mcp add --transport http cyanheads-aviation-weather-mcp-server 'https://aviation-weather.caseyjhand.com/mcp'
What is the io.github.cyanheads/aviation-weather-mcp-server server?
io.github.cyanheads/aviation-weather-mcp-server is listed in the public MCP registry as io.github.cyanheads/aviation-weather-mcp-server. METARs, TAFs, PIREPs, domestic/international SIGMETs and CWAs via NWS AWC. AIRMETs not served. This page covers its hosted endpoint (https://aviation-weather.caseyjhand.com/mcp).
Is the io.github.cyanheads/aviation-weather-mcp-server server safe to use?
io.github.cyanheads/aviation-weather-mcp-server scores 88 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 io.github.cyanheads/aviation-weather-mcp-server server expose?
io.github.cyanheads/aviation-weather-mcp-server exposes 5 tools: aviation_find_stations, aviation_get_metar, aviation_get_taf, aviation_get_pireps, aviation_get_advisories. Their descriptions and schemas cost roughly 2,470 tokens of context every time the server is loaded.
Does the io.github.cyanheads/aviation-weather-mcp-server server require authentication?
No. We connected to io.github.cyanheads/aviation-weather-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the io.github.cyanheads/aviation-weather-mcp-server server still maintained?
io.github.cyanheads/aviation-weather-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the io.github.cyanheads/aviation-weather-mcp-server server?
VerifyMCP ran 13 checks on io.github.cyanheads/aviation-weather-mcp-server, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.