{"ok":true,"site":{"host":"orpheus-mcduff.vercel.app","url":"https://orpheus-mcduff.vercel.app/apollo13","type":"live","desc":"The same 25 WebMCP tools and the same engine, pointed at the real public-domain Apollo 13 accident record: the Review Board report, the Mission Report, the voice loops and nine NASA photographs.","tools":[{"name":"get_investigation_context","kind":"answer","impl":"imperative","description":"Get your role briefing, the rules of play and the current case state. Call this first and follow the returned 'protocol' exactly. You are the workstation's onboard research AI; the player is an authorized investigator. This is a two-player investigation, not a task to finish: work one question at a time, two or three reads, then stop and report. The desk stops answering an agent that reads far ahead of its partner.","title":"Get investigation briefing","annotations":{"readOnlyHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"search_files","kind":"answer","impl":"imperative","description":"Search filenames and readable file contents across the filesystem. Returns matching paths plus a short content excerpt per match. Returns at most 25 results with 120-char excerpts — refine query for pagination.","title":"Search files","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Text to search for in names and contents"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"read_file","kind":"answer","impl":"imperative","description":"Read the full text content of a specific file by exact path. Prefer show_in_document for long files so the PLAYER reads it on screen instead.","title":"Read file","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Exact absolute path, as returned by search_files"}},"required":["path"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"search_messages","kind":"answer","impl":"imperative","description":"Full-text search of the on-device chat threads. Call get_investigation_context for who is on this machine.","title":"Search messages","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Text to search message bodies for"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"get_message_thread","kind":"answer","impl":"imperative","description":"Read one full chat thread by id. Use search_messages or get_investigation_context to discover thread ids for this corpus.","title":"Get message thread","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"threadId":{"type":"string","description":"Thread id for this corpus"}},"required":["threadId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_messages_thread","kind":"act","impl":"imperative","description":"Open the Messages app on screen and show a specific chat thread. Visible to the player — they can then read the bubbles.","title":"Open message thread","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"threadId":{"type":"string","description":"Thread id for this corpus"}},"required":["threadId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"search_emails","kind":"answer","impl":"imperative","description":"Search the mail store (inbox/sent/drafts/archive/trash) by sender, subject or body text.","title":"Search emails","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Text to search for"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"get_email","kind":"answer","impl":"imperative","description":"Read one email's full text by id (e.g. mail_101). Then consider open_email so the player sees it too.","title":"Get email","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"emailId":{"type":"string","description":"Email id, e.g. mail_102"}},"required":["emailId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"get_image_metadata","kind":"answer","impl":"imperative","description":"Read EXIF-style metadata for a photo (timestamps, GPS, camera, software, hash, notes). This is ALL you can know about an image — you cannot see its pixels. To have the player look at it, call open_image and then tell them where to zoom.","title":"Get image metadata","annotations":{"readOnlyHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"photoId":{"type":"string","description":"Photo id or filename, as returned by get_investigation_context"}},"required":["photoId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_image","kind":"act","impl":"imperative","description":"Open a photo in the image viewer on screen so the player can visually inspect it. You cannot zoom, pan, or see it yourself.","title":"Open image","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"photoId":{"type":"string","description":"Photo id or filename, as returned by get_investigation_context"}},"required":["photoId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"search_browser_history","kind":"answer","impl":"imperative","description":"Search the browser history entries by title or URL fragment.","title":"Search browser history","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Text to search titles/URLs for"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"get_system_logs","kind":"answer","impl":"imperative","description":"Read system log entries, optionally filtered by date, time, category ('NETWORK'/'LOGIN'/'DEVICE'/'POWER'/'SECURITY'), or free text. Call get_investigation_context first for the window that matters in this case.","title":"Get system logs","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"filter":{"type":"string","description":"Optional filter substring"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"get_timeline","kind":"answer","impl":"imperative","description":"Get a merged chronological timeline of system logs, photo timestamps, and message saliency across a time window. A human would need to open five apps and read them side by side; this synthesizes it in one call.","title":"Get correlated timeline","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"window":{"type":"string","description":"Time window e.g. 02:00-03:00; omit for this case's default"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"get_case_evidence","kind":"answer","impl":"imperative","description":"List every piece of evidence recorded on the board so far (ids, sections, summaries).","title":"Get case evidence","annotations":{"readOnlyHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_application","kind":"act","impl":"imperative","description":"Open and focus one of the workstation's applications. Visible to the player — the window opens on their desktop.","title":"Open application","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"application":{"type":"string","enum":["files","mail","messages","photos","browser","terminal","systemlog","evidence"],"description":"Which application"}},"required":["application"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"focus_application","kind":"act","impl":"imperative","description":"Bring an already-running application window to the foreground.","title":"Focus application","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"application":{"type":"string","enum":["files","mail","messages","photos","browser","terminal","systemlog","evidence"],"description":"Which application"}},"required":["application"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_file","kind":"act","impl":"imperative","description":"Open a document in the text viewer on the player's screen (opens File Manager context automatically). Does not scroll — use show_in_document when you want to guide them to a specific line or phrase.","title":"Open file","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Exact absolute path"}},"required":["path"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"show_in_document","kind":"act","impl":"imperative","description":"Open a document (if not open), scroll to a line, and pin a persistent highlight on it that stays until the player clicks, scrolls, types, or closes. Provide either a 1-based `line` or a `query` (first match is shown). This is the agent's preferred 'look at THIS' primitive — use it instead of quoting a passage into chat.","title":"Show line in document","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Absolute path, as returned by search_files"},"line":{"type":"number","description":"1-based line number (mutually exclusive with query)"},"query":{"type":"string","description":"Phrase to find — first match is shown (mutually exclusive with line)"}},"required":["path"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_directory","kind":"act","impl":"imperative","description":"Navigate the File Manager to a directory on the player's screen.","title":"Open directory","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Absolute directory path"}},"required":["path"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_email","kind":"act","impl":"imperative","description":"Open Mail and display a specific email on screen for the player to read.","title":"Open email","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"emailId":{"type":"string","description":"Email id, e.g. mail_102"}},"required":["emailId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_browser_entry","kind":"act","impl":"imperative","description":"Open the fictional Browser at a history entry's cached page (entry ids like hist_001 from search_browser_history).","title":"Open browser entry","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"entryId":{"type":"string","description":"History entry id"}},"required":["entryId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"terminal_command","kind":"act","impl":"imperative","description":"Run one command in the workstation terminal on screen: ls [path], cd [path], cat <file>, unlock <w1> <w2> <w3>, help, clear. Use 'unlock' ONLY when the player has derived the three-word sequence themselves.","title":"Run terminal command","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"inputSchema":{"type":"object","properties":{"command":{"type":"string","description":"The command line to run"}},"required":["command"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"record_evidence","kind":"act","impl":"imperative","description":"Record a discovered item on the shared Evidence board. Only meaningful ids from get_case_evidence may be added; you cannot invent evidence.","title":"Record evidence","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"inputSchema":{"type":"object","properties":{"evidenceId":{"type":"string","description":"Evidence id, e.g. ev_0213_login"}},"required":["evidenceId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"highlight_evidence","kind":"act","impl":"imperative","description":"Pulse-highlight an already-recorded item on the Evidence board to draw the player's attention.","title":"Highlight evidence","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"evidenceId":{"type":"string","description":"Existing evidence id"}},"required":["evidenceId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"},{"name":"open_evidence_board","kind":"act","impl":"imperative","description":"Open the shared Evidence board application.","title":"Open evidence board","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/apollo13"}],"category":"Health & Education","favicon":"/favicons/orpheus-mcduff.vercel.app.ico","apiSurface":"spec","toolCount":25}}