{"server":{"name":"com.skyaccess/skyaccess","icons":[{"src":"https://raw.githubusercontent.com/sky-access/skyaccess-mcp/main/assets/icon.png","sizes":["512x512"],"mimeType":"image/png"}],"title":"SkyAccess","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://mcp.skyaccess.com/mcp","type":"streamable-http"}],"version":"1.0.3","packages":[{"version":"1.0.0","transport":{"type":"stdio"},"identifier":"skyaccess-mcp","runtimeHint":"npx","registryType":"npm","packageArguments":[{"type":"positional","value":"bridge"}]}],"repository":{"id":"1350713226","url":"https://github.com/sky-access/skyaccess-mcp","source":"github"},"websiteUrl":"https://skyaccess.com","description":"Search 5,000+ live empty leg flights, get charter estimates and booking links. Free, no API key."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-06T01:17:53.161733Z","publishedAt":"2026-10-06T01:17:53.161733Z","statusChangedAt":"2026-10-06T01:17:53.161733Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.skyaccess.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-11-25"],"stateless":true},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":230,"consecutive_failures":0,"last_probe_at":"2026-10-20T00:26:52.150Z","last_ok_at":"2026-10-20T00:26:52.150Z"}}],"packages":[{"idx":0,"registry_type":"npm","identifier":"skyaccess-mcp","version":"1.0.0","runtime_hint":"npx","transport":"stdio","secrets":[],"requires_execution":true}]},"dev.protogrid/tools":[{"name":"booking_handoff","title":"Get the booking link for an empty leg flight","description":"Return the public SkyAccess listing page link for a specific empty leg flight, where the traveler can review the flight and continue on skyaccess.com. This is read-only: it creates no booking, hold or payment, and it does not modify or cancel anything. It sends no traveler details to SkyAccess and does not ask a specialist to make contact.","annotations":{"title":"Get the booking link for an empty leg flight","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T00:26:52.150Z"},{"name":"get_charter_estimate","title":"Get charter price estimate","description":"Returns an indicative price range (min/max USD) for a private charter flight between two locations. Optionally filter by aircraft category and passenger count. When no category is specified, returns estimates for each aircraftCategory value that suits the route and group size.","annotations":{"title":"Get charter price estimate","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T00:26:52.150Z"},{"name":"get_flight","title":"Get a single empty leg flight by id","description":"Look up one empty leg flight by its id and return its route, departure time, whole-aircraft price (taxes and fees shown at checkout), aircraft type, available seats, amenities and a booking link, as currently published. Returns a not-available message if the flight is no longer published.","annotations":{"title":"Get a single empty leg flight by id","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T00:26:52.150Z"},{"name":"list_routes","title":"List popular private jet routes","description":"List popular SkyAccess private jet routes, each with its origin, destination and minPrice: the lowest whole-aircraft empty leg price currently listed on the route, in USD (taxes and fees shown at checkout), or null when no flight on the route currently has a listed price. Results are stable, not a live ranking: the list is a curated catalogue, six featured routes first and then the routes travelers searched most over the last 30 days, served from a cache refreshed about every 30 minutes, so repeated calls return the same routes. Pass a route to search_empty_legs to see its flights.","annotations":{"title":"List popular private jet routes","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T00:26:52.150Z"},{"name":"request_booking","title":"Request a charter booking","description":"Submit a charter flight booking request to SkyAccess. This sends the traveler's name, email and trip details (route, date, passengers and any notes) to SkyAccess so a specialist can follow up. A SkyAccess specialist will follow up with the requester by email shortly to confirm availability and pricing. No payment is taken and no booking is created: this only starts the enquiry. Privacy policy: https://skyaccess.com/privacy","annotations":{"title":"Request a charter booking","readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-20T00:26:52.150Z"},{"name":"search_empty_legs","title":"Search empty leg flights","description":"Search available empty leg flights by origin, destination, date range, passenger count, and an optional max_price ceiling. Returns up to 5 matching flights with route, departure time, whole-aircraft price (taxes and fees shown at checkout), aircraft type, available seats, and a booking link. Empty legs are discounted private jet availability on specific routes. A flight with price: null has no published price (shown on SkyAccess as \"Contact for price\"). Such flights are included even when max_price is set, because their price is unknown; they are not confirmed to be within the cap.","annotations":{"title":"Search empty leg flights","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T00:26:52.150Z"}],"dev.protogrid/trust":{"score":96,"components":{"hygiene":100,"liveness":100,"freshness":100,"provenance":85},"drivers":["+repository","+dns-namespace","+website","+reachable","+uptime-100%","+updated-14d-ago"],"flags":[],"blocked":false,"computed_at":"2026-10-20T04:12:18.767Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":75,"label":"good","components":{"auth":null,"hygiene":100,"protocol":75,"stability":25,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"6 of 6 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 1,718 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"10 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"1 tools kept their name but changed most of their description in 30 days; review before trusting them","status":"fail","category":"stability"},{"id":"deps.known_vulns","detail":"deps.dev does not know skyaccess-mcp@1.0.0","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"deps.dev does not know skyaccess-mcp@1.0.0","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"deps.dev does not know skyaccess-mcp@1.0.0","status":"na","category":"dependencies"}],"drivers":["-stability.rug_pull","~protocol.modern","~stability.changes"],"flags":[],"tool_count":6,"token_estimate":1718,"tools_hash":"0f4bb6e39ba7473957927c3a98f76837","tools_changed_at":"2026-10-09T22:28:13.528Z","computed_at":"2026-10-20T04:09:27.704Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.skyaccess/skyaccess","aliases":[],"alias_count":0,"repository_key":"github:sky-access/skyaccess-mcp","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.skyaccess%2Fskyaccess/tools","arguments":{"name":"com.skyaccess/skyaccess"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.skyaccess%2Fskyaccess/connection?target=mcpServers","arguments":{"name":"com.skyaccess/skyaccess","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}