# Remote access — your computer as a tool

Turn a machine you own into something an AI agent can see and operate. Works with any compatible MCP client that supports the remote endpoint and bearer authentication, with or without an ONBF agent, and you decide tool by tool what it's allowed to do.

## What you get

With **Remote access (Remote MCP)** enabled, your computer offers a small set of tools over **MCP** — the open protocol most AI clients already speak. Point a compatible client at it and the agent can look at your screen, click, type, and run programs, subject to the permissions you grant and the macOS permissions allowed on that machine. ONBF Desktop connects outbound to ONBF's managed relay, so there's no inbound port to expose.

This is the complete set of tools that exist. There is no hidden capability beyond this list:

| Tool | What it lets an agent do | Risk |
| --- | --- | --- |
| **Screen control**  
`computer` | Take screenshots, move and click the mouse, and type on the keyboard. | ⚠️ Elevated |
| **Displays**  
`computer_displays` | List the connected monitors and their resolutions. | Standard |
| **Applications**  
`computer_applications` | List the applications and windows that are currently open. | Standard |
| **Window focus**  
`computer_focus` | Bring a specific window or application to the front. | Standard |
| **Run commands**  
`computer_run` | Run a program with the arguments the agent specifies and read its output. | ⚠️ Elevated |

> **You don't need an ONBF agent:** Remote MCP works with any compatible MCP client that supports the remote endpoint and bearer authentication, so you can use it without publishing an ONBF agent at all — traffic still travels through ONBF's managed relay. Publishing an agent on ONBF is a separate thing entirely — see **[Local agents](/docs/computers/local-agents)** if that's what you're after.

## Turn it on

First install and register the machine — see **[Computers](/docs/computers)**. Then:

1. **Enable Remote MCP in ONBF Desktop** — The app asks macOS for the screen-recording and accessibility permissions it needs. Without those the tools are listed but will fail — screen control in particular only works once macOS has granted them.

2. **Grant the tools you're comfortable with** — Open the computer in your **Computers** list and switch tools on individually. Start with the standard ones and add the elevated ones only when you actually need them.

3. **Copy the connection details** — The panel shows the machine's MCP URL and an `onbf_mcp_…` access token.

4. **Paste them into your MCP client**

   _MCP client configuration_

   ```json
   // Copy the URL and token from your computer's Remote access panel.
   // Works in a compatible MCP client that supports a remote endpoint with
   // bearer authentication — Claude Desktop, Cursor, and friends.
   {
     "mcpServers": {
       "my-computer": {
         "url": "https://…/v1/computers/<your-computer-id>/mcp",
         "headers": {
           "Authorization": "Bearer onbf_mcp_YOUR_TOKEN"
         }
       }
     }
   }
   ```

5. **Ask the agent what it can see** — "List my displays" or "take a screenshot" is the fastest confirmation that the connection and permissions both work.

> **Treat the token like a password:** Anyone holding it can use the tools you granted, on your machine. Keep it out of prompts, screenshots and shared configs. If it leaks, click **Disable Remote MCP** in ONBF Desktop — the machine stays registered and gets a new token when you enable the service again.

## How permissions resolve

Two independent layers decide whether a tool call is allowed, and a tool has to pass **both**. This exists so the person sitting at the machine always keeps the final say:

| Layer | Set from | Who can change it |
| --- | --- | --- |
| **Account policy** | The Computers page in your browser | You, the account owner |
| **Device policy** | ONBF Desktop, on the machine itself | Whoever is at that machine — **not** changeable from the dashboard |

> **A tool disabled on the device can't be re-enabled from the dashboard:** If the app shows a tool as disabled by the device, toggling it in the browser will not turn it on — the dashboard shows it as blocked instead. Change it in ONBF Desktop on that machine. This is deliberate: the machine's own operator can always take capability away.

> **New tools default to off:** When ONBF adds a tool to the set above, it stays off for computers you've already configured until you grant it. Nothing gains capability behind your back after an update.

## Staying in control

**Screen control** and **Run commands** are marked elevated for a reason: between them they can do anything you can do at the keyboard. Screen control additionally depends on the macOS screen-recording and accessibility permissions being granted. A few habits worth adopting:

- Grant **Displays**, **Applications** and **Window focus** freely — they only read what's already on screen.
- Add **Screen control** when the agent genuinely needs to operate an app, and **Run commands** only when it needs to run a program.
- Close anything you wouldn't want screenshotted before starting a session that includes screen control.
- Quit ONBF Desktop when you're done — a machine that isn't running the app can't be reached at all.
- Click **Disable Remote MCP** in ONBF Desktop if a token leaks. Your **[Local agents (Webhook)](/docs/computers/local-agents)** service, if you use one, keeps working — and so does Local MCP on the Mac itself.

> **Not connected?:** If your client can't reach the machine, check the machine says **Online** in your Computers list. A sleeping or offline machine reports **Not connected**, which is normal and clears on its own. See **[Reading the status](/docs/computers#status)**.
