Skip to main content
Glama
Flowteller API MCP Server

Flowteller API MCP Server

Official

Flowteller API MCP Server

This is an MCP (Model Context Protocol) server for the Flowteller API. It allows AI clients (like Claude Desktop) to natively interact with the Flowteller backend to search for trips, find locations, and manage bookings.

Installation & Setup for Claude Desktop

Because this project is hosted publicly on GitHub, you do not need to clone it to your computer! You can run it directly using uvx.

  1. Install uv (if you haven't already):

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Configure Claude Desktop: Open your Claude Desktop configuration file:

    • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    Add the following configuration, inserting your actual API key:

    {
      "mcpServers": {
        "flowteller": {
          "command": "uv",
          "args": [
            "--directory",
            "/Users/whoisladleo/Work/flowteller/mcp",
            "run",
            "flowteller-mcp"
         ],
         "env": {
           "FLOWTELLER_API_URL": "http://localhost:8000/api",
           "FLOWTELLER_MCP_API_KEY": "your_secure_mcp_api_key_here"
         }
       }
     }
      }
   

3. **Restart Claude Desktop.** You should now see the Flowteller tools and prompts available!

## Testing Locally (Inspector)
If you are developing or modifying the code locally, you can use the interactive MCP Inspector UI:
```bash
npx @modelcontextprotocol/inspector uv run app/server.py

Available Tools

9 tools
create_bookingA
Create a new booking.

Args:
    trip_id: The ID of the trip to book.
    passengers: A list of dictionaries representing passengers. Each passenger needs:
        name, phone_number, age_group_id, seat_number, pick_point_id, drop_point_id, 
        gender (M or F), identification_type_id, id_number.
    provider: The provider of the trip (e.g. mysafari).
    origin_id: Optional origin ID.
    destination_id: Optional destination ID.
    travel_date: Optional travel date (YYYY-MM-DD).

Inputs: trip_id (required), provider (required), passengers (required), origin_id, +2 more.

generate_receiptB
Generate a formatted text receipt for a given booking reference.

Args:
    booking_ref: The booking reference ID.
    provider: The provider of the booking.

Inputs: booking_ref (required), provider. Returns: result

get_booking_historyB
Get the agent's booking history.

Args:
    page: Page number (starts at 1).
    per_page: Items per page (max 100).
    status: Filter by booking status.
    provider: Filter by provider.

Inputs: page, status, per_page, provider.

get_destinationsA
Get a list of available destination locations for a given origin.

Args:
    origin_id: The ID of the origin location.
    provider: The booking provider name. Default is 'bus'.

Inputs: origin_id (required), provider.

get_health_statusA

Check the health status of the Flowteller API.

Inputs: no named parameters.

get_originsB
Get a list of available origin locations for bookings.

Args:
    provider: The booking provider name (e.g., 'bus', 'mysafari', 'otapp'). Default is 'bus'.

Inputs: provider.

get_payment_providersA

Get the list of available mobile money payment providers for customer push payments.

Inputs: no named parameters.

initiate_paymentA
Initiate a customer push payment request for a booking.

Args:
    booking_id: The ID of the booking to pay for.
    provider: The provider of the booking (e.g. mysafari).
    customer_phone: The phone number of the customer for mobile money push.
    payment_provider: Optional mobile money provider name (e.g. VODACOM, TIGO).

Inputs: provider (required), booking_id (required), customer_phone (required), payment_provider.

search_tripsA
Search for available trips between an origin and destination on a specific date.

Args:
    origin_name: The name of the origin location (e.g., 'Mwanza').
    destination_name: The name of the destination location (e.g., 'Dodoma').
    travel_date: The travel date in YYYY-MM-DD format.
    provider: The booking provider name. Default is 'bus'.
    adults: Number of adult passengers.
    children: Number of child passengers.

Inputs: origin_name (required), travel_date (required), destination_name (required), adults, +2 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: health, booking history, receipt generation, location lookups, trip search, booking creation, payment providers, and payment initiation. No two tools overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_origins, create_booking, initiate_payment). The naming is predictable and uniform.

    Tool Count5/5

    With 9 tools, the server is well-scoped for a travel booking API. The count is within the ideal range and each tool serves a clear need without redundancy.

    Completeness4/5

    The core booking lifecycle (search trips, create booking, initiate payment, view history, generate receipt) is covered. Missing cancellation or individual booking retrieval are minor gaps that agents can work around.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers