Airline Group Booking Quote with Kaiban MCP Integration

Discover how the Kaiban platform enables interoperability between AI agents built with any SDK. This example demonstrates integrating a KaibanJS group booking quote team with the Kaiban platform using the A2A protocol and MCP (Model Context Protocol) for card lifecycle management—an alternative to the Kaiban SDK approach.

A group of airline passengers smiling together in their seats, representing group travel

Kaiban Platform: SDK-Agnostic Interoperability

The Kaiban platform provides enterprise workflow management and agent orchestration that works with agents built using any SDK or framework. Through the standardized A2A (Agent-to-Agent) protocol, you can integrate KaibanJS teams either via the Kaiban SDK or the Kaiban MCP (Model Context Protocol)—giving you flexibility in how your agents interact with cards, boards, and workflow states on the platform.

This example showcases the MCP-based approach: instead of using the Kaiban SDK directly, KaibanJS agents call MCP tools (get_card, move_card, update_card, create_card_activities) to manage the card lifecycle. This is ideal when you prefer MCP tooling or need to align with existing MCP infrastructure.

Use Case: Instant Group Booking Quote Automation

Inspired by the Kaiban use case, this example automates the generation of group booking quotes from unstructured inquiries. Airlines face manual processing, 24–72 hour response times, and growing backlogs. AI agents can transform this workflow.

Manual Processing

Group booking requests arrive via forms, emails, or phone. Human agents must interpret each request before creating a quote.

Delayed Response

Most airlines take 24–72 hours to return a quote. Slow turnaround erodes conversion and customer loyalty.

Missed Revenue

Manual workflows lead to backlogs. One major airline had over 250 unprocessed quote requests.

Shrinking Teams

Post-pandemic cuts stretched group desks. A 32% staff reduction led to a 57% drop in group revenue for one carrier.

The Solution: A2A Protocol + Kaiban MCP

The KaibanJS team receives A2A activities from the Kaiban platform. Card lifecycle (get card, move to doing/done, update result, activities) is handled by agents using Kaiban MCP tools via the @modelcontextprotocol/sdk with Streamable HTTP transport.

MCP Instead of SDK

Uses Kaiban MCP tools for card operations instead of the Kaiban SDK. Ideal for MCP-first architectures and tool-based agent designs.

A2A Protocol

Communication follows the A2A protocol. Kaiban sends activities to the agent endpoint; the executor processes them and triggers the team.

Card Lifecycle via MCP

Agents use MCP tools to get cards, move them (TODO → DOING → DONE), update results, and create activities for audit trails.

Error Handling

On team failure, the executor calls MCP move_card to BLOCKED and logs activities for manual review.

Integration Architecture

End-to-end flow from Kaiban.io to KaibanJS team via A2A and MCP

1

Kaiban Sends A2A Activity

When a card is created or moved in a Kaiban board, the platform sends an A2A message with Kaiban activity data (card_id, board_id, team_id, activity type).

2

Executor Validates via MCP

The A2A executor receives the activity, calls MCP get_card to validate the card (description present, column is todo), then starts the Group Booking Quote Team.

3

Task 0: Get Card & Move to Doing (MCP)

The Kaiban Card Sync Agent uses MCP tools: gets the card, extracts the description (inquiry text), moves the card to doing, and passes the inquiry to the next task.

4

Tasks 1–3: Extract, Validate, Quote

The team extracts and validates the inquiry (origin, destination, dates, pax), checks availability and pricing (mock tools), and generates the final quote text.

5

Task 4: Update Card & Move to Done (MCP)

The Kaiban Card Sync Agent uses MCP update_card and move_card to write the quote to the card and move it to done, with activities logged.

Key Components

  • Kaiban MCP Client: Uses @modelcontextprotocol/sdk with Streamable HTTP transport; exposes get_card, move_card, update_card, create_card_activities
  • A2A Executor: Parses Kaiban activities, validates cards via MCP, starts team; on error calls MCP move_card to blocked
  • Kaiban Card Sync Agent: Handles Task 0 and Task 4 using Kaiban MCP tools
  • Group Booking Team: 5 tasks, 4 agents (Extract & Validate, Availability & Pricing, Quote Generation)

KaibanJS Team Structure & MCP Tools

Sequential team with 5 tasks and 4 agents; Kaiban interaction via MCP only

Team Flow

  1. Task 0: Get card & move to doing (Kaiban Card Sync Agent, MCP tools) → output: userMessage (inquiry)
  2. Task 1: Extract & Validate inquiry (Inquiry Extraction & Validation Agent)
  3. Task 2: Availability & Pricing (Availability & Pricing Agent, mock tools)
  4. Task 3: Generate Quote (Quote Generation Agent)
  5. Task 4: Update card & move to done (Kaiban Card Sync Agent, MCP tools)

Kaiban MCP Tools

The Kaiban MCP client converts JSON Schema from the MCP server to Zod schemas for KaibanJS agents:

  • get_card – Fetch card by id
  • move_card – Move card to column (todo/doing/done/blocked)
  • update_card – Update card result/status
  • create_card_activities – Log status/column changes

Config: KAIBAN_MCP_URL or KAIBAN_TENANT + KAIBAN_ENVIRONMENT, KAIBAN_API_TOKEN.

Interactive Demo

Watch how the KaibanJS group booking quote team integrates with the Kaiban platform via A2A and MCP

Demo: KaibanJS Group Booking Quote Team with Kaiban MCP

See how cards created in the Kaiban platform trigger the KaibanJS team, which uses MCP tools to manage the card lifecycle while extracting, validating, and generating instant group booking quotes.

View Source Code on GitHub

MCP vs SDK: Two Paths to Kaiban Integration

Choose the integration approach that fits your architecture

Kaiban MCP (This Example)Kaiban SDK (e.g. Revenue Management Example)
Uses @modelcontextprotocol/sdk with Streamable HTTPUses @kaiban/sdk for direct API calls
Card operations via MCP tools: get_card, move_card, update_card, create_card_activitiesCard operations via SDK methods (cards, activities, columns)
Agents invoke tools; tool schemas from MCP server (JSON Schema → Zod)Kaiban Controller orchestrates workflow; no agent tool calls for card ops
Ideal for MCP-first designs, tool-based agentsIdeal for controller-driven workflows, SDK familiarity

Getting Started

Follow the Kaiban quick start, then run the group booking example:

1. Clone and Install

git clone https://github.com/kaiban-ai/kaiban-agents-starter.git
cd examples/airline-group-booking-quote-mcp-kaibanjs
npm install

2. Configure Environment

KAIBAN_MCP_URL=https://<tenant>-<env>.kaiban.io/mcps/kaiban/mcp
KAIBAN_API_TOKEN=your-token
OPENAI_API_KEY=your-key
A2A_BASE_URL=your-public-url

3. Register Agent in Kaiban

Register using Agent Card URL and Agent URL. Copy the Agent ID to KAIBAN_AGENT_ID or KAIBAN_GROUP_BOOKING_QUOTE_AGENT_ID.

4. Assign to Board & Run

Assign the agent to a Kaiban board. Create cards with group booking inquiries in the description. Run npm run dev and watch cards move through TODO → DOING → DONE.

Ready to Build Group Booking Automation?

The Kaiban platform supports both SDK and MCP integration. Use KaibanJS with either approach to build instant group booking quote automation and other airline workflows.

GitHub Stars

We’re almost there! 🌟 Help us hit 100 stars!

Star KaibanJS - Only 100 to go! ⭐