Skip to main content
Glama

Unofficial. Not affiliated with, endorsed by, or supported by ClickBus. The consumer JSON at api.clickbus.com can change without notice. Partner /api/v3/trips 403 HTML is not shipped.

Never pays by default. clickbus_book and clickbus_cancel do nothing unless CLICKBUS_ALLOW_MUTATIONS is enabled and explicit_user_intent is true. Guest tokens cannot charge. Street, phone, email and GPS/latlng polylines are redacted.

Setup in 60 seconds

npx -y clickbus-mcp-unofficial setup
npx -y clickbus-mcp-unofficial auth --from-header "Bearer eyJ…"
npx -y clickbus-mcp-unofficial doctor

Token is not OAuth. Capture a consumer request to api.clickbus.com → copy the Authorization header. Place/trip search still run without a token; pay tools stay blocked.

Stdio snippet (Claude Desktop, Cursor, Grok Bot). Do not set mutations in the snippet:

{
  "mcpServers": {
    "clickbus": {
      "command": "npx",
      "args": ["-y", "clickbus-mcp-unofficial"]
    }
  }
}

See examples/claude-desktop.json and examples/grok-bot.md.

Related MCP server: 99 MCP

Skill or MCP

Same package, two doors. MCP registers tools on stdio/HTTP. The skill is the workflow (places → trips → stop before book) and can drive the same tools through the CLI when the client has no MCP:

npx -y clickbus-mcp-unofficial call clickbus_search_places --json '{"query":"fortaleza"}'

Gates are identical. Copy skill/SKILL.md into your agent skills dir (~/.agents/skills/clickbus/ or Claude/Grok equivalent).

Tools

Kind

Tools

Read · search

clickbus_search_places, clickbus_search_trips, clickbus_search_trips_v5, clickbus_price_preview, clickbus_boarding_points, clickbus_seat_availability

Read · account

clickbus_booking_history, clickbus_track_booking

Meta

clickbus_connection_status, clickbus_capabilities, clickbus_privacy_audit

Gated pay (mutations and intent)

clickbus_book, clickbus_cancel

Intent only

clickbus_logout

HTTP (optional, loopback)

Default transport is stdio. Streamable HTTP binds 127.0.0.1 and checks Origin against http://127.0.0.1:<port> (override with CLICKBUS_MCP_ALLOWED_ORIGIN). This is DNS-rebinding mitigation, not a public server.

npx -y clickbus-mcp-unofficial --http
# GET  http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp

Security

Tokens live in ~/.clickbus-mcp/tokens.json (0600). They are not in git, the npm tarball, or default examples. Full notes: SECURITY.md. Agents: llms.txt.

Tests

npm test

No live ClickBus login required.

Available Tools

14 tools
clickbus_boarding_pointsClickBus boarding pointsB
Read-onlyIdempotent

Terminals from live trip JSON. Dedicated boarding URLs 404/500.

Inputs: to (required), from (required), departure_date (required), privacy_mode, +1 more.

clickbus_bookBook a ClickBus ticket (gated)A
Destructive

Fail-closed. Needs CLICKBUS_ALLOW_MUTATIONS and explicit_user_intent. Guest tokens cannot charge. Default examples never enable this.

Inputs: to (required), from (required), departure_date (required), trip_id, +2 more.

clickbus_booking_historyClickBus booking historyB
Read-onlyIdempotent

Past consumer bookings. Read-only. Street/phone/GPS redacted.

Inputs: privacy_mode, response_format.

clickbus_cancelCancel a ClickBus booking (gated)A
Destructive

Fail-closed. Needs CLICKBUS_ALLOW_MUTATIONS and explicit_user_intent. Guest tokens cannot charge.

Inputs: booking_id (required), response_format, explicit_user_intent.

clickbus_capabilitiesClickBus capabilitiesB
Read-onlyIdempotent

What this unofficial MCP can read and which writes stay gated.

Inputs: response_format.

clickbus_connection_statusClickBus connection statusC
Read-onlyIdempotent

Local doctor: token present, mutations off by default, unofficial ClickBus consumer surface.

Inputs: response_format.

clickbus_logoutClear local ClickBus tokenA
DestructiveIdempotent

Deletes ~/.clickbus-mcp/tokens.json. Requires explicit_user_intent.

Inputs: response_format, explicit_user_intent.

clickbus_price_previewClickBus price/tax previewC
Read-onlyIdempotent

Prices and installments from live GET /api/v4/trips. Dedicated preview URL 404/405.

Inputs: to (required), from (required), departure_date (required), privacy_mode, +1 more.

clickbus_privacy_auditClickBus privacy auditA
Read-onlyIdempotent

Shows redaction defaults (street/phone/GPS) and that book is off unless both gates are set.

Inputs: response_format.

clickbus_search_placesSearch ClickBus placesA
Read-onlyIdempotent

Read-only place search (terminals/cities). Does not book a ticket.

Inputs: query (required), privacy_mode, response_format.

clickbus_search_tripsSearch ClickBus trips and pricesA
Read-onlyIdempotent

Read-only trip search on /api/v4/trips. Does not book. GPS/street redacted.

Inputs: to (required), from (required), departure_date (required), privacy_mode, +1 more.

clickbus_search_trips_v5Search ClickBus trips v5B
Read-onlyIdempotent

Read-only GET /api/v5/trips (JSON 200). Does not book.

Inputs: to (required), from (required), departure_date (required), privacy_mode, +1 more.

clickbus_seat_availabilityClickBus seat countsB
Read-onlyIdempotent

availableSeats/totalSeats from live trip JSON. Full seat map HTTP 500 is an honest gap.

Inputs: to (required), from (required), departure_date (required), privacy_mode, +1 more.

clickbus_track_bookingTrack a ClickBus bookingB
Read-onlyIdempotent

Status only. Does not return GPS polylines or passenger documents.

Inputs: booking_id (required), privacy_mode, response_format.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 14 tools

    Disambiguation3/5

    Several tools overlap or could be confused: clickbus_search_trips and clickbus_search_trips_v5 appear to do nearly the same thing, clickbus_price_preview overlaps with trip search pricing, and clickbus_boarding_points vs clickbus_search_places both relate to terminals/cities. The descriptions help, but the boundaries are not always crisp.

    Naming Consistency3/5

    All tools share the clickbus_ prefix and snake_case style, but the naming pattern is mixed: some are verb_noun (search_trips, track_booking), some are noun-only (boarding_points, seat_availability), and some are bare verbs (book, cancel, logout). Consistent prefix helps, but the overall convention is not uniform.

    Tool Count4/5

    14 tools is within a reasonable range for a travel/booking domain covering search, pricing, availability, booking, cancellation, history, and account/status operations. A few tools are diagnostic or meta-oriented (connection_status, capabilities, privacy_audit), but they do not make the count feel bloated.

    Completeness4/5

    The set covers the core ClickBus workflow: place search, trip search, pricing, boarding points, seat availability, booking, cancellation, history, and tracking. There are notable gaps such as full seat map selection and detailed booking document access, but the main lifecycle is present and usable.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      Enables AI agents to get 99Pop and 99Moto fare estimates, ride history, and live tracking while keeping credentials local and ride requests fail-closed by default.
      14
      32 npm
      1
      MIT
    • A
      license
      C
      quality
      B
      maintenance
      Provides AI agents with access to Zé Delivery's product catalog, search, and order tracking, with order placement and cancellation available only after explicit user consent and opt-in.
      22
      35 npm
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Provides AI agents with a structured API for travel planning, enabling them to read trip data, search places, calculate routes, and create/validate itinerary change proposals that require explicit human approval before being applied.
      15
      MIT