Connect your AI agent to Jinko in under 2 minutes.
One URL and your agent can search flights, compare prices, and book travel.
Connect via MCP OAuth
MCP clients that support OAuth with Dynamic Client Registration (DCR) authenticate automatically. Just provide the endpoint — the client handles discovery, registration, and the browser-based sign-in flow (OAuth 2.1 with PKCE). No configuration needed.
Supported clients: Claude Desktop, Claude Code, ChatGPT, Cursor, and any MCP client with OAuth/DCR support.
Claude Desktop / Claude Web
Go to Settings > Connectors > Add custom connector:
| Field | Value |
|---|
| Name | Jinko Travel |
| URL | https://mcp.builders.gojinko.com/mcp |
Leave OAuth fields empty — Claude handles the auth flow automatically. You’ll sign in with your Jinko account on first use.
Claude Code
claude mcp add --transport http jinko https://mcp.builders.gojinko.com/mcp
OAuth will open a browser window for sign-in on first use.
Cursor
Go to Settings > MCP Servers > Add Server:
{
"mcpServers": {
"jinko": {
"url": "https://mcp.builders.gojinko.com/mcp"
}
}
}
CLI
The CLI uses its own OAuth flow (device authorization via WorkOS) — this is separate from MCP OAuth.
npm install -g @gojinko/cli
jinko auth login
# → select "OAuth — sign in with browser"
The CLI displays a URL and code. Open it in any browser (works over SSH too), approve, and you’re authenticated. Tokens are stored locally and refreshed automatically.
CLI tokens cannot be reused as Bearer tokens on the MCP endpoint — they have different issuers. Use an API key (jnk_*) for programmatic MCP access.
Connect via API Key
For agents, scripts, CI/CD, or any environment without MCP OAuth support.
Get your key
Sign in at the Jinko dashboard — your key starts with jnk_ and gives you 1,000 requests per month. Configure your client
Claude Code
Cursor
Codex
Openclaw
CLI
Other MCP clients
claude mcp add --transport http jinko https://mcp.builders.gojinko.com/mcp --header "Authorization: Bearer jnk_your_key"
{
"jinko": {
"transport": "streamable-http",
"url": "https://mcp.builders.gojinko.com/mcp",
"headers": {
"Authorization": "Bearer jnk_your_key"
}
}
}
# ~/.codex/config.toml
[mcp_servers.jinko]
url = "https://mcp.builders.gojinko.com/mcp"
bearer_token_env_var = "JINKO_API_KEY"
export JINKO_API_KEY=jnk_your_key
// ~/.openclaw/openclaw.json
{
"mcpServers": {
"jinko": {
"type": "remote",
"url": "https://mcp.builders.gojinko.com/mcp",
"headers": {
"Authorization": "Bearer jnk_your_key"
}
}
}
}
jinko auth login --key jnk_your_key
# Or via environment variable (no login needed)
export JINKO_API_KEY=jnk_your_key
Connect to https://mcp.builders.gojinko.com/mcp with the Authorization: Bearer jnk_your_key header.
Try it
Ask your agent:
“Find me a flight from Paris to Barcelona next weekend”
Or try these:
- “What are the cheapest destinations from London in June?”
- “Search direct flights from JFK to LAX on May 15”
- “Find roundtrip flights from CDG to NRT, 7 day trip in July”
Booking flow
Build a trip and hand the user off to the hosted payment page. The canonical flow is:
find-flight → flight-search → trip → quote → (optional: select-ancillaries) → checkout → user pays in browser → confirm-payment
Install
npm install -g @gojinko/cli
Authenticate
jinko auth login --key jnk_YOUR_KEY
Or use OAuth for interactive use:Find a flight
jinko find-flight --from CDG --to JFK --date 2026-05-01
Each result has an offer_token. Pick one.Get live pricing
jinko flight-search --offer-token <offer_token> --format json
Returns a trip_item_token with the exact price.Create a trip
jinko trip \
--trip-item-token <trip_item_token> \
--travelers '[{"first_name":"Jane","last_name":"Doe","date_of_birth":"1990-01-15","gender":"FEMALE","passenger_type":"ADULT"}]' \
--contact '{"email":"jane@example.com","phone":"+33612345678"}'
Returns a trip_id.Quote the trip
jinko quote --trip-id <trip_id>
Returns:
items — what’s in the trip, each with item_id, kind, price, pax_count, available_ancillaries, selected_ancillaries
totals — quoted pricing for the trip
Use the item_id from this response if you want to preselect ancillaries before payment.(Optional) Preselect ancillaries
jinko select-ancillaries \
--trip-id <trip_id> \
--item-id <item_id> \
--select <offer_id_1>,<offer_id_2>
Otherwise your user selects them on the checkout page.Create checkout
jinko checkout --trip-id <trip_id>
Returns a checkout_url and payment session identifiers.Hand the user off
Redirect or link your user to checkout_url. They complete payment on the Jinko-hosted page.
Confirm payment
jinko confirm-payment --trip-id <trip_id> --checkout-session <checkout_session>
This triggers booking and returns the booking confirmation, including booking references and PNRs.
That’s it — full booking with the canonical book flow.
Tips for best results
- Use real traveler data — never fabricate names, dates of birth, or passport details
- Airport codes first — use IATA airport codes like
CDG, JFK, or NRT
- Roundtrip searches return both legs in a single offer — no need to search separately
- JSON format gives your agent structured data, including the
trip_item_token
Need help?