Skip to content

Commit 71c2517

Browse files
committed
Update MCP docs for browser pool parity
1 parent a33ae0f commit 71c2517

19 files changed

Lines changed: 522 additions & 59 deletions

docs.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,14 +301,20 @@
301301
"group": "Tools",
302302
"pages": [
303303
"reference/mcp-server/tools/manage-browsers",
304-
"reference/mcp-server/tools/manage-profiles",
305304
"reference/mcp-server/tools/manage-browser-pools",
306-
"reference/mcp-server/tools/manage-proxies",
307-
"reference/mcp-server/tools/manage-extensions",
308-
"reference/mcp-server/tools/manage-apps",
305+
"reference/mcp-server/tools/browser-curl",
309306
"reference/mcp-server/tools/computer-action",
310307
"reference/mcp-server/tools/execute-playwright-code",
311308
"reference/mcp-server/tools/exec-command",
309+
"reference/mcp-server/tools/manage-profiles",
310+
"reference/mcp-server/tools/manage-proxies",
311+
"reference/mcp-server/tools/manage-extensions",
312+
"reference/mcp-server/tools/manage-apps",
313+
"reference/mcp-server/tools/manage-projects",
314+
"reference/mcp-server/tools/manage-api-keys",
315+
"reference/mcp-server/tools/manage-auth-connections",
316+
"reference/mcp-server/tools/manage-credentials",
317+
"reference/mcp-server/tools/manage-credential-providers",
312318
"reference/mcp-server/tools/search-docs"
313319
]
314320
},

reference/mcp-server.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ The server is a centrally hosted, authenticated remote MCP using OAuth 2.1 with
2121
Authorize access through your browser when prompted. See [Authentication](/reference/mcp-server/authentication) for OAuth and API key options.
2222
</Step>
2323
<Step title="Start automating">
24-
Use the [tools](/reference/mcp-server/tools/manage-browsers) to launch browsers, run Playwright code, and invoke your apps.
24+
Use the [tools](/reference/mcp-server/tools/manage-browsers) to launch browsers, warm browser pools, run Playwright code, invoke your apps, and manage auth workflows.
2525
</Step>
2626
</Steps>
2727

@@ -38,7 +38,7 @@ The server is a centrally hosted, authenticated remote MCP using OAuth 2.1 with
3838
Setup for Claude, Cursor, VS Code, and more.
3939
</Card>
4040
<Card icon="wrench" title="Tools" href="/reference/mcp-server/tools/manage-browsers">
41-
Browsers, profiles, proxies, apps, and more.
41+
Browsers, pools, apps, projects, API keys, and managed auth.
4242
</Card>
4343
<Card icon="database" title="Resources" href="/reference/mcp-server/resources">
4444
Read browsers, pools, profiles, and apps.

reference/mcp-server/resources.mdx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@ title: "Resources"
33
description: "Read browsers, pools, profiles, and apps as MCP resources"
44
---
55

6-
The Kernel MCP server exposes your account's objects as MCP resources. Each resource URI lists all items or returns a specific one.
6+
The Kernel MCP server exposes your account's objects as MCP resources. List URIs return collections, and templated URIs return one object.
77

