Koskamo

Jerome Handy Wash MCP

A read-only MCP server that allows AI assistants to look up public information about Jerome Handy Wash laundromat, including machine details, pricing, hours, payment methods, amenities, FAQ answers, and contact links. It supports English and Spanish and requires no authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Jerome Handy Wash MCP logo, by Jerome Handywash LLCVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Jerome Handywash LLC
MCP endpoint (Streamable HTTP)
https://jeromehandywash.com/mcp
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 8 of 8 declare behavior hints · 8 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to jeromehandywash.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Look up machine sizes, counts, and wash prices
  • Check laundromat opening hours and contact details
  • Find published FAQ answers regarding laundry items
  • Generate a pre-filled contact form link for issues

Source and maintenance

Vendor evidenceRegistry 2.1.4

Protocol and capabilities

Server
com.jeromehandywash/site 2.1.4
MCP protocol negotiated in check
2025-11-25
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only information published on jeromehandywash.com by Jerome Handywash LLC: Jerome Handy Wash, a self-service laundromat at 921 N Lincoln Ave Suite A, Jerome, ID 83338, open 24 hours, every day, including holidays. The store is unattended. Tool answers contain the site's published text and source page links. The language input selects English or Spanish. Take A Load Off is a separate wash-and-fold partner; answers link to https://takealoadoff.jeromehandywash.com/ without stating its prices, turnaround or phone. Prices, refund information and timeframes are published facts, not custom calculations or promises. No tool knows which machines are free right now. Nothing here reserves a machine, takes a payment or files a report: the machines take payment at the machine. For a machine or payment problem, report_machine_issue returns the published way to report it: (208) 420-6328, help@jeromehandywash.com, or https://jeromehandywash.com/contact/#machine-issue. get_contact_form_link returns a link that opens the contact form with the reason, machine number and message filled in. An assistant may fill in a contact form for a person, but only the person sends it: they check it, add their own name and contact details, and press Send. No tool on this site sends a message for them.

Tools

8 advertised

get_machines — Washers and dryers
Advertised by the server during the last successful anonymous check.
Advertised read-only

Every washer and dryer size at Jerome Handy Wash as the pricing page lists it: size, how many there are, the price and the notes on each card, plus the services page's machine description and its real cycle times. All Speed Queen. Counts are machines on site, not which are free right now (no tool knows that).

