{"status":"unauthenticated","authentication":{"hasAuthHeader":false,"headerFormat":"missing","tokenValid":false,"userId":null,"scopes":[],"tokenType":null},"protocol":{"version":"2024-11-05","transport":"streamable-http","endpoints":{"mcp":"/api/mcp","mcpAlias":"/mcp","health":"/api/mcp/health"}},"toolsCount":87,"tools":[{"name":"live_canvas","description":"Open a Live Canvas: deploy an HTML page (or attach to an already-deployed project) and get an intera..."},{"name":"ask_opzero_assistant","description":"Ask the OpZero assistant about this user's deployments, projects, previews, usage, and system status..."},{"name":"mcp_diagnostics","description":"Diagnose the MCP session from both ends. Reports what this server sees of the calling client (protoc..."},{"name":"mcp_diagnostics_report","description":"Companion to mcp_diagnostics, called by its widget: stores the host-side findings it collected (clie..."},{"name":"src_ingest","description":"Commit a checkout back as a change set: the manifest is diffed against the tree at expect_head and o..."},{"name":"src_merge_finalize","description":"Gate tool: land an evaluated run. Succeeds only at the head of its queue and only when the target ro..."},{"name":"src_race_check","description":"Serialization self test (spec R8): N concurrent src_write calls race one throwaway branch with the s..."},{"name":"src_export","description":"Raw repository export for replay: refs with full heads, commits in sequence order with their stored ..."},{"name":"src_replay","description":"Replay a standalone src repository into this project repository (spec 1.1 section 4.5): the platform..."},{"name":"src_fpv","description":"Open a first-person operational view of a project repository. Returns a bounded, read-only snapshot ..."},{"name":"src_ide","description":"Open the project repository in an editor: file tree, branches, log, proposals, and the contents of o..."},{"name":"desktop_open","description":"Open the Oz OS desktop as an MCP App widget. Returns its current layout, app catalogue and browser c..."},{"name":"desktop_get_state","description":"Read one desktop session: windows in back-to-front order, minimized state, geometry, dock, wallpaper..."},{"name":"desktop_list_apps","description":"List apps with the exact app IDs accepted by desktop_launch_app. Narrow before you read: category (s..."},{"name":"desktop_list_sessions","description":"List your desktop sessions. Background sessions are independent working spaces for agents; shared se..."},{"name":"desktop_create_session","description":"Create a named background or shared Oz desktop session. Each agent should create a background sessio..."},{"name":"desktop_end_session","description":"Discard a temporary background desktop session when an agent is done. Requires its current expected_..."},{"name":"desktop_launch_app","description":"Open an app by its exact catalogue app_id, or restore and focus its existing window. Requires expect..."},{"name":"desktop_focus_window","description":"Bring an open window to the front and restore it if minimized. Target a background session to avoid ..."},{"name":"desktop_close_window","description":"Close one window. Saved documents, deployments and durable workloads are not deleted or cancelled. U..."},{"name":"desktop_minimize_window","description":"Minimize or restore an open window without closing its view. Minimized browser views remain mounted ..."},{"name":"desktop_set_window","description":"Move, resize, maximize, restore, or snap a window left/right. Coordinates are desktop CSS pixels; cl..."},{"name":"desktop_set_dock","description":"Replace the dock with the ordered app_ids provided. Every id must be a current catalogue app_id; an ..."},{"name":"desktop_set_wallpaper","description":"Set this desktop wallpaper: dune (golden hour), night (after hours), or sage (quiet morning)."},{"name":"desktop_set_chrome","description":"Set whether the dock and menu bar automatically hide and reveal at the screen edges. Both default to..."},{"name":"desktop_show_desktop","description":"Minimize every window in the selected desktop session. Does not stop applications or background work..."},{"name":"desktop_save_layout","description":"Persist the desktop UI layout with optimistic concurrency. Window and dock ids that are no longer in..."},{"name":"desktop_share_signal","description":"Exchange short-lived WebRTC screen-sharing negotiation messages inside an owned shared desktop sessi..."},{"name":"terminal_open","description":"Requires read and deploy scopes. Open or create an owner-scoped Oz Terminal session shared by the de..."},{"name":"terminal_list","description":"List your recent terminal sessions so a user or agent can resume the same transcript. Requires a dir..."},{"name":"terminal_get","description":"Read a terminal transcript, including commands in flight. A running entry is not proof its underlyin..."},{"name":"terminal_complete","description":"Return caller-visible command, parameter and enum completions plus authoritative argument validation..."},{"name":"terminal_observe","description":"Read one fresh task or observability snapshot without adding a transcript entry. Supports `task_insp..."},{"name":"terminal_execute","description":"Requires read and deploy scopes. Run a schema-validated platform command in a shared terminal. The n..."},{"name":"browser_open","description":"Open Oz Browser, the default Oz OS web browser, as an MCP App. Returns saved tabs, history and owned..."},{"name":"browser_get_state","description":"Read your Oz Browser tabs, active tab, history, deployed project URL suggestions and revision. Does ..."},{"name":"browser_navigate","description":"Navigate the selected tab to an HTTP(S) URL or search query. Requires expected_revision from browser..."},{"name":"browser_new_tab","description":"Open a browser tab, optionally at a URL. Supports up to twelve tabs. Requires expected_revision. Sta..."},{"name":"browser_select_tab","description":"Select a tab in your shared Oz Browser and return its page. Requires expected_revision; may resume m..."},{"name":"browser_close_tab","description":"Close a browser tab. Unsaved page work may be lost; saved history remain. Requires expected_revision..."},{"name":"browser_back","description":"Go back one entry in the tab navigation history. Requires expected_revision. Returns updated page an..."},{"name":"browser_forward","description":"Go forward one entry in the tab navigation history. Requires expected_revision. Returns updated page..."},{"name":"browser_reload","description":"Reload a browser tab and return its page. Requires expected_revision. A reload can resubmit page req..."},{"name":"browser_read_page","description":"Read the selected remote browser page as untrusted text and links, with viewport coordinates in the ..."},{"name":"browser_interact","description":"Interact with a remote page: click at 1280x800 viewport coordinates, type text into the focused fiel..."},{"name":"browser_clear_history","description":"Clear saved Oz Browser address autocomplete history. Requires expected_revision. Does not erase cook..."},{"name":"browser_stop","description":"Close the remote browser and discard its temporary login cookies. Saved tab URLs and history remain...."},{"name":"project_inspect","description":"Read your projects. action get returns one project (metadata, URLs, status, custom domain, latest de..."},{"name":"project","description":"Change a project. create makes an empty project (deploy publishes directly, so this is rarely needed..."},{"name":"project_delete","description":"Delete one project or up to 10. Soft by default: the live runtime (hosted MCP server or agent Worker..."},{"name":"deploy","description":"Publish content and get a live URL. format html deploys one page (`html`); files a path-to-content m..."},{"name":"deployment_inspect","description":"Read deployments. action get returns one deployment with its full file contents and source provenanc..."},{"name":"deployment","description":"Change deployment history. action rollback republishes the files of `deployment` as a new deployment..."},{"name":"assistant","description":"Change an assistant: a model plus pinned system prompt that calls tools from MCP servers you already..."},{"name":"assistant_inspect","description":"Read your assistants. action get returns one by slug or id: config, connected MCP servers with the c..."},{"name":"assistant_chat","description":"Chat with one of your own assistants, server-side by slug, so it works before any app is deployed. P..."},{"name":"workload_deploy","description":"Deploy a hosted workload from source and return its endpoint. kind mcp_server builds TypeScript agai..."},{"name":"workload_inspect","description":"Read your hosted workloads. action list pages servers (kind mcp_server) or lists agents with endpoin..."},{"name":"workload_configure","description":"Change a hosted MCP server or agent in place. action update changes settings without resending sourc..."},{"name":"workload_rotate_token","description":"Rotate the shared access token of a hosted MCP server or agent in token auth mode. The workload is r..."},{"name":"list_mcps","description":"List your hosted MCP servers (name, description, endpoint, auth mode) with what each MCP client need..."},{"name":"gateway_inspect","description":"Read your federated MCP gateways. action get returns one gateway (needs gateway: slug or id): exposu..."},{"name":"gateway","description":"Change a federated MCP gateway (gw.opzero.sh/g/<slug>/mcp) fronting hosted MCP servers, external MCP..."},{"name":"connection_inspect","description":"Read your external connections. action list returns every connection with its provider, label, serve..."},{"name":"connection","description":"Change your external connections. create connects a catalog provider (Notion, Linear, Sentry, ...) o..."},{"name":"task_inspect","description":"Read the durable tasks the hosted servers on this account hold: work and its outcome that outlives t..."},{"name":"task","description":"Act on durable tasks and the attention they raise. approve grants or denies one pending approval, ex..."},{"name":"builder_run","description":"Drive the Oz Build agent, the run the Oz desktop Build app drives, under its platform grant. action ..."},{"name":"builder_run_inspect","description":"Read one Oz Build run by run_id: its state, the prompt, the reply accumulated so far, every tool cal..."},{"name":"docs","description":"Read the platform documentation. With no argument: every current tool grouped by surface and domain ..."},{"name":"system_status","description":"Read the account and its authentication state. action status returns plan, usage, active projects, r..."},{"name":"mcp_conformance","description":"Check whether an MCP endpoint works with every real MCP client: Claude connectors and Claude Code, C..."},{"name":"identity_link","description":"Link this MCP client identity to your OpZero account. Returns a link_url to open in a browser signed..."},{"name":"preview","description":"Preview a deployed opzero.sh page in an inline iframe widget. Pass the page URL (it must be on opzer..."},{"name":"file","description":"Change files in a project's file store. attach references a file from an owner object by handle: not..."},{"name":"file_inspect","description":"Read a project's file store; file_read returns content. list pages files under a prefix with fileId,..."},{"name":"file_read","description":"Read one file from a project's file store, addressed by path or by handle (the stable file_... id, o..."},{"name":"file_write","description":"Write a file into a project's file store, where the deployed app (oz.files) and any hosted MCP serve..."},{"name":"file_upload","description":"Upload a large binary file (over file_write's 3MB, up to 100MB) into a project's file store in two s..."},{"name":"src_read","description":"Read source from a project repository. With path: one file at a snapshot as lines with a range_hash ..."},{"name":"src_inspect","description":"Read a project repository without changing it. list: a directory at a snapshot with hashes and sizes..."},{"name":"src_write","description":"Write, replace, or delete whole files on a branch in one commit, compare and swap on expect_head wit..."},{"name":"src_edit","description":"Edit one file on a branch in one commit with anchored edits: a unique old/new string, a line range w..."},{"name":"src_branch","description":"Change a branch of a project repository. create (the default) makes a branch at an existing commit, ..."},{"name":"src_propose","description":"Work a proposal, the pull request of a project repository. open (the default) enqueues branch onto t..."},{"name":"src_proposal_inspect","description":"Read proposals of a project repository; never creates a run. list returns proposals with each curren..."},{"name":"src_sync","description":"Move a repository in and out of a checkout by hash. checkout returns the exact manifest of a snapsho..."}],"diagnosis":{"issuesFound":1,"issues":["No Authorization header provided"],"suggestedFixes":["Claude.ai needs to complete OAuth flow - try disconnecting and reconnecting the MCP server"]},"expectedToolsListResponse":{"tools":[{"name":"live_canvas","description":"Open a Live Canvas: deploy an HTML page (or attach to an already-deployed project) and get an interactive widget showing the live site with a prompt box. On MCP Apps hosts, edits typed into the widget arrive in this conversation as user messages tagged [OpZero Live Canvas]; apply them with `deploy` (format files) on the referenced project — the widget watches for the new deployment and hot-reloads the page automatically. Provide html (optionally with name) to deploy fresh, or exactly one of project_id / project_name to attach to an existing project.","inputSchema":{"type":"object","properties":{"html":{"type":"string","description":"HTML to deploy as the initial canvas content. Tailwind utility classes are auto-compiled. Provide exactly one of html, project_id, or project_name."},"name":{"type":"string","description":"Optional project name when deploying html (reuses an existing project with the same name, else auto-generated)."},"project_id":{"type":"string","description":"Attach the canvas to this existing project (UUID)."},"project_name":{"type":"string","description":"Attach the canvas to the existing project with this name. Errors if ambiguous; use project_id then."}},"required":[]}},{"name":"ask_opzero_assistant","description":"Ask the OpZero assistant about this user's deployments, projects, previews, usage, and system status, or about current OpZero platform capabilities such as hosted MCP templates, ctx.browser, ctx.connect, ctx.signals, ctx.loop, and conformance. Account facts are grounded in recent-activity context; general platform guidance is pinned in the assistant prompt. In MCP Apps hosts, renders an adaptive widget view composed for the question. This is not a user-deployed assistant, which `assistant` (action create) makes.","inputSchema":{"type":"object","properties":{"question":{"type":"string","description":"Question to ask (e.g., 'What deployments are in progress?', 'Is my preview ready?', 'How many projects do I have?')"},"include_context":{"type":"boolean","description":"Include system context (projects, deployments, previews) automatically (default: true)"}},"required":["question"]}},{"name":"mcp_diagnostics","description":"Diagnose the MCP session from both ends. Reports what this server sees of the calling client (protocol era and version marker, client identity and capabilities from _meta, transport headers, resolved caller identity, scopes) and what is going on inside the server (implemented JSON-RPC methods, tool catalog with per-tool allow/deny for this caller, widgets, resources, runtime bindings and configuration). When the MCP Apps widget renders it also collects the host side (ui/initialize result, host capabilities, browser sandbox, which bridge methods answer) and submits it through mcp_diagnostics_report, so clientReports on a later call carries exactly what the widget showed. Read-only; call it with no arguments.","inputSchema":{"type":"object","properties":{},"required":[]}}],"note":"Showing first 3 of 87 tools. Full list available when authenticated."},"troubleshooting":["1. Disconnect the OpZero MCP server in Claude.ai settings","2. Clear browser cache/cookies for Claude.ai","3. Reconnect and complete the OAuth authorization flow","4. Make sure to approve all requested scopes (deploy, preview, read)","5. If using API key, ensure it starts with \"wcd_\" or \"dpk_\"","6. Check if the token has expired (tokens expire after 1 hour by default)"],"debug":{"timestamp":"2026-09-28T03:24:46.001Z","userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","origin":null}}