Docs menu

Reach a Hosted Workbench

Goal: Call a workbench you've hosted, from an AI, from code, or from a page.

Each enabled mode has its own address under your workspace, named by the workbench's APISlug:

https://openx.fathym.com/ox-api/w/<workspace id>/workbenches/<apiSlug>/<mode>

<workspace id> is the ID shown in Workspace -> Settings. The mode segment matches the mode's key exactly; a key is the mode's name, so it can be MCP, API, Web or any name your package declares. The examples below use those three.

Who may call a mode is set per mode, under Who may call this mode in the inspector's Modes tab:

  • Identity (the default): OpenX checks every caller. Send a key from APIs -> API Keys as Authorization: Bearer <YOUR_TOKEN>; it needs no particular access right. That holds while the workspace's API identity, set in the API Manager, is Team (the default) or Hybrid. Under App Identity, team keys are turned away and a caller needs an access token from an App Identity you trust; the mode can also be limited to some of the workspace's App Identity providers.
  • None: anyone with the address reaches the mode, with no key. OpenX checks nobody and passes on none of its own credentials, so the workbench signs its own callers in if it wants any. Only the workspace owner or someone who manages access can save a mode as None.

From any AI: MCP

https://openx.fathym.com/ox-api/w/<workspace id>/workbenches/<apiSlug>/MCP

Each MCP endpoint of a hosted workbench is its own MCP server, separate from the OpenX MCP server. Which ports and paths speak MCP is set in the inspector: Serve MCP from a Workbench. With fAI, one command adds it to every coding agent on your machine:

fai mcp install https://openx.fathym.com/ox-api/w/<workspace id>/workbenches/triage/MCP --name triage --global --auth "<YOUR_TOKEN>"

Any other client that speaks Streamable HTTP connects with the same address and an Authorization header. Claude Desktop, Cursor, a custom client and what the tools are called: Reach a Workbench over MCP.

From code: API

POST https://openx.fathym.com/ox-api/w/<workspace id>/workbenches/<apiSlug>/API/<tool>/<method>

Every tool method is a POST route, with the tool and method names lowercased - the author never declares routes. The workbench describes its own routes at GET .../API/openapi.json, which you can import into Postman or generate a client from; it lists routes and summaries, not argument types. The API Manager lists each API-mode workbench with its routes and a ready cURL line.

curl -X POST 'https://openx.fathym.com/ox-api/w/<workspace id>/workbenches/triage/API/classify/run' \
  -H 'Authorization: Bearer <YOUR_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{"arg0": "Checkout returns 500 for EU cards"}'

How arguments are sent, the OpenAPI catalog and what the API Manager shows: Reach a Workbench over HTTP.

From a page: Web

https://openx.fathym.com/ox-api/w/<workspace id>/workbenches/<apiSlug>/Web/

Every path below the root goes to the workbench's own fetch handler, so the author decides what each one serves. Calls with a key work; opening it in a browser tab with your OpenX sign-in does not, because the door admits a bearer token only. What the author writes and what the workbench receives: Reach a Workbench from a Page.

The root page is .../Web/, with the trailing slash. A browser that opens .../Web is redirected there; a call from code works at both.

If something's off

IssueDo
401The key has expired, or the API identity is App Identity, which turns team keys away; generate a new key, or use an App Identity token
404 on an API routeCheck the tool and method names in .../API/openapi.json
The mode doesn't answerCheck the mode's key (case matters) and that the mode was added in the Modes tab
The first call is slow, or 503The container is starting; try again in a few seconds

Next steps

On this page