{"ok":true,"site":{"host":"interview-webmcp.vercel.app","url":"https://interview-webmcp.vercel.app/","type":"live","desc":"An agent-native mock interview app. Ask ChatGPT to start an interview, then answer on the page.","tools":[{"name":"set_candidate_profile","kind":"act","impl":"imperative","description":"Set or update the candidate's field, target position, years of experience, and skills. Call this FIRST before starting an interview.","title":"Set candidate profile","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"field":{"type":"string","description":"Broad field, e.g. 'Software Engineering'."},"position":{"type":"string","description":"Specific role, e.g. 'Senior Backend Engineer'."},"experienceYears":{"type":"number","minimum":0,"maximum":50},"skills":{"type":"array","items":{"type":"string"},"description":"Concrete technologies/skills, e.g. ['Python','AWS','PostgreSQL']."},"focusAreas":{"type":"array","items":{"type":"string"},"description":"Optional weak spots the candidate wants to drill."}},"required":["field","position","experienceYears","skills"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"start_interview","kind":"act","impl":"imperative","description":"Begin the mock interview. YOU (the AI) must write ALL the interview questions yourself, right now, in this single call — there is no built-in question bank. Pass them as the `questions` array, each genuinely tailored to the candidate's profile (use their exact field/position/skills/experience — vary the type across behavioral, technical, situational, system_design, culture_fit). After this call, IMMEDIATELY call `run_interview` (no arguments) — that ONE call runs the entire ask/wait/evaluate loop for every question and blocks until the candidate finishes, returning the full transcript and final report at the end. Do not try to ask questions one at a time yourself.","title":"Start the mock interview with all your generated questions","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"difficulty":{"type":"string","enum":["junior","mid","senior"]},"questions":{"type":"array","minItems":3,"maxItems":20,"description":"ALL the questions for this interview, in order, written by you and tailored to the candidate's profile. Vary the `type` across the list.","items":{"type":"object","properties":{"text":{"type":"string","description":"The exact question text."},"type":{"type":"string","enum":["behavioral","technical","system_design","situational","culture_fit"]},"rubricPoints":{"type":"array","items":{"type":"string"},"description":"2-4 bullet points describing what a strong answer covers."},"hint":{"type":"string","description":"Optional short on-screen hint for the candidate."}},"required":["text","type"],"additionalProperties":false}}},"required":["questions"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_interview","kind":"act","impl":"imperative","description":"Runs the full interview using the exact questions you passed to `start_interview`. For each one: displays it, WAITS for the candidate to type and submit their answer, evaluates it, and moves to the next — automatically, without any further tool calls from you. Returns once, at the very end, with every question/answer/evaluation and the final summary report. Call this immediately after `start_interview`.","title":"Run the entire interview using the questions you already wrote","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_transcript","kind":"answer","impl":"imperative","description":"Returns the full list of asked questions, given answers, and evaluations so far.","title":"Get the full interview transcript","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"end_interview","kind":"act","impl":"imperative","description":"Ends the session and produces a final report: overall score, strengths, development areas, hire recommendation, and next steps. Only call this after `remaining_questions` reached 0 from `ask_question`, OR the candidate has explicitly asked to stop early. If questions are still remaining and the candidate hasn't asked to stop, this call will be REJECTED — call `ask_question` again instead.","title":"End the interview and generate a summary report","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"force":{"type":"boolean","description":"Set true ONLY if the candidate explicitly asked to end early / skip remaining questions. Otherwise omit — ending with unanswered questions remaining is rejected by default."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_session","kind":"act","impl":"imperative","description":"Clear all state. Returns to the profile screen so a new interview can start.","title":"Reset the session","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","apiSurface":"spec","toolCount":6}}