Washlib

Find car wash centers in France, compare prices, check live availability, and look up a booking.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
88%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'recommend_wash' description lacks action verbin recommend_wash

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~664Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "washlib": {
      "url": "https://washlib.com/api/mcp"
    }
  }
}

Remote endpoints

https://washlib.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_available_slots(location, date, serviceType)

Find open car-wash time slots near a location on a given day. Returns centers with their available slots and busyness level.

Input Schema

{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "minLength": 1,
      "description": "City, postal code, center name or slug, e.g. \"Paris\" or \"75017\""
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Target day in YYYY-MM-DD (Europe/Paris)"
    },
    "serviceType": {
      "type": "string",
      "enum": [
        "fixed",
        "mobile",
        "home"
      ],
      "description": "Filter: fixed (on-site), mobile, or home service"
    }
  },
  "required": [
    "location",
    "date"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_centers(latitude, longitude, radiusKm, serviceType)

List active car-wash centers within radiusKm of a latitude/longitude, nearest first.

Input Schema

{
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "radiusKm": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 50,
      "description": "Search radius in kilometres (max 50)"
    },
    "serviceType": {
      "type": "string",
      "enum": [
        "fixed",
        "mobile",
        "home"
      ]
    }
  },
  "required": [
    "latitude",
    "longitude",
    "radiusKm"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_services(centerId)

List the services a center offers with a starting price each. centerId is the numeric id from find_centers.

Input Schema

{
  "type": "object",
  "properties": {
    "centerId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Numeric center id as returned by find_centers"
    }
  },
  "required": [
    "centerId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪recommend_wash(vehicleType, dirtLevel, season)

Recommend a wash formula for a vehicle given how dirty it is and the season. Pure guidance, no booking.

Input Schema

{
  "type": "object",
  "properties": {
    "vehicleType": {
      "type": "string",
      "minLength": 1,
      "description": "e.g. citadine, berline, SUV, utilitaire"
    },
    "dirtLevel": {
      "type": "string",
      "enum": [
        "light",
        "moderate",
        "heavy"
      ]
    },
    "season": {
      "type": "string",
      "enum": [
        "winter",
        "spring",
        "summer",
        "autumn"
      ]
    }
  },
  "required": [
    "vehicleType",
    "dirtLevel"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_booking(bookingId, email)

Retrieve a booking the caller owns. Requires a Firebase phone-OTP token (Authorization: Bearer <idToken>); the booking is only returned when its phone number matches the verified caller.

Input Schema

{
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string",
      "minLength": 1
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools