_ registry / mcp streamable-http · checked 2h ago

feminiqrides

https://www.feminiqrides.nl

Registry code: d1bbdf9a41cf5daa

api record

Feminiq Rides is a chauffeur service in Amsterdam run by a qualified female executive chauffeur (BMW 5 Series Touring, Mercedes V-Class). Prices are per vehicle in EUR including 9% VAT. Flow: list_services to pick a route, tour or car; get_quote for the exact price; show the customer the total, how they pay and the Terms (https://www.feminiqrides.nl/terms.html); only after they approve and accept the Terms, call request_booking with the SAME ride fields, the quoteToken and their real name, email and phone. The customer then confirms the request with the link emailed to them. Every ride is a…

endpoint
https://www.feminiqrides.nl/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is feminiqrides live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is feminiqrides free to use?
Yes — the hub reached it with no key and no payment.
What tools does feminiqrides have?
3 tools: request_booking, get_quote, list_services.
Is feminiqrides safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
341ms

last good check

priced tools
0

of 3 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 3 tools
1 open 2 never probed 1 of 3 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_services open 2h ago

    Fixed-fare Schiphol transfers (route ids, per-car prices), private tours (tour ids, durations, per-car prices), vehicles with passenger and luggage limits, and booking rules. No side effects.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • request_booking unknown never probed

    Sends the quoted ride as a booking request. Call ONLY after the customer has seen the quoted total and how they pay, and has explicitly approved it and accepted the Terms (https://www.feminiqrides.nl/terms.html). Send exactly the same ride fields as the get_quote call plus its unchanged quoteToken and the customer's contact details. Nothing is charged now. The customer first gets an email with a Confirm link (valid 24 hours); after that click Feminiq Rides confirms personally and emails a SumUp payment request. Returns groupId and groupToken; pass them as joinGroup on further rides so they are confirmed and paid together. Repeating the identical call does not create a second booking.

    mcp-tool

    {
      "type": "object",
      "required": [
        "type",
        "car",
        "date",
        "time",
        "passengers",
        "quoteToken",
        "name",
        "email",
        "phone",
        "acceptedTerms"
      ],
      "properties": {
        "car": {
          "enum": [
            "bmw5",
            "vclass"
          ],
          "type": "string",
          "description": "BMW 5 Series Touring (bmw5) max 4 passengers, Mercedes V-Class (vclass) max 7 passengers."
        },
        "date": {
          "type": "string",
          "format": "date",
          "description": "Local date in Europe/Amsterdam."
        },
        "lang": {
          "enum": [
            "en",
            "nl",
            "de",
            "fr",
            "es",
            "ar",
            "zh-CN"
          ],
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 2
        },
        "time": {
          "type": "string",
          "pattern": "^\\d{2}:\\d{2}$",
          "description": "Local time in Europe/Amsterdam, between 04:00 and 20:00."
        },
        "type": {
          "enum": [
            "fixed",
            "custom",
            "tour"
          ],
          "type": "string"
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "notes": {
          "type": "string",
          "maxLength": 1000
        },
        "phone": {
          "type": "string",
          "maxLength": 30,
          "minLength": 7,
          "description": "Customer's phone number, with country code (for example +31 6 1234 5678)."
        },
        "flight": {
          "type": "string",
          "maxLength": 24
        },
        "pickup": {
          "type": "string",
          "maxLength": 180,
          "minLength": 4,
          "description": "Required for custom rides and tours: agreed pickup address or hotel, preserved in review and confirmations."
        },
        "address": {
          "type": "string",
          "maxLength": 180,
          "minLength": 4,
          "description": "Fixed routes only: the non-airport pickup/drop-off address. The fare follows the route zone of the address (postcode first, then town name; a hotel or town named without a postcode is placed by a server-side lookup, and the selected route applies if that lookup fails). An address whose Dutch postcode is in no fixed-route zone is refused with error code address_zone; book it as a single ride."
        },
        "dropoff": {
          "type": "string",
          "maxLength": 180,
          "minLength": 4,
          "description": "Required for custom rides: drop-off address."
        },
        "payment": {
          "enum": [
            "deposit",
            "full"
          ],
          "type": "string",
          "default": "deposit",
          "description": "How the customer pays once the ride is confirmed: deposit = a payment request for 25% of the price, rest on the day of the ride; full = a payment request for the full price. With a returnTrip each leg gets its own payment request on these terms."
        },
        "routeId": {
          "enum": [
            "ams-spl",
            "noord-spl",
            "zaandam-spl",
            "aveen-spl",
            "dh-spl",
            "rtm-spl",
            "almere-spl",
            "almere-buiten-spl",
            "utrecht-spl",
            "eindhoven-spl"
          ],
          "type": "string",
          "description": "Fixed routes only; ids from /data/rates.json. The server reprices to the route the address belongs to."
        },
        "tourIds": {
          "type": "array",
          "items": {
            "enum": [
              "amsterdam-city-tour",
              "countryside-tour",
              "keukenhof-tour",
              "aalsmeer-flower-auction",
              "dutch-water-defence-line",
              "giethoorn-day-trip",
              "south-holland-tour",
              "rotterdam-kinderdijk",
              "kroller-muller",
              "efteling-day-trip",
              "bruges-day-trip",
              "roermond-outlet",
              "mall-of-the-netherlands",
              "batavia-stad",
              "style-outlet-amsterdam"
            ],
            "type": "string"
          },
          "maxItems": 5,
          "minItems": 1,
          "description": "Tours only; ids from /data/tours.json.",
          "uniqueItems": true
        },
        "direction": {
          "enum": [
            "to",
            "from"
          ],
          "type": "string",
          "description": "Fixed routes only: to or from Schiphol."
        },
        "joinGroup": {
          "type": "object",
          "required": [
            "id",
            "token"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "token": {
              "type": "string"
            }
          },
          "description": "Optional. Adds this ride to the request group of an earlier ride, so the owner approves them together and the customer receives ONE payment request (the sum of each ride's 25%, or full price where chosen). Use the `groupId` and `groupToken` returned for the earlier request. It is ignored (the ride stands alone) when the token or email does not match, or once any ride of the group has been approved."
        },
        "driverName": {
          "type": "string",
          "maxLength": 60
        },
        "passengers": {
          "type": "integer",
          "maximum": 7,
          "minimum": 1
        },
        "quoteToken": {
          "type": "string",
          "maxLength": 2048,
          "minLength": 1,
          "description": "Signed token returned by POST /api/quote. Send unchanged only after the customer approves that quote's total and payment. It binds the normalized journey, vehicle, passengers, payment choice, return trip, options, fare, rules version and 15-minute expiry. HTTP 409 reviewRequired=true means obtain a new quote and renewed customer approval before retrying. Never supply your own price."
        },
        "returnTrip": {
          "type": "object",
          "required": [
            "date",
            "time"
          ],
          "properties": {
            "date": {
              "type": "string",
              "format": "date",
              "description": "Local date of the return ride in Europe/Amsterdam."
            },
            "time": {
              "type": "string",
              "pattern": "^\\d{2}:\\d{2}$",
              "description": "Local pickup time of the return ride in Europe/Amsterdam, between 04:00 and 20:00, at least 1 hour after the first ride."
            },
            "flight": {
              "type": "string",
              "maxLength": 24,
              "description": "Optional flight number for the return ride."
            }
          },
          "description": "Airport transfers (fixed) and custom rides only; tours fail with retour_type, and a value that is not an object fails with retour. Books the return leg as well, with the same vehicle, passengers and luggage: on a fixed route the opposite direction between the same address and Schiphol, priced as a second ride at the route price; on a custom ride from the drop-off back to the pickup, where the fare estimate covers both legs and is split evenly over them. The return must be at least one hour after the first ride (retour_order), between 04:00 and 20:00 (retour_hours), not on a blocked date (retour_date_blocked) and at most 2 years ahead (date_range); missing or invalid values fail with retour_date, retour_time or retour_datetime. There is no name card on either leg (meet_greet_unavailable). The request is stored as two linked bookings, bookingId and `<bookingId>-ret` (so bookingId may have at most 76 characters), confirmed together and paid with one payment request: 25% of the combined price of the legs, or all of it with payment=full."
        },
        "luggageLarge": {
          "type": "integer",
          "default": 0,
          "maximum": 8,
          "minimum": 0,
          "description": "Large check-in suitcases. The BMW takes at most 3; more needs the V-Class (error code luggage)."
        },
        "luggageSmall": {
          "type": "integer",
          "default": 0,
          "maximum": 8,
          "minimum": 0,
          "description": "Pieces of hand luggage. The BMW takes at most 3; more needs the V-Class (error code luggage)."
        },
        "acceptedTerms": {
          "type": "boolean",
          "const": true,
          "description": "Must be an explicit act by the customer after reading the Terms & Conditions. Agents must not set this on a customer's behalf without their consent."
        },
        "ticketService": {
          "type": "boolean",
          "description": "Tours only: attraction ticket purchase assistance, requires 28 days' notice."
        }
      }
    }
    arguments 235 lines
  • get_quote unknown 2h ago

    Exact price and rule check for one ride (no booking, no email, no payment). Returns the total, any online deposit and a quoteToken valid for 15 minutes. Per type: fixed needs routeId, direction and address; custom needs pickup and dropoff; tour needs tourIds and pickup. Fixed fares only apply inside each route's zone: error address_zone means quote a custom ride instead. Does not check driver availability.

    mcp-tool

    {
      "type": "object",
      "required": [
        "type",
        "car",
        "date",
        "time",
        "passengers"
      ],
      "properties": {
        "car": {
          "enum": [
            "bmw5",
            "vclass"
          ],
          "type": "string",
          "description": "BMW 5 Series Touring (bmw5) max 4 passengers, Mercedes V-Class (vclass) max 7 passengers."
        },
        "date": {
          "type": "string",
          "format": "date",
          "description": "Local date in Europe/Amsterdam."
        },
        "lang": {
          "enum": [
            "en",
            "nl",
            "de",
            "fr",
            "es",
            "ar",
            "zh-CN"
          ],
          "type": "string"
        },
        "time": {
          "type": "string",
          "pattern": "^\\d{2}:\\d{2}$",
          "description": "Local time in Europe/Amsterdam, between 04:00 and 20:00."
        },
        "type": {
          "enum": [
            "fixed",
            "custom",
            "tour"
          ],
          "type": "string"
        },
        "notes": {
          "type": "string",
          "maxLength": 1000
        },
        "flight": {
          "type": "string",
          "maxLength": 24
        },
        "pickup": {
          "type": "string",
          "maxLength": 180,
          "minLength": 4,
          "description": "Required for custom rides and tours: agreed pickup address or hotel, preserved in review and confirmations."
        },
        "address": {
          "type": "string",
          "maxLength": 180,
          "minLength": 4,
          "description": "Fixed routes only: the non-airport pickup/drop-off address. The fare follows the route zone of the address (postcode first, then town name; a hotel or town named without a postcode is placed by a server-side lookup, and the selected route applies if that lookup fails). An address whose Dutch postcode is in no fixed-route zone is refused with error code address_zone; book it as a single ride."
        },
        "dropoff": {
          "type": "string",
          "maxLength": 180,
          "minLength": 4,
          "description": "Required for custom rides: drop-off address."
        },
        "payment": {
          "enum": [
            "deposit",
            "full"
          ],
          "type": "string",
          "default": "deposit",
          "description": "How the customer pays once the ride is confirmed: deposit = a payment request for 25% of the price, rest on the day of the ride; full = a payment request for the full price. With a returnTrip each leg gets its own payment request on these terms."
        },
        "routeId": {
          "enum": [
            "ams-spl",
            "noord-spl",
            "zaandam-spl",
            "aveen-spl",
            "dh-spl",
            "rtm-spl",
            "almere-spl",
            "almere-buiten-spl",
            "utrecht-spl",
            "eindhoven-spl"
          ],
          "type": "string",
          "description": "Fixed routes only; ids from /data/rates.json. The server reprices to the route the address belongs to."
        },
        "tourIds": {
          "type": "array",
          "items": {
            "enum": [
              "amsterdam-city-tour",
              "countryside-tour",
              "keukenhof-tour",
              "aalsmeer-flower-auction",
              "dutch-water-defence-line",
              "giethoorn-day-trip",
              "south-holland-tour",
              "rotterdam-kinderdijk",
              "kroller-muller",
              "efteling-day-trip",
              "bruges-day-trip",
              "roermond-outlet",
              "mall-of-the-netherlands",
              "batavia-stad",
              "style-outlet-amsterdam"
            ],
            "type": "string"
          },
          "maxItems": 5,
          "minItems": 1,
          "description": "Tours only; ids from /data/tours.json.",
          "uniqueItems": true
        },
        "direction": {
          "enum": [
            "to",
            "from"
          ],
          "type": "string",
          "description": "Fixed routes only: to or from Schiphol."
        },
        "driverName": {
          "type": "string",
          "maxLength": 60
        },
        "passengers": {
          "type": "integer",
          "maximum": 7,
          "minimum": 1
        },
        "returnTrip": {
          "type": "object",
          "required": [
            "date",
            "time"
          ],
          "properties": {
            "date": {
              "type": "string",
              "format": "date",
              "description": "Local date of the return ride in Europe/Amsterdam."
            },
            "time": {
              "type": "string",
              "pattern": "^\\d{2}:\\d{2}$",
              "description": "Local pickup time of the return ride in Europe/Amsterdam, between 04:00 and 20:00, at least 1 hour after the first ride."
            },
            "flight": {
              "type": "string",
              "maxLength": 24,
              "description": "Optional flight number for the return ride."
            }
          },
          "description": "Airport transfers (fixed) and custom rides only; tours fail with retour_type, and a value that is not an object fails with retour. Books the return leg as well, with the same vehicle, passengers and luggage: on a fixed route the opposite direction between the same address and Schiphol, priced as a second ride at the route price; on a custom ride from the drop-off back to the pickup, where the fare estimate covers both legs and is split evenly over them. The return must be at least one hour after the first ride (retour_order), between 04:00 and 20:00 (retour_hours), not on a blocked date (retour_date_blocked) and at most 2 years ahead (date_range); missing or invalid values fail with retour_date, retour_time or retour_datetime. There is no name card on either leg (meet_greet_unavailable). The request is stored as two linked bookings, bookingId and `<bookingId>-ret` (so bookingId may have at most 76 characters), confirmed together and paid with one payment request: 25% of the combined price of the legs, or all of it with payment=full."
        },
        "luggageLarge": {
          "type": "integer",
          "default": 0,
          "maximum": 8,
          "minimum": 0,
          "description": "Large check-in suitcases. The BMW takes at most 3; more needs the V-Class (error code luggage)."
        },
        "luggageSmall": {
          "type": "integer",
          "default": 0,
          "maximum": 8,
          "minimum": 0,
          "description": "Pieces of hand luggage. The BMW takes at most 3; more needs the V-Class (error code luggage)."
        },
        "ticketService": {
          "type": "boolean",
          "description": "Tours only: attraction ticket purchase assistance, requires 28 days' notice."
        }
      }
    }
    arguments 188 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id d1bbdf9a41cf5daa.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/d1bbdf9a41cf5daa/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/d1bbdf9a41cf5daa/badge.svg)](https://brick.blue/agent/d1bbdf9a41cf5daa?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
70%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.