{"name":"lol.typosafe/jef","slug":"typosafe-jef","title":"TypoSafe AI — Jef","description":"Jef decides. Give it options, it returns one with a confidence, never a sentence. A parody.","url":"https://mcp.market/server/typosafe-jef","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T03:10:23.000Z","license":"MIT"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/SPFreedom/jef-mcp","website":"https://typosafe.lol","version":"0.4.7","remotes":[{"type":"streamable-http","url":"https://typosafe.lol/mcp"}],"packages":[{"registryType":"npm","identifier":"jef-mcp","version":"0.4.7","transport":{"type":"stdio"}}],"tools":[{"name":"jef_flag","description":"Judge a described behaviour as RED FLAG, GREEN FLAG or BEIGE FLAG. Use this when the user describes something someone did and wants a verdict on it. Beige means neither good nor bad, merely odd. Anything describing harm, threats or abuse escalates instead of being judged.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"behaviour":{"type":"string","minLength":1,"maxLength":400,"description":"What the person did, in one sentence."}},"required":["behaviour"],"additionalProperties":false}},{"name":"jef_pick","description":"Pick one of 2 to 5 options and give a probability for each. Use this when the user is stuck between named choices and wants one chosen for them: dinner, which film, which of three plans. Jef can only ever return an option you passed in, so it cannot introduce an idea of its own.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":2,"maxItems":5,"description":"The candidates. The answer is always one of these, exactly as written."},"question":{"type":"string","maxLength":400,"description":"Optional context, such as \"what should I cook tonight\". Affects the answer but is not read."}},"required":["options"],"additionalProperties":false}},{"name":"jef_rank","description":"Put 2 to 5 options in order, best first. Use this when the user wants a priority order decided for them, such as which chore to do first or which of several tasks to start with. Returns every option you passed, reordered, never a subset.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":2,"maxItems":5,"description":"The things to order. All of them come back, reordered."}},"required":["options"],"additionalProperties":false}},{"name":"jef_score","description":"Rate something from 1 to 10. Use this when the user wants a number put on something subjective, such as an outfit, a plan, or an excuse. The number is arbitrary and deterministic, so the same description always scores the same.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"thing":{"type":"string","minLength":1,"maxLength":400,"description":"What is being rated, described in the user's own words."}},"required":["thing"],"additionalProperties":false}},{"name":"jef_yes_no","description":"Answer a yes-or-no question with YES or NO and a confidence. Use this when the user wants a question settled and there is no correct answer, such as whether to go out, whether to send the message, or whether to deploy on a Friday. Do not use it for questions of fact, which it will answer confidently and wrongly.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":400,"description":"The question, phrased so that yes or no is a sensible answer. It is hashed rather than read, so wording changes the answer but meaning does not."}},"required":["question"],"additionalProperties":false}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T04:43:42.719Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T04:43:42.667Z","components":{"code":{"score":25,"max":25,"notes":["7 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 645ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://typosafe.lol/mcp","reachable":true,"authRequired":false,"latencyMs":645,"serverInfo":{"name":"typosafe-jef","version":"0.4.5"}}],"packages":[{"registryType":"npm","identifier":"jef-mcp","version":"0.4.7","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-09-19T01:59:18.489Z","repositoryUrl":"git+https://github.com/SPFreedom/jef-mcp.git"}],"repo":{"found":true,"owner":"SPFreedom","repo":"jef-mcp","archived":false,"pushedAt":"2026-09-19T03:10:23Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/81341723?v=4","ownerCreatedAt":"2021-03-25T03:08:55Z","license":"MIT"},"icon":{"url":"https://typosafe.lol/brand/favicon.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T03:10:23.000Z","score":23}}}},"grade_history":[],"reviews":[]}