Skip to main content

Mobility Quote Agent

Provider-agnostic A2A agent for mobility quote/discovery. It exposes one skill, get_quote, over JSON-RPC and returns route options sorted by estimated cost.

The first real provider path is SkedGo / TripGo. It is self-serve and useful for multimodal route discovery; booking/payment remains a future provider-specific integration.

The no-key production fallback is Estimated Taxi: it estimates distance, ETA, and fare from a transparent local formula. This is not a live provider price and must be labelled as an estimate.

Human-readable address input is resolved to coordinates with OpenStreetMap Nominatim before providers run. Coordinate input still works directly. The agent also returns a no-price Yandex Go route launcher when coordinates are available. This is a deeplink, not a Yandex price quote or comparison result.

Payment metadata is advertised through the Agent Card and /payment-info. The current default price is 0.001 USDC per quote on Base, paid to 0x55CFe1Dd5d341e5f9D57ADf26f98c8E8727bb3C2. Facilitator-backed verify/settle is wired through OpenX402. Full x402 enforcement is off by default until a live paid request is tested.

Files

a2a-quote-agent/
  server.py                 A2A server: Agent Card + JSON-RPC message/send
  agent_card.py             Builds /.well-known/agent-card.json
  payments.py               x402/Base USDC payment metadata helpers
  client_test.py            Discovery + JSON-RPC smoke test
  MARKETPLACE-LISTING.md    Draft listing for A2A/OpenClaw marketplaces
  providers/
    __init__.py             Provider registry
    base.py                 Provider/Quote contract
    estimate.py             No-key coordinate fare estimator
    mock.py                 Demo providers
    geocode.py              No-key address-to-coordinate resolver
    tripgo.py               Live SkedGo/TripGo adapter
    yandex.py               No-price Yandex Go deeplink builder

Run locally

cd C:\agent\a2a-quote-agent
python server.py 8080
python client_test.py

Agent Card:

http://localhost:8080/.well-known/agent-card.json

Enable TripGo

Get a self-serve key from SkedGo / TripGo, then run:

$env:TRIPGO_API_KEY="YOUR_KEY"
$env:PUBLIC_BASE_URL="http://localhost:8080"
python server.py 8080

TripGo v1 in this agent expects coordinate input:

quote from 25.1972,55.2744 to 25.2532,55.3657

The server can also resolve normal addresses before calling providers:

quote from Dubai Mall to DXB Airport

Resolved coordinates are returned in resolved_route. Address geocoding uses OpenStreetMap Nominatim as a no-key MVP layer; for heavier production traffic, configure Google, TomTom, HERE, or a self-hosted geocoder later.

Coordinate routes and successfully resolved address routes enable route_launchers[] with an "Open in Yandex Go" deeplink.

Mock providers stay enabled by default for demos and health checks. To run only live providers:

$env:INCLUDE_MOCK_PROVIDERS="0"

Payment metadata

The server advertises x402-compatible payment terms without requiring a private key:

$env:PAYMENT_RECEIVE_ADDRESS="0x55CFe1Dd5d341e5f9D57ADf26f98c8E8727bb3C2"
$env:X402_PRICE_USDC="0.001"
$env:X402_ADVERTISE="1"
$env:X402_ENFORCE="0"
$env:X402_FACILITATOR_URL="https://facilitator.openx402.ai"
python server.py 8080

Discovery endpoints:

/.well-known/agent-card.json
/payment-info
/.well-known/payment-info.json
/x402/payment-required

/x402/payment-required returns HTTP 402 with a PAYMENT-REQUIRED header that contains Base64-encoded JSON payment terms. When a paid client retries the JSON RPC endpoint with a PAYMENT-SIGNATURE header, the server posts the payment payload and selected requirements to the facilitator /verify, performs the quote, then posts to /settle and returns PAYMENT-RESPONSE on success.

Keep X402_ENFORCE=0 until a live paid request is tested. With enforcement off, free quote smoke tests continue to work, while paid clients can still submit PAYMENT-SIGNATURE and settle.

With mocks disabled and no live provider configured, coordinate routes still return an estimated fare plus route launchers:

$env:INCLUDE_MOCK_PROVIDERS="0"
python server.py 8080
python test_yandex_launcher.py

That mode is the clean no-approval MVP: transparent estimated fare, no displayed Yandex price, no competitor price comparison, and an "Open in Yandex Go" route deeplink where supported.

Publish checklist

  • Put the server behind public HTTPS.
  • Set PUBLIC_BASE_URL=https://212-47-77-33.sslip.io.
  • Verify https://212-47-77-33.sslip.io/.well-known/agent-card.json.
  • Run python client_test.py https://212-47-77-33.sslip.io.
  • Use MARKETPLACE-LISTING.md for A2A/OpenClaw marketplace submission.

Release files for klo-mobility-quote-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for klo-mobility-quote-mcp 1.0.0
File Size Uploaded
klo_mobility_quote_mcp-1.0.0.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for klo-mobility-quote-mcp 1.0.0
File Interpreter ABI Platform
klo_mobility_quote_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.6 kB

Release files / klo_mobility_quote_mcp-1.0.0.tar.gz

Download URL klo_mobility_quote_mcp-1.0.0.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e51c6baf35d23ae5162ef20d7d53714577df8d13a36885bf9f667cc20210630a
BLAKE2b-256 checksum
How to use checksums
75d2d1d1c2a3e99974d0ac4c6ea353a37d3193268fb1f5647680bf747db50c37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / klo_mobility_quote_mcp-1.0.0-py3-none-any.whl

Download URL klo_mobility_quote_mcp-1.0.0-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b131f5794a39cc0918325e8d7f37a11c805da64859c210d7d36be77df3222dd5
BLAKE2b-256 checksum
How to use checksums
fb7a8559e5e2f52ef654e632bd67cad3c5b42c19f5a7b50c814c3623b7e6d2c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page