Skip to main content
Glama
dumko2001

Beckn Mobility MCP Server

by dumko2001

Beckn Mobility MCP Server

A generic Model Context Protocol (MCP) server for the Beckn Mobility domain. This server acts as a Buyer Application Platform (BAP), enabling AI agents (like Claude, Gemini, etc.) to search for cabs, view prices, and book rides using the open Beckn Protocol (e.g., Namma Yatri, ONDC).

Features

  • Generic BAP Implementation: Connects to any Beckn-compliant Mobility BPP.

  • MCP Tools: Exposes search_cabs, select_ride, init_booking, and confirm_booking as AI tools.

  • Async Webhook Handling: Robust WebhookManager handles Beckn's asynchronous callbacks with timeouts and request correlation.

  • Secure Signing: Implements Ed25519 request signing required by the Beckn Registry.

  • Hono Server: Built on Hono for high-performance HTTP handling and Server-Sent Events (SSE).

  • Verification Scripts: Includes a suite of scripts to verify crypto signing and end-to-end flows.

Prerequisites

  • Node.js v18+

  • A public URL (using ngrok or a cloud deployment) for receiving webhooks.

  • Registration with a Beckn Registry (e.g., Namma Yatri Sandbox).

Installation

  1. Clone the repository:

    git clone https://github.com/<YOUR_USERNAME>/mcp-beckn-mobility.git cd mcp-beckn-mobility
  2. Install dependencies:

    npm install

Configuration

  1. Generate Keys: Run the helper script to generate your Ed25519 signing keys.

    npx tsx src/generate_keys.ts

    Copy the output (BAP ID, Public Key, Private Key).

  2. Setup Environment: Copy .env.example to .env (or create it) and fill in your details:

    # Beckn Registry Details BAP_ID=mcp-mobility-bap-<TIMESTAMP> UNIQUE_KEY_ID=key1 SIGNING_PRIVATE_KEY=<YOUR_PRIVATE_KEY> SIGNING_PUBLIC_KEY=<YOUR_PUBLIC_KEY> # URLs BAP_URI=https://<YOUR_NGROK_URL> # Must be public! BPP_URI=https://gateway.nammayatri.in/search # Or local mock PORT=3000
  3. Register: Use your BAP ID and Public Key to register on the Namma Yatri / Beckn Registry.

Usage

  1. Start the Server:

    npm run dev
  2. Connect via Ngrok (if running locally):

    ngrok http 3000

    Update

  3. Connect your AI Client: Configure your MCP Client (e.g., Claude Desktop) to connect to the SSE endpoint:

    • URL: http://localhost:3000/sse

Verification

We have included scripts to verify the system before going live:

  • Verify Crypto: Checks if your keys and signing logic are mathematically correct.

    npx tsx src/verify_crypto.ts
  • Verify Full Flow (Local): Runs a local Mock BPP and tests the full HTTP request/response loop.

    npx tsx src/verify_full_flow.ts
  • Black Box Test: Simulates an MCP Client connecting via SSE and calling tools.

    npx tsx src/verify_mcp_client.ts

Project Structure

  • src/index.ts: Main server entry point (Hono app).

  • src/tools/mobilityTools.ts: MCP Tool definitions (search_cabs, etc.).

  • src/lib/becknClient.ts: Handles Beckn protocol communication and signing.

  • src/lib/webhookManager.ts: Manages async callbacks.

  • src/lib/honoTransport.ts: Custom MCP Transport for Hono.

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dumko2001/mcp-beckn-mobility'

If you have feedback or need assistance with the MCP directory API, please join our Discord server