MCP Integration

Quick Release supports integration via Model Context Protocol (MCP), enabling AI assistants like Claude Desktop to work with your flights, bookings, and vouchers.

What is MCP?

Model Context Protocol is an open standard that allows language models and AI agents to securely access external tools and data sources. With MCP, you can:

  • Ask Claude to “show me tomorrow’s flights” or “create a booking”
  • Integrate Quick Release into custom AI agents and workflows
  • Automate operations using natural language commands
  • Build LLM-powered applications that need access to flight data

Learn more at modelcontextprotocol.io.

Setting Up Claude Desktop

1. Get your API key

In Quick Release, go to Settings → API. Copy your API key, or press Generate API key if you do not have one yet.

This is the same key used by the HTTP Integrator API. It identifies your operator account — Quick Release works out which operator you are from the key itself, so there is no tenant id to configure.

2. Install Claude Desktop

Download Claude Desktop for macOS or Windows. You will also need Node.js 22 or newer.

3. Add the Quick Release configuration

Edit your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this configuration block:

{
  "mcpServers": {
    "quick-release": {
      "command": "npx",
      "args": ["-y", "@quick-release/mcp"],
      "env": {
        "QR_API_KEY": "paste-your-key-here"
      }
    }
  }
}

Replace paste-your-key-here with the key from Settings → API.

npx downloads the server on first use — there is nothing to install or keep up to date by hand.

4. Restart Claude Desktop

After saving the configuration, restart Claude Desktop. You should see the Quick Release tools available in the Tools panel. Try: “Which flights do I have coming up?”

Available Operations

The MCP server exposes exactly the operations of the standard Quick Release Integrator API — nothing more. The assistant cannot reach any other part of your account.

Queries (read-only)

ToolDescriptionReturns
qr_get_flightsList all upcoming flightsFlights with date, hour, meeting time, period, balloon, location, region, and capacity
qr_get_locationsList active launch locationsLocations with id and name
qr_get_balloonsList active balloons in the fleetBalloons with id, name, capacity, and call sign
qr_get_regionsList available regionsRegions with id and name
qr_get_bookingGet a booking by idContact details, region, flight assignment, passengers, tags
qr_get_voucherGet a voucher by id or reference codeVoucher type, dates, contact details, seats, payment info

Mutations (write operations)

ToolDescriptionRequired Parameters
qr_create_bookingCreate a new bookingcontactName, contactPhone, contactEmail, contactLanguage, regionId
qr_create_voucherCreate a gift vouchervoucherType, voucherReference, issueDate, expiryDate, contactName, adults, paymentStatus, paymentAmount, paymentDate, paymentType
qr_create_flightSchedule a new flightdate, hour (UTC), balloonId, locationId, period
qr_update_booking_flightAssign a booking to a flightbookingId, flightId
qr_remove_booking_flightRemove a booking from its flightbookingId

Example Usage in Claude

Get information

Show me all upcoming flights for the next week.
What balloons do we have available?
Retrieve booking ABC123 and tell me which flight it's assigned to.

Create bookings

Create a booking for John Smith, john@example.com, +32123456789, Dutch language
preference, from the Brussels region. He has 2 passengers.

Manage flights

Schedule a new flight on 2026-03-15 at 08:00 UTC, AM period, using our Cameron
balloon from the Brussels launch site.
Assign booking ABC123 to the morning flight on 15 March.

Claude can chain these: it will call qr_get_balloons and qr_get_locations to resolve the ids it needs before scheduling.

Authentication

The MCP server uses the same authentication as the HTTP Integrator API: a single API key (QR_API_KEY), from Settings → API.

Your key identifies your operator account. Quick Release derives the account from the key, so — unlike a username/password — there is nothing else to configure and the key cannot be pointed at another operator’s data.

The key is read from the environment only. It is never accepted as a tool argument, so it stays out of the assistant’s context and out of conversation transcripts.

If a key is ever exposed, generate a new one in Settings → API. This immediately invalidates the old one.

Rate Limiting & Safety

The MCP server is a client of the HTTP Integrator API and inherits its limits and safeguards:

  • Standard per-account rate limiting applies
  • Only the operations listed above are reachable
  • Changes are logged and auditable
  • The server is stateless and stores no credentials

Troubleshooting

Tools not appearing in Claude

  1. Check that the configuration file has valid JSON syntax
  2. Confirm Node.js 22+ is installed (node --version)
  3. Restart Claude Desktop completely
  4. Check Claude’s logs for connection errors

“Missing QR API key”

QR_API_KEY is not set in the env block of your configuration.

“Quick Release rejected the API key (HTTP 401)”

The key is wrong, or it has been regenerated. Copy it again from Settings → API.

For Developers

The server speaks MCP over stdio and runs locally alongside your MCP client. It is a thin client of the public REST Integrator API — it holds no shared secret of its own.

Configuration

VariableRequiredDefaultPurpose
QR_API_KEYyesYour API key from Settings → API
QR_API_URLnohttps://api.quickrelease.aeroAPI base URL
QR_API_DEVnofalseSet to true to run against the acceptance environment

Building custom agents

Any MCP-compatible client can connect. For example, with the TypeScript SDK:

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

const transport = new StdioClientTransport({
  command: 'npx',
  args: ['-y', '@quick-release/mcp'],
  env: { QR_API_KEY: 'your-api-key' },
});

const client = new Client({ name: 'my-agent', version: '1.0.0' }, { capabilities: {} });

await client.connect(transport);
const tools = await client.listTools();

If you would rather call the API directly, see the standard API documentation — the MCP server exposes the same operations.

Support

For questions or issues, contact the Quick Release team.