This page is for admins. The OneClick Settings can offer a set of tools to an AI agent on your own computer. Claude
Code and Claude Desktop reach these tools through a small local program, the **relay**. You set up the relay one
time on each computer.

Steps 1, 2 and 4 are for Claude Code. For Claude Desktop, see [Claude Desktop](#claude-desktop).

This page is about the Buttons and the User groups in the Settings. To let an agent build Interface views, see
[Connecting Claude Code to Interface Builder](/docs/buttons/interface-button/interface-builder/how-to/agent/connect-claude-code).

## What the agent can do

With the tools, the agent can:

- list your Buttons, and read and edit a Button that has Agent access on,
- create a Button, which has Agent access on from the start,
- change the Button order, and create, rename and delete a Button group (its Buttons go to **Ungrouped**),
- list, create and edit User groups,
- read the OneClick installations, the Pipedrive fields, the pipelines and the filters of your company, to fill in a
  Button.

The agent cannot:

- delete a Button or a User group,
- turn Agent access on or off (only a person does that),
- read a secret, such as an Authorization header value or the key of a Signed link,
- change a Button while you have its editor open.

The agent changes a Button or a User group only on the tab where you see it. After each change, the list shows the
changed row for a moment.

For Button groups, see [Manage Buttons](/docs/buttons/manage-buttons#put-buttons-in-groups). For User groups, see
[Groups](/docs/settings/groups).

## Before you start

- **Chrome 155 to 162 on a computer.** The tools use WebMCP. Chrome turns WebMCP on for OneClick through a trial that
  ends on **30 March 2027**. In another browser, the tools do not work.
- **Claude Code** or **Claude Desktop**, and **Node.js 22 or later**, because the relay runs through `npx`.
- **The OneClick Settings in their own tab.** The tools do not work inside Pipedrive. In Pipedrive, open the
  OneClick Settings and click **Open in new tab**. The **Agent** button shows in that tab, beside your name. See
  [Open the Settings](/docs/settings#open-the-settings).

## 1. Install the relay

1. In the Settings tab, click **Agent**. The Agent popover opens.
2. Under **1. Install the relay**, click **Copy command**.
3. Paste the command in a terminal.
4. Run the command.

Copy the command from the Agent popover, not from this page. The popover puts in the address of your tab. The command
has this shape:

```text
claude mcp add --scope user oneclick -- npx -y @mcp-b/webmcp-local-relay@6.0.3 --port 9400 --relay-id oneclick --widget-origin https://oneclick-nextjs-production-unxsymfqdq-lz.a.run.app
```

- `--scope user` adds the `oneclick` server to Claude Code for all your projects.
- `--port 9400` and `--relay-id oneclick` keep this relay apart from other relays, for example the relay of
  Interface Builder.
- `--widget-origin` is the address of your tab. The relay answers only that address.

The relay listens only on your own computer (`127.0.0.1`). No other computer can reach it.

## 2. Add the permission rules

By default, Claude Code asks you before each call to a tool. The permission rules change this for some tools.

1. In the Agent popover, under **2. Add the permission rules**, click **Copy rules**.
2. Open your Claude Code settings file: `~/.claude/settings.json`.
3. Add the entries of `allow`, `ask` and `deny` to the `permissions` section. If the lists are already there, add
   the entries to them. Do not replace the lists.

| List     | Tools                                                            | Effect                                                  |
| -------- | ---------------------------------------------------------------- | ------------------------------------------------------- |
| `allow`  | Tools that only read                                             | Claude Code calls them without a prompt.                |
| `ask`    | `set_button_order`, `create_button_group`, `delete_button_group` | Claude Code asks you each time.                         |
| `deny`   | The relay's own `webmcp_call_tool` and `webmcp_open_page`        | Claude Code never calls them.                           |
| _(none)_ | Other changes, such as `update_button`                           | Claude Code asks, and you can choose "don't ask again". |

Claude Code asks before each Button order or Button group change, also in `auto` mode. These changes move many
Buttons at one time.

## 3. Turn on Agent access

The agent reads and edits only the Buttons that you allow.

1. Open a Button.
2. In the **Button** section, turn on **Allow agent access (WebMCP)**.
3. Click **Save**.

For a Button with Agent access off, the agent sees only its name, its place in the order and its Button group. It
can still move the Button in the order. A copy of a Button and a transferred Button start with Agent access off.
User groups have no Agent access: the agent can edit every User group.

## 4. Check the connection

The Settings page cannot see your agent. The Agent popover never says "connected". Check from Claude Code:

1. Start Claude Code, or start it again if it was open when you installed the relay.
2. Run `/mcp`.
3. Find `oneclick` in the list.
4. Open `oneclick`. It lists tools such as `get_page` and `list_buttons`.
5. Ask the agent to call `get_page`. It tells which Settings tab is open.

If `oneclick` has no tools:

- Make sure that the Settings tab is open and its Agent popover does not say **The agent tools do not work in this
  tab.**
- Make sure that the tab address is the address in `--widget-origin`. If not, run
  `claude mcp remove oneclick --scope user` and add the server again with the command from this tab.
- Make sure that this tab offers the tools. See [One tab at a time](#one-tab-at-a-time).

## Claude Desktop

Claude Desktop uses the same relay as Claude Code. It reads the relay from its config file, not from
`claude mcp add`, and it does not read the Claude Code `settings.json`.

### 1. Add the relay

1. In the Settings tab, click **Agent**.
2. Click **Claude Desktop**.
3. Under **1. Add the relay**, click **Copy config**.
4. Open the config file of Claude Desktop:
   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
   - Linux: `~/.config/Claude/claude_desktop_config.json`

   The macOS path has a space in `Application Support`. In a terminal, put the path in quotes after `~/`, for example
   `open -e ~/"Library/Application Support/Claude/claude_desktop_config.json"`.

5. Add the `oneclick` entry to `mcpServers`. If the file has other servers, keep them. Do not replace the file.
6. Quit Claude Desktop.
7. Start Claude Desktop again.

Copy the config from the Agent popover, not from this page. The popover puts in the address of your tab. The config
has this shape:

```json
{
  "mcpServers": {
    "oneclick": {
      "command": "npx",
      "args": [
        "-y",
        "@mcp-b/webmcp-local-relay@6.0.3",
        "--port",
        "9400",
        "--relay-id",
        "oneclick",
        "--widget-origin",
        "https://oneclick-nextjs-production-unxsymfqdq-lz.a.run.app"
      ]
    }
  }
}
```

The arguments are the same as in the Claude Code command.

### 2. Set the tool permissions

Claude Desktop has its own permissions for each tool of the `oneclick` connector. Set them in the tool permissions
of the `oneclick` connector in Claude Desktop:

| Tools                                                            | Permission                                             |
| ---------------------------------------------------------------- | ------------------------------------------------------ |
| The relay's own `webmcp_call_tool` and `webmcp_open_page`        | Turn them off, so that the agent cannot call them.     |
| `set_button_order`, `create_button_group`, `delete_button_group` | Keep a prompt. Do not allow them always.               |
| Tools that only read                                             | You can allow them, so that they run without a prompt. |

`webmcp_call_tool` can call every OneClick tool by name, and `webmcp_open_page` can open any address. Every OneClick
action has its own tool, so the agent does not need them.

### 3. Allow the Buttons

Do step [3. Turn on Agent access](#3-turn-on-agent-access).

### 4. Check the Claude Desktop connection

1. Start Claude Desktop again if it was open when you changed its config file.
2. Find the `oneclick` connector in Claude Desktop. It lists the OneClick tools, such as `get_page` and
   `list_buttons`.
3. Ask the agent to call `get_page`. It tells which Settings tab is open.

### When Claude Desktop does not start the relay

- **Claude Desktop cannot find `npx`.** Claude Desktop starts `npx` without the `PATH` of your shell. A Node.js from
  `nvm` is then missing. In a terminal, run `which npx`. Put this full path in `command`. `npx` also starts `node`
  from the `PATH`, so add an `env` entry with the same folder. For example:

  ```json
  "oneclick": {
    "command": "/Users/you/.nvm/versions/node/v22.12.0/bin/npx",
    "args": [
      "-y",
      "@mcp-b/webmcp-local-relay@6.0.3",
      "--port",
      "9400",
      "--relay-id",
      "oneclick",
      "--widget-origin",
      "https://oneclick-nextjs-production-unxsymfqdq-lz.a.run.app"
    ],
    "env": { "PATH": "/Users/you/.nvm/versions/node/v22.12.0/bin:/usr/bin:/bin" }
  }
  ```

- **The JSON is not valid.** Claude Desktop does not start servers from a file with a JSON error. Look for a missing
  comma between the `oneclick` entry and the other servers.
- **The address is wrong.** The `--widget-origin` must be the address of your Settings tab. If not, copy the config
  again from the Agent popover in that tab.

For the other causes, see [4. Check the connection](#4-check-the-connection).

## One tab at a time

Only one Settings tab offers the tools at a time. The first tab takes them. The Agent popover of another tab shows
**Another OneClick tab offers the agent tools** and a **Use agent here** button. Click the button to move the tools
to that tab.

## When you edit at the same time

If you and the agent change the same Button or User group, the second save stops. When you save, OneClick tells you
that the Button changed, and you can reload it. When the agent saves, it gets the same message and reads the Button
again.

## When the tools do not work

The Agent popover tells you why:

| The popover says                                   | What to do                                                                               |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| They need Chrome version 155 to 162 on a computer. | Open the Settings in Chrome 155 to 162.                                                  |
| The trial ended.                                   | The tools do not work after 30 March 2027.                                               |
| This address has none.                             | Open the Settings at `https://oneclick-nextjs-production-unxsymfqdq-lz.a.run.app`.       |
| Chrome did not turn on WebMCP for this page.       | Ask your IT support about Chrome policies.                                               |
| You have no seat.                                  | Ask an admin to give you a seat in the **Users** tab. See [Users](/docs/settings/users). |

## Limits

- A tool call must end in 60 seconds.
- One relay serves all Claude Code sessions on your computer.
- You can use Claude Code and Claude Desktop on the same computer. The first relay that starts listens on port 9400.
  The relay that starts next connects to the first relay.

## Related

- [Connecting Claude Code to Interface Builder](/docs/buttons/interface-button/interface-builder/how-to/agent/connect-claude-code) —
  let an agent build Interface views
