{"ok":true,"site":{"host":"future-doors-webmcp.vercel.app","url":"https://future-doors-webmcp.vercel.app/","type":"live","desc":"Share an opportunity screenshot, check the official rules, and see what to do now and what it can open next.","tools":[{"name":"get_path_snapshot","kind":"answer","impl":"imperative","description":"Read the selected route, proof-slot states, alternative route ids, timing, scenario, and guardrails. Call this before using any route, step, door, or proof id.","title":"Inspect the current path","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_profile_facts","kind":"act","impl":"imperative","description":"Stage facts extracted from a CV or conversation in the shared page for human review. This never confirms or saves a fact; the person must approve the proposal in the website.","title":"Stage profile facts","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80,"description":"Person name if explicitly present."},"age":{"type":"integer","minimum":18,"maximum":100,"description":"Age only when explicitly known."},"graduation_month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","description":"Graduation month in YYYY-MM format."},"nationality":{"type":"string","minLength":2,"maxLength":80,"description":"Nationality only when explicitly known."},"residence":{"type":"string","minLength":2,"maxLength":80,"description":"Current country of residence."},"university_location":{"type":"string","minLength":2,"maxLength":80,"description":"Country where the person's university is located, only when explicitly confirmed."},"study_status":{"type":"string","minLength":2,"maxLength":80,"description":"Current education or employment status."},"field_of_study":{"type":"string","minLength":2,"maxLength":100,"description":"Field of study or professional focus."},"work_authorization":{"type":"string","minLength":2,"maxLength":120,"description":"Confirmed work-authorization fact or needs-confirmation note."},"strengths":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","minLength":2,"maxLength":60},"description":"One to four evidence-backed strengths."},"credentials":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","minLength":2,"maxLength":60},"description":"Confirmed exams, licenses, or certificates."},"gap":{"type":"string","minLength":2,"maxLength":100,"description":"One current gap relevant to the goal."}},"required":[],"additionalProperties":false,"minProperties":1},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_opportunity_from_source","kind":"act","impl":"imperative","description":"After inspecting a screenshot, find the original official HTTPS page and add or update one saved opportunity for human review. Include the exact deadline, relevant rules, and one unresolved fact. When the official page states them, include the activity window and weekly hours so the person can spot real scheduling conflicts. Never connect it to the path automatically.","title":"Save an opportunity from a screenshot","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":100,"description":"Official opportunity or program title."},"source_label":{"type":"string","minLength":3,"maxLength":120,"description":"Short label for the original official page."},"source_url":{"type":"string","format":"uri","description":"Original official HTTPS page, not a social post or screenshot URL."},"source_clause":{"type":"string","minLength":12,"maxLength":500,"description":"Concise official clause supporting the deadline or eligibility rule."},"deadline_month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","description":"Verified deadline month from 2026-08 through 2040-12."},"deadline_text":{"type":"string","minLength":3,"maxLength":100,"description":"Exact official deadline with time zone, or say when the time is not stated."},"activity_start_month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","description":"Only when the official page states the activity begins in this month. Do not estimate."},"activity_end_month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","description":"Only when the official page states the activity ends in this month. Do not estimate."},"weekly_hours":{"type":"integer","minimum":1,"maximum":168,"description":"Only an official stated weekly time requirement. Do not estimate."},"requirements":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","minLength":2,"maxLength":60},"description":"One to four official requirements that matter for this person."},"missing_fact":{"type":"string","minLength":3,"maxLength":120,"description":"One fact to ask the person when eligibility cannot yet be confirmed."},"prerequisite":{"type":"string","minLength":3,"maxLength":100,"description":"One required exam, certificate, or step that must happen before applying."},"rationale":{"type":"string","minLength":12,"maxLength":300,"description":"How this opportunity could create the work needed for the person's next step."},"outputs":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"string","minLength":2,"maxLength":60},"description":"One to five useful results this opportunity can create."}},"required":["title","source_label","source_url","source_clause","deadline_month","deadline_text","requirements","rationale","outputs"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_route","kind":"act","impl":"imperative","description":"Focus one route in the shared page. Use an exact route_id from get_path_snapshot; call get_path_snapshot again afterward to inspect that route's steps.","title":"Focus a route","inputSchema":{"type":"object","properties":{"route_id":{"type":"string","enum":["ship","community","research"],"description":"Exact route id returned by get_path_snapshot."}},"required":["route_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_step","kind":"act","impl":"imperative","description":"Select one visible path step and show why it matters on the shared page. Use an exact step_id from get_path_snapshot.","title":"Focus a path step","inputSchema":{"type":"object","properties":{"step_id":{"type":"string","minLength":3,"maxLength":80,"description":"Exact visible step id returned by get_path_snapshot."}},"required":["step_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_path_clock","kind":"act","impl":"imperative","description":"Move the shared path clock and recompute time-bound steps. The month must be within 2026-08 and 2040-12; invalid dates are rejected rather than silently clamped.","title":"Move the path clock","inputSchema":{"type":"object","properties":{"month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","description":"Calendar month in YYYY-MM format, from 2026-08 through 2040-12."}},"required":["month"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate_take_door","kind":"act","impl":"imperative","description":"Try a reversible what-if where the person takes one opportunity. Show what they make and update later steps. This never records a real achievement. Use an exact door_id from get_path_snapshot.","title":"Simulate taking a door","inputSchema":{"type":"object","properties":{"door_id":{"type":"string","enum":["ship-challenge"],"description":"Exact opportunity door id returned by get_path_snapshot."}},"required":["door_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate_missed_door","kind":"act","impl":"imperative","description":"Try a reversible what-if where the person misses one opportunity. Show which later step needs another way. Use an exact door_id from get_path_snapshot.","title":"Simulate missing a door","inputSchema":{"type":"object","properties":{"door_id":{"type":"string","enum":["ship-challenge"],"description":"Exact opportunity door id returned by get_path_snapshot."}},"required":["door_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_bridge_from_source","kind":"act","impl":"imperative","description":"When a door is missed or its official rule does not match, suggest a separate proof path from an official HTTPS source. State the agent inference explicitly; never claim it restores eligibility. Only the person can approve it.","title":"Find another way","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":90,"description":"Short name for the proposed replacement action."},"source_label":{"type":"string","minLength":3,"maxLength":100,"description":"Human-readable name of the official source."},"source_url":{"type":"string","pattern":"^https://","description":"Direct HTTPS URL for the supporting source."},"source_clause":{"type":"string","minLength":12,"maxLength":500,"description":"Relevant source-backed rule or requirement, paraphrased concisely."},"rationale":{"type":"string","minLength":12,"maxLength":300,"description":"Why this action creates what the next step needs without promising an outcome."},"outputs":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"string","minLength":2,"maxLength":60},"description":"One to five useful results the alternative creates."},"eta":{"type":"string","minLength":2,"maxLength":30,"description":"Short time tradeoff such as +6 weeks."}},"required":["title","source_label","source_url","source_clause","rationale","outputs","eta"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_priority_plan","kind":"act","impl":"imperative","description":"Propose one to three routes that fill distinct evidence gaps. Show the proposal in the shared page, but never add, remove, or reorder a card until the person approves it.","title":"Stage priority opportunities","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"route_ids":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","enum":["ship","community","research"],"description":"Exact route id returned by get_path_snapshot."},"description":"One to three exact route ids from get_path_snapshot, in priority order."},"rationale":{"type":"string","minLength":12,"maxLength":240,"description":"Why these routes fill distinct proof gaps within the person's constraints."}},"required":["route_ids","rationale"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_proof_receipt","kind":"act","impl":"imperative","description":"Stage a direct HTTPS work link for one proof slot that is already planned. The person may attach it for later review; attachment does not independently verify ownership or quality.","title":"Stage real work as proof","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"proof_id":{"type":"string","enum":["delivered_project","public_collaboration","mentor_feedback","demonstrated_skill"],"description":"Exact proof id returned by get_path_snapshot."},"title":{"type":"string","minLength":3,"maxLength":100,"description":"Human-readable artifact title."},"artifact_url":{"type":"string","pattern":"^https://","description":"Direct HTTPS URL to the real PR, issue, review, demo, or portfolio artifact."},"source_label":{"type":"string","minLength":3,"maxLength":120,"description":"Short source label such as GitHub pull request."},"verification_note":{"type":"string","minLength":12,"maxLength":240,"description":"What the artifact directly proves; do not infer acceptance or skill level."}},"required":["proof_id","title","artifact_url","source_label","verification_note"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"pin_constraint","kind":"act","impl":"imperative","description":"Add one practical constraint that later route comparisons must respect, such as remote-only, a time limit, or a cost ceiling.","title":"Pin a route constraint","inputSchema":{"type":"object","properties":{"constraint":{"type":"string","minLength":3,"maxLength":80,"description":"One concise practical constraint."}},"required":["constraint"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_routes","kind":"act","impl":"imperative","description":"Read a concise comparison of all three routes, including the visible reason, timing, evidence created, next door, outcome direction, and pinned constraints.","title":"Compare all routes","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"explain_downstream_effect","kind":"act","impl":"imperative","description":"Focus one exact visible step and explain how it affects the rest of that route without predicting acceptance or hiring. Use a step_id from get_path_snapshot.","title":"Explain a downstream effect","inputSchema":{"type":"object","properties":{"step_id":{"type":"string","minLength":3,"maxLength":80,"description":"Exact visible step id returned by get_path_snapshot."}},"required":["step_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_path","kind":"act","impl":"imperative","description":"Clear reversible what-if state and restore the baseline best-match path while keeping the person's confirmed goal.","title":"Reset the path","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","favicon":"/favicons/future-doors-webmcp.vercel.app.ico","apiSurface":"spec","toolCount":15}}