get_machines input schema
{
  "type": "object",
  "examples": [
    {
      "language": "en"
    }
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
get_machines output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "washers",
    "dryers",
    "about",
    "cycleTimes",
    "services"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "about": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dryers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description",
          "price",
          "priceUnit",
          "notes",
          "capacityLb",
          "count"
        ],
        "properties": {
          "flag": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "price": {
            "type": "string"
          },
          "priceUnit": {
            "type": "string"
          },
          "capacityLb": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "startMinutes": {
            "type": "integer"
          },
          "minutesPerQuarter": {
            "type": "integer"
          }
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "washers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description",
          "price",
          "priceUnit",
          "notes",
          "capacityLb",
          "count"
        ],
        "properties": {
          "flag": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "price": {
            "type": "string"
          },
          "priceUnit": {
            "type": "string"
          },
          "capacityLb": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "startMinutes": {
            "type": "integer"
          },
          "minutesPerQuarter": {
            "type": "integer"
          }
        }
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "services": {
      "type": "string"
    },
    "cycleTimes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      }
    }
  }
}
get_machines annotations
{
  "title": "Washers and dryers",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_pricing — Prices
Advertised by the server during the last successful anonymous check.
Advertised read-only

The pricing page: each washer and dryer price exactly as printed, what a typical wash and dry costs, vending prices, the 25 cent Scan to Pay surcharge note and the commercial or bulk note. Returns published prices without calculating custom totals.

get_pricing input schema
{
  "type": "object",
  "examples": [
    {
      "language": "en"
    }
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
get_pricing output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "heading",
    "washers",
    "dryers",
    "typicalVisit",
    "supplies",
    "surcharge",
    "commercial"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "lead": {
      "type": "string"
    },
    "dryers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description",
          "price",
          "priceUnit",
          "notes",
          "capacityLb",
          "count"
        ],
        "properties": {
          "flag": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "price": {
            "type": "string"
          },
          "priceUnit": {
            "type": "string"
          },
          "capacityLb": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "startMinutes": {
            "type": "integer"
          },
          "minutesPerQuarter": {
            "type": "integer"
          }
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "heading": {
      "type": "string"
    },
    "washers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description",
          "price",
          "priceUnit",
          "notes",
          "capacityLb",
          "count"
        ],
        "properties": {
          "flag": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "price": {
            "type": "string"
          },
          "priceUnit": {
            "type": "string"
          },
          "capacityLb": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "startMinutes": {
            "type": "integer"
          },
          "minutesPerQuarter": {
            "type": "integer"
          }
        }
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "supplies": {
      "type": "object",
      "required": [
        "heading",
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "item",
              "price"
            ],
            "properties": {
              "item": {
                "type": "string"
              },
              "price": {
                "type": "string"
              }
            }
          }
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "surcharge": {
      "type": "object",
      "required": [
        "heading",
        "text"
      ],
      "properties": {
        "text": {
          "type": "string"
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "commercial": {
      "type": "object",
      "required": [
        "heading",
        "text"
      ],
      "properties": {
        "text": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "typicalVisit": {
      "type": "string"
    }
  }
}
get_pricing annotations
{
  "title": "Prices",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_payment_methods — How to pay
Advertised by the server during the last successful anonymous check.
Advertised read-only

How you can pay at Jerome Handy Wash, as the pricing page lists it (coins, the change machine and the bills it takes, the ATM, cards, the Speed Queen app, Scan to Pay wallets), the surcharge note, the Speed Queen app location code and what the app does. Payment happens at the machine; nothing here takes one.

get_payment_methods input schema
{
  "type": "object",
  "examples": [
    {
      "language": "en"
    }
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
get_payment_methods output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "heading",
    "methods",
    "surcharge",
    "locationCode",
    "app"
  ],
  "properties": {
    "app": {
      "type": "object",
      "required": [
        "url",
        "heading",
        "text",
        "links"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "text",
              "href"
            ],
            "properties": {
              "href": {
                "type": "string"
              },
              "text": {
                "type": "string"
              }
            }
          }
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "url": {
      "type": "string"
    },
    "notice": {
      "type": "string"
    },
    "heading": {
      "type": "string"
    },
    "methods": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "surcharge": {
      "type": "object",
      "required": [
        "heading",
        "text"
      ],
      "properties": {
        "text": {
          "type": "string"
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "locationCode": {
      "type": "object",
      "required": [
        "label",
        "code",
        "note"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      }
    }
  }
}
get_payment_methods annotations
{
  "title": "How to pay",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_location_hours — Location, hours and contact
Advertised by the server during the last successful anonymous check.
Advertised read-only

Where Jerome Handy Wash is and when it is open, from the contact page: address, hours, phone, email, mailing address and languages as listed, the page's own opening lines, the map and directions links, and the coordinates and opening hours from the page's structured data.

get_location_hours input schema
{
  "type": "object",
  "examples": [
    {
      "language": "en"
    }
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
get_location_hours output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "name",
    "summary",
    "details",
    "address",
    "geo",
    "openingHours",
    "directions"
  ],
  "properties": {
    "geo": {
      "type": "object",
      "required": [
        "latitude",
        "longitude"
      ],
      "properties": {
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        }
      }
    },
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "notice": {
      "type": "string"
    },
    "address": {
      "type": "object",
      "required": [
        "street",
        "locality",
        "region",
        "postalCode",
        "country"
      ],
      "properties": {
        "region": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "locality": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        }
      }
    },
    "details": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "text"
        ],
        "properties": {
          "href": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      }
    },
    "summary": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "directions": {
      "type": "string"
    },
    "openingHours": {
      "type": "object",
      "required": [
        "dayOfWeek",
        "opens",
        "closes"
      ],
      "properties": {
        "opens": {
          "type": "string"
        },
        "closes": {
          "type": "string"
        },
        "dayOfWeek": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
get_location_hours annotations
{
  "title": "Location, hours and contact",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_amenities — What is on site
Advertised by the server during the last successful anonymous check.
Advertised read-only

What the store offers, from the services page: its feature cards, the full amenities list, what the space is like (parking, cameras, folding tables, benches, restroom, unattended), the softened water and the free WiFi (network name and password as published).

get_amenities input schema
{
  "type": "object",
  "examples": [
    {
      "language": "en"
    }
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
get_amenities output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "features",
    "amenities",
    "space",
    "water",
    "wifi"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "wifi": {
      "type": "object",
      "required": [
        "heading",
        "text"
      ],
      "properties": {
        "text": {
          "type": "string"
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "space": {
      "type": "object",
      "required": [
        "heading",
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "water": {
      "type": "object",
      "required": [
        "heading",
        "text"
      ],
      "properties": {
        "text": {
          "type": "string"
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "notice": {
      "type": "string"
    },
    "features": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "text"
        ],
        "properties": {
          "text": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "amenities": {
      "type": "object",
      "required": [
        "heading",
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "heading": {
          "type": "string"
        }
      }
    }
  }
}
get_amenities annotations
{
  "title": "What is on site",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
report_machine_issue — How to report a machine problem
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read-only: how the site says to report a machine or payment problem (a machine that took money, stopped mid cycle or will not open), in English or Spanish: what to include, the email and phone, the response and refund lines as published, and the report page. It does NOT file, send or store a report.

report_machine_issue input schema
{
  "type": "object",
  "examples": [
    {
      "language": "es"
    }
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
report_machine_issue output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "heading",
    "lead",
    "include",
    "contacts",
    "response",
    "refunds",
    "reportPage",
    "filesNothing"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "lead": {
      "type": "string"
    },
    "sign": {
      "type": "string"
    },
    "alsoOn": {
      "type": "string"
    },
    "notice": {
      "type": "string"
    },
    "heading": {
      "type": "string"
    },
    "include": {
      "type": "object",
      "required": [
        "heading",
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "heading": {
          "type": "string"
        }
      }
    },
    "refunds": {
      "type": "string"
    },
    "contacts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "text",
          "href"
        ],
        "properties": {
          "href": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        }
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "response": {
      "type": "string"
    },
    "reportPage": {
      "type": "string"
    },
    "filesNothing": {
      "type": "string"
    }
  }
}
report_machine_issue annotations
{
  "title": "How to report a machine problem",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_faq — Search the FAQ
Advertised by the server during the last successful anonymous check.
Advertised read-only

The site's FAQ answers (hours, prices, machines, payment, ATM, WiFi, what to do when something goes wrong). Take A Load Off answers identify the separate wash-and-fold partner and link to its own site, without its prices, turnaround or phone. Returns up to five answers by default, with or without a query. Use language "es" to search the Spanish FAQ.

search_faq input schema
{
  "type": "object",
  "examples": [
    {
      "query": "Is there an ATM?"
    }
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "At most this many answers (default 5, maximum 10). The source page contains the full FAQ."
    },
    "query": {
      "type": "string",
      "pattern": "\\S",
      "maxLength": 200,
      "minLength": 1,
      "description": "Nonblank words to look for, e.g. \"ATM\" or \"king comforter\"; omit to browse FAQ answers."
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
search_faq output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "queryWords",
    "results",
    "total"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "total": {
      "type": "integer"
    },
    "notice": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "n",
          "question",
          "answer",
          "url"
        ],
        "properties": {
          "n": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "text",
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                }
              }
            }
          },
          "answer": {
            "type": "string"
          },
          "question": {
            "type": "string"
          }
        }
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "queryWords": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
search_faq annotations
{
  "title": "Search the FAQ",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_contact_form_link — Contact form link
Advertised by the server during the last successful anonymous check.
Advertised read-only

A link that opens the site's contact form with the reason (topic), the machine number and the message already filled in, in English or Spanish. It only builds the link and sends nothing. There are no separate name, email or phone inputs. Message text is included in the URL. The person checks the form, adds their own name and email, and presses Send message.

get_contact_form_link input schema
{
  "type": "object",
  "examples": [
    {
      "topic": "machine",
      "machine": "12",
      "message": "Washer 12 took my money and did not start"
    }
  ],
  "properties": {
    "topic": {
      "enum": [
        "general",
        "machine",
        "payment",
        "bulk",
        "other"
      ],
      "type": "string",
      "description": "The reason, one of the form's own values: general (a question), machine (a broken machine), payment (a payment or refund problem), bulk (commercial or bulk pricing), other."
    },
    "machine": {
      "type": "string",
      "maxLength": 20,
      "description": "The machine number, if it applies."
    },
    "message": {
      "type": "string",
      "maxLength": 1500,
      "description": "The message, in the person's own words."
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string",
      "description": "Which language of the site to quote: \"en\" (default) or \"es\" (the Spanish pages, under /es/)."
    }
  },
  "additionalProperties": false
}
get_contact_form_link output schema
{
  "type": "object",
  "required": [
    "language",
    "url",
    "notice",
    "link",
    "filled",
    "topics",
    "sendButton",
    "sendsNothing"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "link": {
      "type": "string"
    },
    "filled": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "notice": {
      "type": "string"
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "value",
          "label"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      }
    },
    "language": {
      "enum": [
        "en",
        "es"
      ],
      "type": "string"
    },
    "sendButton": {
      "type": "string"
    },
    "sendsNothing": {
      "type": "string"
    }
  }
}
get_contact_form_link annotations
{
  "title": "Contact form link",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1014 ms
95th percentile latency
1014 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1014 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http jerome-handy-wash-mcp https://jeromehandywash.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add jerome-handy-wash-mcp --url https://jeromehandywash.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable jerome-handy-wash-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "jerome-handy-wash-mcp": {
      "url": "https://jeromehandywash.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "jerome-handy-wash-mcp": {
      "type": "streamableHttp",
      "url": "https://jeromehandywash.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start jerome-handy-wash-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "jerome-handy-wash-mcp": {
      "type": "http",
      "url": "https://jeromehandywash.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http jerome-handy-wash-mcp https://jeromehandywash.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://jeromehandywash.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "jerome-handy-wash-mcp": {
      "serverUrl": "https://jeromehandywash.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Jerome Handy Wash MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Jerome Handy Wash MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing