{"name":"com.lucyesl/jobs","slug":"lucyesl-jobs","title":"LucyESL — English teaching jobs in Korea","description":"Live English-teaching jobs in South Korea, with salary and disclosure statistics. Read-only, no key.","url":"https://mcp.market/server/lucyesl-jobs","rating":null,"grade":"C","score":56,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":1,"ok":1,"last_checked_at":"2026-09-19T15:51:10.142Z","last_ok_at":"2026-09-19T15:51:10.142Z","latency_ms":555},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://lucyesl.com/developers","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://lucyesl.com/mcp"}],"packages":[],"tools":[{"name":"disclosure_stats","description":"How many live Korean ESL job adverts state the salary, hours, severance, pension, insurance, airfare, vacation and split shifts. CC BY 4.0.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"fetch","description":"Fetch one LucyESL job listing by id as a plain-text document with its facts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}},{"name":"get_job","description":"One live listing as a structured record.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1}},"required":["id"]}},{"name":"salary_stats","description":"English-teacher salary statistics for South Korea computed from the live listings: median, quartiles, by region, by employer type, effective pay per teaching hour, disclosure rates, housing. CC BY 4.0.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"search","description":"Search live English-teaching jobs in South Korea on LucyESL by free text. Returns ids, titles and URLs; use fetch for a listing's details.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]}},{"name":"search_jobs","description":"Filter the live LucyESL board of English-teaching jobs in South Korea: region, student age, housing, visa, schedule, contract, setting, direct hire, minimum salary, free text. Returns structured records; pay in KRW per month unless stated otherwise; null means the advert did not say.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"region":{"type":"string","enum":["seoul","gyeonggi","busan","daegu","daejeon","gwangju","ulsan","sejong","gangwon","chungcheong","jeolla","gyeongsang","jeju"],"description":"Region key"},"age":{"type":"string","enum":["kindergarten","elementary","middle","high","adults","adults_only"],"description":"Student age group; adults_only means adults and nobody younger"},"housing":{"type":"string","enum":["provided","allowance","none"]},"visa":{"type":"string","enum":["e2","f","other"],"description":"e2 = E-2 sponsorship, f = F-series visa holders"},"schedule":{"type":"string","enum":["fulltime","parttime","camp","substitute"]},"contract":{"type":"string","enum":["employee","contractor"]},"setting":{"type":"string","enum":["academy","corporate","school","home"]},"delivery":{"type":"string","enum":["in_person","online","hybrid"]},"format":{"type":"string","enum":["group","small_group","one_to_one"],"description":"Class shape"},"specialty":{"type":"string","enum":["ielts","toefl","toeic_opic","sat_ap","business","esp","phonics","writing_debate","subject","bilingual","training","content"]},"direct_only":{"type":"boolean","description":"Only employers hiring directly (no recruiters or agencies)"},"min_salary":{"type":"integer","description":"Minimum monthly pay in KRW; snaps down to the board's steps 2000000, 2300000, 2600000, 3000000"},"q":{"type":"string","description":"Words to match in the title, city or employer name"},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":50}}}}],"scan":{"score":56,"grade":"C","scanned_at":"2026-09-19T10:14:20.544Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T10:14:20.486Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2155ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://lucyesl.com/mcp","reachable":true,"authRequired":false,"latencyMs":2155,"serverInfo":{"name":"LucyESL","version":"1.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://lucyesl.com/assets/favicon.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}