Skip to content

Commit 5ceeed4

Browse files
authored
Merge pull request #173 from kernel/hypeship/sync-managed-auth-options
Sync MCP managed auth options
2 parents c4d6945 + 5e5976c commit 5ceeed4

13 files changed

Lines changed: 769 additions & 118 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ Call `get_connection_context` before deciding whether to create or select a proj
313313
- `manage_replays` - Start, stop, and list MP4 video replay recordings for a browser session. Session-scoped: start once, run your automation, then stop. Requires a paid Kernel plan.
314314
- `manage_extensions` - List and delete uploaded browser extensions.
315315
- `manage_apps` - List/search apps, invoke actions, get/list/delete deployments, and get invocation results.
316-
- `manage_auth_connections` - Create, list, get, delete, login, submit, and wait for managed-auth connections in every client. Use domain-filtered `list` for discovery. App-capable clients additionally receive `open_auth_login`; the programmatic actions remain available there too.
316+
- `manage_auth_connections` - Create, list, get, update, delete, login, submit, inspect timelines, and wait for managed-auth connections in every client. Supports health-check and automatic re-auth settings, managed-auth browser configuration, and canonical interaction-bound field/choice submissions. Use domain-filtered `list` for discovery. App-capable clients additionally receive `open_auth_login`; the programmatic actions remain available there too.
317317
- `manage_credentials` - Create, list, get, update, and delete stored credentials; fetch a current TOTP code for credentials with a configured totp_secret.
318318
- `manage_credential_providers` - Create, list, get, update, and delete external credential providers (e.g. 1Password); list available items and test the provider connection.
319319

@@ -380,7 +380,7 @@ Returns: { success: true, result: "Example Domain" }
380380

381381
Example: “Log me into my Hacker News account and update my profile to add a random emoji at the bottom.” The agent should discover `news.ycombinator.com`, open the App when needed, wait for authentication, then continue the profile edit without asking for credentials or a profile name in chat.
382382

383-
The secure App defaults `record_session` and `browser_telemetry.enabled` to `true`, recording replay video plus the operational telemetry categories (`control`, `connection`, `system`, and `captcha`) for managed-auth browser sessions. Callers can explicitly disable either setting. The programmatic `manage_auth_connections` create/login actions preserve the API’s opt-in and inheritance behavior when these parameters are omitted.
383+
The secure App defaults `record_session` and `browser_telemetry.enabled` to `true`, recording replay video plus the operational telemetry categories (`control`, `connection`, `system`, and `captcha`) for managed-auth browser sessions. Callers can explicitly disable either setting. The programmatic `manage_auth_connections` create, update, and login actions pass browser telemetry through the API’s current nested `browser.telemetry` configuration while preserving defaults and inheritance when the MCP parameter is omitted.
384384

385385
### Set up browser profiles for authentication
386386

bun.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
"@clerk/nextjs": "^7.7.1",
4040
"@clerk/themes": "^2.4.19",
4141
"@modelcontextprotocol/sdk": "1.26.0",
42-
"@onkernel/managed-auth-react": "0.4.1",
43-
"@onkernel/sdk": "^0.90.0",
42+
"@onkernel/managed-auth-react": "0.5.1",
43+
"@onkernel/sdk": "^0.97.0",
4444
"@posthog/mcp": "0.10.1",
4545
"@types/jsonwebtoken": "^9.0.10",
4646
"@types/redis": "^4.0.11",

src/lib/mcp/apps/generated/managed-auth-app.ts

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

src/lib/mcp/apps/managed-auth-terminal.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
isTerminalFailure,
55
} from "@/lib/mcp/apps/managed-auth-terminal";
66

7-
// Mirrors the hosted UI (@onkernel/managed-auth-react 0.4.1): FAILED/CANCELED
7+
// Mirrors the hosted UI (@onkernel/managed-auth-react): FAILED/CANCELED
88
// render StepError with the actual safe error code so ERROR_DISPLAY copy
99
// survives; EXPIRED renders StepExpired.
1010
describe("managed-auth terminal view", () => {

src/lib/mcp/tools/apps.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ describe("manage_apps invocation contract", () => {
108108
created_at: "2026-08-08T00:00:00Z",
109109
headless: false,
110110
stealth: true,
111+
memory: "2GiB",
111112
timeout_seconds: 600,
112113
region: "us-east",
113114
},

src/lib/mcp/tools/auth-connections.test-fixtures.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,22 @@ export function connection(overrides: Partial<ManagedAuth> = {}): ManagedAuth {
2525
hosted_url: "https://managed-auth.onkernel.com/login/conn_1?code=secret",
2626
live_view_url: "https://live.example/secret",
2727
browser_session_id: "browser_secret",
28+
interaction_id: "mai_secret",
29+
fields: [
30+
{
31+
id: "field_password",
32+
ref: "password",
33+
type: "password",
34+
reason: "missing",
35+
},
36+
],
37+
choices: [
38+
{
39+
id: "work-account",
40+
label: "Work account",
41+
type: "account",
42+
},
43+
],
2844
discovered_fields: [
2945
{
3046
label: "Password",
@@ -129,6 +145,9 @@ const forbiddenKeys = [
129145
"jwt",
130146
"authorization",
131147
"credential",
148+
"interaction_id",
149+
"fields",
150+
"choices",
132151
"discovered_fields",
133152
"mfa_options",
134153
"pending_sso_buttons",

0 commit comments

Comments
 (0)