88
| Resource | Description |
99
|----------|-------------|
10-
| `browsers://` | Access browser sessions (list all or get a specific session). |
11-
| `browser_pools://` | Access browser pools (list all or get a specific pool). |
12-
| `profiles://` | Access browser profiles (list all or get a specific profile). |
13-
| `apps://` | Access deployed apps (list all or get a specific app). |
10+
| `browsers://` | List browser sessions. |
11+
| `browsers://{session_id}` | Read one browser session. |
12+
| `browser-pools://` | List browser pools. |
13+
| `browser-pools://{id_or_name}` | Read one browser pool by ID or name. |
14+
| `profiles://` | List browser profiles. |
15+
| `profiles://{profile_name}` | Read one browser profile by name. |
16+
| `apps://` | List deployed apps. |
17+
| `apps://{app_name}` | Read one deployed app by name. |
18+
19+
Use resources when your client needs read-only context. Use the matching `manage_*` tool when you need to create, update, delete, acquire, release, or invoke something.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
title: "Browser Curl"
3+
description: "Send HTTP requests through an existing browser session"
4+
---
5+
6+
Use `browser_curl` to send an HTTP request through an existing Kernel browser session's Chrome network stack. Use it when the request needs the browser's cookies, proxy, network context, or origin behavior.
7+
8+
<Note>For documentation lookup or general web search, use `search_docs` or your agent's normal search tool instead.</Note>
9+
10+
## Parameters
11+
12+
| Parameter | Description |
13+
|-----------|-------------|
14+
| `session_id` | Browser session ID. Required. |
15+
| `url` | Target `http` or `https` URL. Required. |
16+
| `method` | HTTP method: `GET`, `HEAD`, `POST`, `PUT`, `PATCH`, `DELETE`, or `OPTIONS`. Defaults to `GET`. |
17+
| `headers` | Custom headers merged with browser defaults. |
18+
| `body` | Request body for `POST`, `PUT`, or `PATCH` requests. |
19+
| `response_encoding` | Response body encoding: `utf8` or `base64`. Use `base64` for binary content. |
20+
| `timeout_ms` | Request timeout in milliseconds. Must be 1 or greater. |
21+
22+
## Example
23+
24+
```json
25+
{
26+
"session_id": "browser_2vDb5kRmZ4nP8xQ1cA7",
27+
"url": "https://app.example.com/api/account",
28+
"method": "GET",
29+
"headers": {
30+
"Accept": "application/json"
31+
},
32+
"timeout_ms": 10000
33+
}
34+
```
35+
36+
## Post with browser cookies
37+
38+
```json
39+
{
40+
"session_id": "browser_2vDb5kRmZ4nP8xQ1cA7",
41+
"url": "https://app.example.com/api/tasks",
42+
"method": "POST",
43+
"headers": {
44+
"Content-Type": "application/json"
45+
},
46+
"body": "{\"title\":\"Run nightly checkout audit\"}",
47+
"response_encoding": "utf8"
48+
}
49+
```

reference/mcp-server/tools/computer-action.mdx

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
---
2-
title: "computer_action"
3-
description: "Mouse, keyboard, and screenshot controls for browser sessions"
2+
title: "Computer Action"
3+
description: "Mouse, keyboard, clipboard, and screenshot controls for browser sessions"
44
---
55

6-
Execute computer actions on a browser session. Pass a single action for simple operations, or pass multiple actions to batch them into one request for lower latency.
6+
Use `computer_action` to execute mouse, keyboard, clipboard, and screenshot actions on a browser session. Pass one action for simple operations, or pass multiple actions to batch them into one request for lower latency.
77

8-
<Tip>Always include a `screenshot` as the last action so you can see the result. `screenshot` and `get_mouse_position` return data, so they must come last.</Tip>
8+
<Tip>Include a `screenshot` as the last action when you need to see the result. `screenshot`, `read_clipboard`, and `get_mouse_position` return data, so they must be the last action if included.</Tip>
99

1010
## Parameters
1111

1212
| Parameter | Description |
1313
|-----------|-------------|
1414
| `session_id` | Browser session ID. Required. |
15-
| `actions` | Ordered list of actions to perform. Required. |
15+
| `actions` | Ordered list of one or more actions to perform. Required. |
1616

1717
## Action types
1818

@@ -26,6 +26,8 @@ Execute computer actions on a browser session. Pass a single action for simple o
2626
| `drag_mouse` | Drag along a `path` of `[x, y]` points. |
2727
| `set_cursor` | Show or hide the cursor (`hidden`). |
2828
| `sleep` | Wait `duration_ms` between steps when the page needs time to react. |
29+
| `write_clipboard` | Write `text` to the browser session clipboard. |
30+
| `read_clipboard` | Read the browser session clipboard. Must be the last action if included. |
2931
| `screenshot` | Capture the page, optionally limited to a `region`. |
3032
| `get_mouse_position` | Return the current cursor position. |
3133

