{"name":"io.github.khalid-hasan/portfolio","slug":"khalid-hasan-portfolio","title":"Khalid Ibne Hasan · Portfolio","description":"Query Khalid Ibne Hasan's portfolio: profile, availability, case studies, writing, and resume.","url":"https://mcp.market/server/khalid-hasan-portfolio","rating":null,"grade":"C","score":57,"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":7,"ok":7,"last_checked_at":"2026-09-21T04:10:55.365Z","last_ok_at":"2026-09-21T04:10:55.365Z","latency_ms":175},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.khalidibnehasan.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://www.khalidibnehasan.com/mcp"}],"packages":[],"tools":[{"name":"ask_khalid","description":"Asks Khalid Ibne Hasan's chat persona one question and returns its answer. The persona is LLM-backed, grounded in khalidibnehasan.com content, and answers as Khalid about his work, experience, and availability. To actually reach Khalid, use the contact form at https://www.khalidibnehasan.com/contact or book a call at https://calendly.com/khalidibnehasan/30min.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":1000,"description":"The question to ask Khalid's chat persona."}},"required":["question"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_availability","description":"Returns what Khalid Ibne Hasan is currently open to (advisory, speaking, and similar engagements) plus the ways to reach him, including a direct call-booking link.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_case_study","description":"Returns the full case study for one project by slug: role, year, impact, description, highlights, and stack. Get slugs from list_projects.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","maxLength":120,"description":"The project slug, as returned by list_projects."}},"required":["slug"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_post","description":"Returns the full text of one in-site note by slug. Substack essays live on Substack; for those this returns the external URL to read instead. Get slugs from list_writing.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","maxLength":160,"description":"The post slug, as returned by list_writing."}},"required":["slug"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_profile","description":"Returns who Khalid Ibne Hasan is: name, role, organization, location, links, and a short professional bio. Use this first to ground any answer about Khalid.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_resume","description":"Returns Khalid Ibne Hasan's structured resume: work experience, education, skill groups, and the URL of the downloadable PDF version.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_projects","description":"Lists Khalid's shipped case studies (products built at Keyin College) and his side projects (the Lab). Each entry includes a slug usable with get_case_study, a summary, and tags.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_writing","description":"Lists Khalid's writing: in-site notes and Substack essays, merged and sorted newest first. Each entry has a title, source, date, and URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"search_site","description":"Searches all of khalidibnehasan.com (case studies, side projects, writing, profile pages) for a phrase and returns matching items with URLs and snippets.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","maxLength":200,"description":"The word or phrase to search for."}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":57,"grade":"C","scanned_at":"2026-09-20T20:59:31.312Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:59:31.277Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 496ms"]},"poisoning":{"score":15,"max":15,"notes":["9 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":2,"max":10,"notes":["no repository or website to verify"]}},"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://www.khalidibnehasan.com/mcp","reachable":true,"authRequired":false,"latencyMs":496,"serverInfo":{"name":"khalidibnehasan-portfolio","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://www.khalidibnehasan.com/apple-icon.png?apple-icon.07ujo1la--s1d.png","source":"site","width":600,"height":600},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}