Skip to main content
ClaudeWave

One command to add the SkyAccess private-jet empty-leg MCP server to Claude, Cursor, or any MCP client.

MCP ServersRegistry oficial0 estrellas0 forks● JavaScriptMITActualizado today
ClaudeWave Trust Score
87/100
✓ Trusted
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Documented (README)
Last scanned: 10/1/2026
Install in Claude Code / Claude Desktop
Method: NPX · skyaccess-mcp
Claude Code CLI
claude mcp add skyaccess-mcp -- npx -y skyaccess-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "skyaccess-mcp": {
      "command": "npx",
      "args": ["-y", "skyaccess-mcp"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Casos de uso

Resumen de MCP Servers

<img src="assets/icon.png" alt="SkyAccess" width="72" height="72">

# SkyAccess MCP server

SkyAccess is the world's largest empty leg marketplace by listing volume. This free, public MCP server lets any AI assistant search 5,000+ live empty leg flights from 900+ FAA Part 135 (and international equivalent) certified charter operators, often 25 to 75% below a comparable full charter. It also returns indicative charter price estimates and a booking link the traveler can open.

Use the hosted endpoint. Nothing needs to be installed.

```text
https://mcp.skyaccess.com/mcp
```

## Connection details

| | |
|---|---|
| Endpoint | `https://mcp.skyaccess.com/mcp` |
| Authentication | None. The server is free and anonymous: no account, sign-up, API key or OAuth. |
| Transport | Streamable HTTP, `POST` only, stateless. No `Mcp-Session-Id` is issued, so every request stands alone. `GET` returns `405` by design. |
| Required headers | `Content-Type: application/json`. `Accept` can be the MCP spec value `application/json, text/event-stream`, `application/json` alone, `*/*`, or left out. An `Accept` value that does not list `application/json` and is not just `*/*` (for example `text/html` or `text/event-stream` alone) returns `406`. |
| Response format | With `Accept: application/json, text/event-stream`, each reply is one Server-Sent Events message: `event: message`, then `data:` followed by the JSON-RPC response. With `application/json` alone, `*/*` or no `Accept` header, each reply is plain JSON (`Content-Type: application/json`). |
| Protocol version | `2025-06-18`. `2025-11-25`, `2025-03-26` and `2024-11-05` are also negotiated. |
| Rate limits | Tool calls: 30 requests per 60 seconds per client IP. Connection setup is not counted. `request_booking`: 10 charter enquiries per hour per client IP. See [Rate limits](#rate-limits). |
| Coverage | Global inventory, most of it in the United States. Prices and estimates are in USD. |
| Payments | None. No tool takes a payment or has a payment field. |
| Support | contact@skyaccess.com |
| Privacy policy | https://skyaccess.com/privacy#connector |
| Terms of service | https://skyaccess.com/terms |

## Connect from an MCP client

Any client that supports remote MCP servers over Streamable HTTP can use the endpoint directly. Leave authentication empty.

- **Claude (claude.ai and Claude Desktop):** Settings, Connectors, Add custom connector, then paste `https://mcp.skyaccess.com/mcp`.
- **Claude Code:**

  ```bash
  claude mcp add --transport http skyaccess https://mcp.skyaccess.com/mcp
  ```

- **Cursor:** add this to `~/.cursor/mcp.json`:

  ```json
  { "mcpServers": { "skyaccess": { "url": "https://mcp.skyaccess.com/mcp" } } }
  ```

- **Clients that only speak stdio** (for example Claude Desktop's `claude_desktop_config.json` file): use the bridge in this repository. See [Local installer and stdio bridge](#local-installer-and-stdio-bridge-npm-package-coming-soon).

## Try it with curl

List the tools:

```bash
curl -sS https://mcp.skyaccess.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

Search empty legs (read-only):

```bash
curl -sS https://mcp.skyaccess.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_empty_legs","arguments":{"origin":"Los Angeles","destination":"Las Vegas","passengers":4}}}'
```

The server is stateless, so both commands work without an `initialize` handshake. MCP clients still send one, and the server answers it normally.

## Tools

| Tool | Type | What it does |
|---|---|---|
| `search_empty_legs` | Read-only | Searches live empty leg flights by `origin`, `destination`, `departureDateFrom`, `departureDateTo`, `passengers` and `max_price` (USD), all optional. Returns up to 5 flights with route, departure time, all-in price, aircraft, seats, amenities, `flightId` and a booking link. |
| `get_flight` | Read-only | Re-reads one flight by `flightId`, or says it is no longer available. |
| `booking_handoff` | Read-only | Returns the SkyAccess booking page link for a `flightId`. It creates, holds or changes nothing; the traveler reviews and books on the page. |
| `get_charter_estimate` | Read-only | Returns an indicative USD price range per aircraft category, with flight time, for a charter from `origin` to `destination` (optional `passengers` and `aircraftCategory`). |
| `request_booking` | **Write** | Sends the traveler's name, email and trip details (`origin`, `destination`, `departureDate`, `passengers`, optional `notes`) to SkyAccess. A SkyAccess specialist follows up by email shortly to confirm availability and price. It takes no payment and creates no booking. |

A flight with `price: null` has no published price (SkyAccess shows it as "Contact for price"). Such flights can appear even when `max_price` is set, because their price is unknown.

Every tool carries MCP annotations: the four read-only tools set `readOnlyHint: true`, and `request_booking` sets `readOnlyHint: false`.

## Example prompts

1. "Find me a private jet from Los Angeles to Las Vegas this week for 4 people." (`search_empty_legs`)
2. "Are there any cheap private jet flights from Miami to the Bahamas?" (`search_empty_legs`)
3. "Show me empty legs from Teterboro to Palm Beach and give me the booking link for the cheapest one." (`search_empty_legs`, then `booking_handoff`)
4. "How much would it cost to charter a private jet from Teterboro to Aspen for 6 people?" (`get_charter_estimate`)
5. "What private jet deals are leaving Dallas this weekend?" (`search_empty_legs`)
6. "Roughly what does a private jet from New York to London cost for 8 passengers?" (`get_charter_estimate`)

Inventory changes all the time, so the flights returned differ from run to run.

## Data and privacy

The four read-only tools need no personal data. `request_booking` is the only tool that sends personal data: the name and email the traveler gives, plus the trip details and any notes, go to SkyAccess so a specialist can reply. Call it only when the traveler asks SkyAccess to contact them.

How SkyAccess handles this data: https://skyaccess.com/privacy#connector

## Rate limits

Current limits, per client IP:

- **Tool calls: 30 requests per 60 seconds.** Each request that carries a `tools/call` counts once. Connection setup is not counted: `initialize`, `notifications/initialized`, `notifications/cancelled`, `tools/list`, `ping`, and the `GET` an MCP client sends to open the optional SSE stream (answered `405`). A typical client turn (connect, list tools, call one tool) therefore spends 1 request. Any other method counts, and so does a setup request that is over 8 KB, chunked or compressed, or a batch that repeats a setup method. Counted tool-call responses carry `RateLimit-Policy: 30;w=60`, `RateLimit-Limit`, `RateLimit-Remaining` and `RateLimit-Reset` headers (a `request_booking` response carries the hourly limit's values instead); setup responses carry none.
- **10 charter enquiries per hour.** Only requests that call `request_booking` count toward this limit.
- **Per request:** a JSON-RPC batch may carry at most 4 tool calls, and at most 1 `request_booking` call. Larger batches return `400`.

Over a limit, the server answers HTTP `429` with JSON-RPC error code `-32029`. The `RateLimit-Reset` header gives the seconds until the window resets; retry after that.

## Troubleshooting

| Symptom | Cause and fix |
|---|---|
| `406 Not Acceptable` | The `Accept` header does not list `application/json` and is not just `*/*` (for example `text/html` or `text/event-stream` alone). Send `Accept: application/json, text/event-stream`, `application/json` or `*/*`, or leave `Accept` out. |
| `429`, JSON-RPC error `-32029` | A rate limit was reached. "Max 30 requests per minute" is the tool-call limit (connection setup does not count toward it); "Max 10 booking submissions per hour" is the `request_booking` limit. Wait `RateLimit-Reset` seconds, then retry. |
| `405` | The request was a `GET`. Send JSON-RPC over `POST`. MCP clients send one `GET` to open an optional SSE stream and read the `405` as "no stream offered"; that is expected and does not count toward the rate limit. |
| `400` "Only one request_booking call is allowed per request" or "At most 4 tool calls are allowed per request" | Split the JSON-RPC batch into smaller requests. |
| "No published empty leg flight matches that id." | The flight is no longer published (booked, withdrawn or departed), or the id is wrong. Run `search_empty_legs` again. |
| `get_charter_estimate` answers "Estimate temporarily unavailable. Please try again." | The same message is returned when a place name is not recognised. Retry with a major city name or an airport code such as `KTEB`. |

## Local installer and stdio bridge (npm package coming soon)

The `skyaccess-mcp` npm package is not published yet, so `npx skyaccess-mcp` does not work today. Use the hosted endpoint above. Once published, the package will:

1. Write the SkyAccess entry into the config of supported MCP clients found on the machine (Cursor and the Claude Desktop config file), so nobody has to hand-edit JSON.
2. Provide a stdio to HTTP bridge for clients that cannot take a URL.

### Run it from a clone today

The connectivity check and the bridge already work from a clone of this repository. They need Node 20 or later and no dependencies:

```bash
git clone https://github.com/sky-access/skyaccess-mcp.git
cd skyaccess-mcp
node bin/skyaccess-mcp.mjs doctor
```

`doctor` checks the endpoint and lists its tools. It exits non-zero if the endpoint is unreachable or returns no tools.

To use the bridge with a stdio-only client such as Claude Desktop's `claude_desktop_config.json`, point it at the absolute path of your clone:

```json
{
  "mcpServers": {
    "skyaccess": {
      "command":

Lo que la gente pregunta sobre skyaccess-mcp

¿Qué es sky-access/skyaccess-mcp?

+

sky-access/skyaccess-mcp es mcp servers para el ecosistema de Claude AI. One command to add the SkyAccess private-jet empty-leg MCP server to Claude, Cursor, or any MCP client. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-09-30.

¿Cómo se instala skyaccess-mcp?

+

Puedes instalar skyaccess-mcp clonando el repositorio (https://github.com/sky-access/skyaccess-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar sky-access/skyaccess-mcp?

+

Nuestro agente de seguridad ha analizado sky-access/skyaccess-mcp y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene sky-access/skyaccess-mcp?

+

sky-access/skyaccess-mcp es mantenido por sky-access. La última actividad registrada en GitHub es del 2026-09-30, con 0 issues abiertos.

¿Hay alternativas a skyaccess-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega skyaccess-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: sky-access/skyaccess-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/sky-access-skyaccess-mcp)](https://claudewave.com/repo/sky-access-skyaccess-mcp)
<a href="https://claudewave.com/repo/sky-access-skyaccess-mcp"><img src="https://claudewave.com/api/badge/sky-access-skyaccess-mcp" alt="Featured on ClaudeWave: sky-access/skyaccess-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a skyaccess-mcp