@@ -43,3 +45,18 @@ Execute computer actions on a browser session. Pass a single action for simple o
4345
]
4446
}
4547
```
48+
49+
## Clipboard example
50+
51+
```json
52+
{
53+
"session_id": "browser_2vDb5kRmZ4nP8xQ1cA7",
54+
"actions": [
55+
{ "type": "write_clipboard", "write_clipboard": { "text": "https://kernel.sh/docs" } },
56+
{ "type": "press_key", "press_key": { "keys": ["Ctrl+l"] } },
57+
{ "type": "press_key", "press_key": { "keys": ["Ctrl+v"] } },
58+
{ "type": "press_key", "press_key": { "keys": ["Return"] } },
59+
{ "type": "screenshot" }
60+
]
61+
}
62+
```

reference/mcp-server/tools/exec-command.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: "exec_command"
2+
title: "Exec Command"
33
description: "Run shell commands inside a browser VM"
44
---
55

6-
Execute a command synchronously inside a browser VM. Returns decoded stdout, stderr, and the exit code. The `command` field is the executable; pass its arguments in `args`.
6+
Use `exec_command` to execute a command synchronously inside a browser VM. It returns decoded stdout, stderr, and the exit code. The `command` field is the executable; pass its arguments in `args`.
77

88
## Parameters
99

reference/mcp-server/tools/execute-playwright-code.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: "execute_playwright_code"
2+
title: "Execute Playwright Code"
33
description: "Run Playwright/TypeScript code against a browser session"
44
---
55

6-
Execute Playwright/TypeScript automation code against a Kernel browser session. If `session_id` is provided, uses that existing browser; otherwise creates a new one. Returns the result with a video replay URL, and auto-cleans up browsers it creates.
6+
Use `execute_playwright_code` to run Playwright/TypeScript automation code against a Kernel browser session. If you provide `session_id`, it uses that existing browser. If you omit `session_id`, it creates a browser and cleans it up after execution.
77

88
<Tip>Use `computer_action` with the `screenshot` action instead of `page.screenshot()` in your code. For a comprehensive page state snapshot, use `await page._snapshotForAI()`.</Tip>
99

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
title: "Manage API Keys"
3+
description: "Create, list, update, and revoke Kernel API keys"
4+
---
5+
6+
Use `manage_api_keys` to create, inspect, rename, and revoke Kernel API keys. Created keys include the plaintext secret once; later reads return masked key metadata.
7+
8+
## Actions
9+
10+
| Action | Description |
11+
|--------|-------------|
12+
| `create` | Create an org-wide or project-scoped API key. |
13+
| `list` | List masked API keys. |
14+
| `get` | Retrieve one masked API key. |
15+
| `update` | Rename an API key. |
16+
| `delete` | Revoke an API key. |
17+
18+
## Parameters
19+
20+
| Parameter | Description |
21+
|-----------|-------------|
22+
| `action` | Operation to perform. Required. |
23+
| `api_key_id` | API key ID. Required for `get`, `update`, and `delete`. |
24+
| `name` | (create, update) API key name. |
25+
| `project_id` | (create) Project ID for project-scoped keys. Omit or use `null` for org-wide keys. |
26+
| `days_to_expire` | (create) Days until expiry, up to 3650. Use `null` for no expiry. |
27+
| `limit` | (list) Max results per page. Must be 1-100. |
28+
| `offset` | (list) Pagination offset. Must be 0 or greater. |
29+
30+
## Create a project-scoped key
31+
32+
```json
33+
{
34+
"action": "create",
35+
"name": "checkout-agent-prod",
36+
"project_id": "proj_2vE0M7bLwX9kQ4nP3sY8",
37+
"days_to_expire": 90
38+
}
39+
```
40+
41+
## Rename a key
42+
43+
```json
44+
{
45+
"action": "update",
46+
"api_key_id": "ak_2vE1qJ7ZpLm8N4cT6rW0",
47+
"name": "checkout-agent-prod-rotated"
48+
}
49+
```

reference/mcp-server/tools/manage-apps.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: "manage_apps"
2+
title: "Manage Apps"
33
description: "List apps, invoke actions, and check deployments and invocations"
44
---
55

6-
Manage Kernel apps, deployments, and invocations.
6+
Use `manage_apps` to discover deployed app actions, invoke an app, and inspect deployment or invocation state.
77

88
## Actions
99

@@ -26,8 +26,8 @@ Manage Kernel apps, deployments, and invocations.
2626
| `version` | (list_apps, invoke) App version filter. Defaults to `latest` for invoke. |
2727
| `deployment_id` | (get_deployment) Deployment ID to retrieve. |
2828
| `invocation_id` | (get_invocation) Invocation ID to retrieve. |
29-
| `limit` | (list_apps, list_deployments) Max results. Default 50. |
30-
| `offset` | (list_apps, list_deployments) Pagination offset. Default 0. |
29+
| `limit` | (list_apps, list_deployments) Max results per page. Must be 1-100. |
30+
| `offset` | (list_apps, list_deployments) Pagination offset. Must be 0 or greater. |
3131

3232
## Example
3333

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: "Manage Auth Connections"
3+
description: "Create and operate managed auth connections for browser profiles"
4+
---
5+
6+
Use `manage_auth_connections` to keep a browser profile logged in to a third-party site. A connection ties a domain to a Kernel profile and can use stored credentials, external provider credentials, or user-provided login input.
7+
8+
## Actions
9+
10+
| Action | Description |
11+
|--------|-------------|
12+
| `create` | Start managing auth for a profile and domain. |
13+
| `list` | List auth connections. |
14+
| `get` | Poll one connection or login flow state. |
15+
| `delete` | Remove an auth connection. |
16+
| `login` | Begin a login flow. Returns a hosted URL and live view URL. |
17+
| `submit` | Submit discovered field values, an MFA option, or an SSO button selection. |
18+
19+
## Parameters
20+
21+
| Parameter | Description |
22+
|-----------|-------------|
23+
| `action` | Operation to perform. Required. |
24+
| `id` | Auth connection ID. Required for `get`, `delete`, `login`, and `submit`. |
25+
| `domain` | (create) Target domain, such as `netflix.com`. |
26+
| `profile_name` | (create) Profile to manage auth for. Also filters `list`. |
27+
| `allowed_domains` | (create) Additional domains valid for this auth flow. Common SSO providers are allowed by default. |
28+
| `credential_name` | (create) Name of a stored Kernel credential for automatic login. |
29+
| `credential_provider` | (create) External credential provider name, such as `1password`. Use with `credential_path` or `credential_auto`. |
30+
| `credential_path` | (create) Provider-specific item path, such as `Engineering/Netflix Admin`. |
31+
| `credential_auto` | (create) If true, the provider auto-looks up credentials by domain. |
32+
| `login_url` | (create) Explicit login page URL to skip discovery. |
33+
| `health_check_interval` | (create) Seconds between automatic re-auth checks. The max is 86400. |
34+
| `save_credentials` | (create) Save credentials after each successful login. Default true. |
35+
| `proxy_id` / `proxy_name` | (create, login) Proxy to route the auth flow through. |
36+
| `domain_filter` | (list) Filter by domain. |
37+
| `limit` | (list) Max results per page. Must be 1-100. |
38+
| `offset` | (list) Pagination offset. Must be 0 or greater. |
39+
| `fields` | (submit) Map of field name to value, such as `{ "mfa_code": "123456" }`. Check `discovered_fields` from `get`. |
40+
| `mfa_option_id` | (submit) MFA option ID from the connection. |
41+
| `sso_button_selector` | (submit) XPath of an SSO button to click instead of submitting fields. |
42+
43+
## Flow
44+
45+
1. Call `create` with `domain` and `profile_name`.
46+
2. Call `login` to start a login flow.
47+
3. Share the returned hosted URL with the user or watch the returned live view URL.
48+
4. Call `get` to poll flow state and inspect `discovered_fields`.
49+
5. Call `submit` when the flow asks for field values, an MFA option, or an SSO choice.
50+
51+
## Create a connection
52+
53+
```json
54+
{
55+
"action": "create",
56+
"domain": "accounts.example.com",
57+
"profile_name": "work-accounts",
58+
"credential_name": "example-work-login",
59+
"login_url": "https://accounts.example.com/login",
60+
"health_check_interval": 3600
61+
}
62+
```
63+
64+
## Submit an MFA code
65+
66+
```json
67+
{
68+
"action": "submit",
69+
"id": "authconn_2vE3Nq8WmY5bL0sC9pR1",
70+
"fields": {
71+
"mfa_code": "123456"
72+
}
73+
}
74+
```

0 commit comments

Comments
 (0)