{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T17:24:37.144Z","url":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp","markdownUrl":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp.md","server":{"slug":"mrfentmen-stadiamaps-mcp","name":"io.github.mrfentmen/stadiamaps-mcp","registryName":"io.github.mrfentmen/stadiamaps-mcp","description":"Stadia Maps: geocoding, routing, isochrones, static maps and elevation lookups.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"stadiamaps-mcp","type":"npm","identifier":"stadiamaps-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp","version":"1.0.0","transport":"stdio","scoredAt":"2026-11-05T06:17:41.207Z"},"score":{"total":67,"tier":"medium","status":"scored","weekDelta":0,"history":[{"date":"2026-11-05","total":67},{"date":"2026-11-04","total":67},{"date":"2026-11-03","total":67},{"date":"2026-11-02","total":67},{"date":"2026-11-01","total":67},{"date":"2026-10-31","total":67},{"date":"2026-10-30","total":67},{"date":"2026-10-29","total":67},{"date":"2026-10-28","total":67},{"date":"2026-10-27","total":52}]},"categories":[{"name":"Supply Chain Security","score":98,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","30 of 92 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"92","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":45,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 9 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"9"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":68,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Tool/resource definitions use about 833 tokens (~69/item across 12 items; 12 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_lean","args":{"avg":"69","items":"12","tools":"12","tokens":"833","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":85,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","56% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"56"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"12"}},{"code":"toolsafety.manipulation_clean","args":{"units":"12","judged":"12"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"stadiamaps-mcp","type":"npm","identifier":"stadiamaps-mcp","withdrawn":false,"score":67,"current":true,"url":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp","markdownUrl":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"stadiamaps-mcp"},{"label":"Version","value":"1.0.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"stadia_geocode","title":null,"description":"Forward geocode a place name or address; returns compact rows (label, lat/lon, region, country).","inputs":[{"name":"size","type":"integer","required":false,"description":"max results (default 10)"},{"name":"text","type":"string","required":true,"description":"place name or address to search"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"stadia_autocomplete","title":null,"description":"As-you-type place suggestions for partial input.","inputs":[{"name":"text","type":"string","required":true,"description":"partial place name"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":29},{"name":"stadia_reverse","title":null,"description":"Reverse geocode a coordinate: what place is at this lat/lon. Returns compact rows.","inputs":[{"name":"coordinates","type":"string","required":true,"description":"\"lat, lon\", e.g. \"40.7128, -74.0060\""},{"name":"layers","type":"string","required":false,"description":"optional layer filter, e.g. \"address,street\""},{"name":"zoom","type":"integer","required":false,"description":"Pelias zoom granularity (18 = building)"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":88},{"name":"stadia_structured","title":null,"description":"Structured geocoding: give separate country/region/city/address/postalcode parts instead of one string.","inputs":[{"name":"address","type":"string","required":false,"description":null},{"name":"city","type":"string","required":false,"description":null},{"name":"country","type":"string","required":false,"description":null},{"name":"postalcode","type":"string","required":false,"description":null},{"name":"region","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":68},{"name":"stadia_directions","title":null,"description":"Route between 2+ waypoints (\"lat,lon lat,lon ...\" separated by spaces or semicolons). Returns trip summary plus per-leg summaries (length, time) — no raw geometry.","inputs":[{"name":"costing","type":"string","required":false,"description":null},{"name":"units","type":"string","required":false,"description":null},{"name":"waypoints","type":"string","required":true,"description":"\"lat,lon\" points in order, separated by spaces or semicolons"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":88},{"name":"stadia_directions_summary","title":null,"description":"The same route call reduced to one line: total distance, total time, leg count.","inputs":[{"name":"costing","type":"string","required":false,"description":null},{"name":"units","type":"string","required":false,"description":null},{"name":"waypoints","type":"string","required":true,"description":"\"lat,lon\" points in order, separated by spaces or semicolons"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":67},{"name":"stadia_isochrone","title":null,"description":"Reachable-area polygons from one point within 1-120 minute contours (per travel mode).","inputs":[{"name":"contours","type":"array","required":true,"description":"minutes, e.g. [10, 20]"},{"name":"coordinates","type":"string","required":true,"description":"\"lat, lon\", e.g. \"40.7128, -74.0060\""},{"name":"costing","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":80},{"name":"stadia_isochrone_contours","title":null,"description":"The same isochrone call reduced to the per-contour metadata (which contour covers how far).","inputs":[{"name":"contours","type":"array","required":true,"description":null},{"name":"coordinates","type":"string","required":true,"description":"\"lat, lon\", e.g. \"40.7128, -74.0060\""},{"name":"costing","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":73},{"name":"stadia_route_matrix","title":null,"description":"Time/distance matrix between many sources and targets (each \"lat,lon lat,lon ...\") — pick the nearest of N places.","inputs":[{"name":"costing","type":"string","required":false,"description":null},{"name":"sources","type":"string","required":true,"description":"\"lat,lon\" points, separated by spaces or semicolons"},{"name":"targets","type":"string","required":true,"description":"\"lat,lon\" points, separated by spaces or semicolons"},{"name":"units","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"stadia_elevation","title":null,"description":"Elevation along a path of 2+ points; with range=true the answer includes cumulative distance at each sample.","inputs":[{"name":"range","type":"boolean","required":false,"description":"include cumulative distance per sample"},{"name":"waypoints","type":"string","required":true,"description":"\"lat,lon\" points, separated by spaces or semicolons"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":67},{"name":"stadia_elevation_point","title":null,"description":"Elevation at a single coordinate (one height call, range off).","inputs":[{"name":"coordinates","type":"string","required":true,"description":"\"lat, lon\", e.g. \"40.7128, -74.0060\""}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"stadia_timezone","title":null,"description":"IANA timezone and offsets for a coordinate; pass timestamp (epoch seconds) for the offset at that instant.","inputs":[{"name":"coordinates","type":"string","required":true,"description":"\"lat, lon\", e.g. \"40.7128, -74.0060\""},{"name":"timestamp","type":"integer","required":false,"description":"epoch seconds to ask about"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":69}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:17:41.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":92,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-27","recent":[{"id":"chg_01a18123-9558-7962-9bd2-d15cc3ff725f","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp#chg-chg_01a18123-9558-7962-9bd2-d15cc3ff725f"},{"id":"chg_01a18123-955a-7049-b666-b758ec925a50","kind":"score.total_changed","summary":"Trust score (52 → 67)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp#chg-chg_01a18123-955a-7049-b666-b758ec925a50"},{"id":"chg_01a17d65-0d9f-7b67-929b-7d13058234d0","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp#chg-chg_01a17d65-0d9f-7b67-929b-7d13058234d0"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp","markdown":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp.md","changelogJson":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/mrfentmen-stadiamaps-mcp/stadiamaps-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/stadiamaps-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/stadiamaps-mcp"},{"label":"Repository","href":"https://github.com/mrfentmen/awesome-servers"}]}}