Repository navigation
MCP: Update Node SDK to 0.148.0 - #262
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6a89cbd. Configure here.
| "manage_vaults", | ||
| "manage_vault_wallets", | ||
| "manage_vault_cards", | ||
| "manage_vault_payment_requests", |
bmsaadat
left a comment
There was a problem hiding this comment.
Smoke tested the Shop Pay changes against the prod API with a local build of this branch: wallet connect, card create, spec refusals, authorize at checkout, Shop approval, fill, a real $1 purchase on Kernel's Stripe link, and confirm_transaction (card consumed). All passed.
2e4e481 to
928a115
Compare
Rebases the coverage update branch onto main, which moved to SDK 0.141.0 without this coverage. Combines the updater commits for 0.133.0 through 0.140.0 (save_profile, auth connection human-in-the-loop, vault payment operations, and related coverage) with the save_profile request bounds and retry guidance fix that sat between them, so the updater can rebase again instead of stopping on a conflict. Conflicts resolved against main: keep main's 0.141.0 pin and lockfile, its SDK-derived managed auth types, and its removed-parameter rejection wrapper; keep this branch's added tool descriptions alongside main's vault fill selector guidance.
928a115 to
9f2d990
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Move save_profile result and retry semantics into its response note and error note, and wallet add/remove and token-refresh detail into the relevant parameter descriptions, keeping only what is needed to choose an action in each tool description.
Per-provider fill, billing, recovery, and confirm_transaction detail is already returned in each item's guidance; operation input constraints move to the inputs parameter. Descriptions keep what is needed to choose an action and the order of the checkout flow.
Both default to false, so only reject them when set to true.
A control url cannot be revoked, so expire it after 24 hours unless the caller passes live_view_ttl_seconds. Read urls keep no default.
Cap each tool description at 3,000 characters, with capped temporary exceptions for the vault tools and browser_repl, cap the full tools/list payload, and require destructiveHint true on any tool with a delete or remove action.

Summary
@onkernel/sdkto0.148.0.Coverage
MCP coverage report for
@onkernel/sdk0.148.0Review basis
/home/runner/work/kernel-node-sdk/kernel-node-sdk/mcpdbecf093f5601415c5c5a726d32782cda67c2c84($MAIN_SHA)0.148.0, pinned exactly in bothpackage.jsonandbun.lock1.3.3../sdk/CHANGELOG.md,../sdk/api.md, and generated resource sources/home/runner/work/_temp/sdk-method-params.md/home/runner/work/_temp/sdk-diff.patch,/home/runner/work/_temp/openapi-diff.patch, and thev0.140.0..v0.148.0SDK comparison$MAIN_SHA:/home/runner/work/_temp/mcp-final-main.diff/home/runner/work/_temp/mcp-final-untracked.diffResult
The MCP server now has user-facing treatment for the SDK 0.141.0 through 0.148.0 changes while retaining the branch's existing 0.133.0 through 0.140.0 coverage. New capabilities are mapped into existing grouped tools rather than creating unnecessary one-off tools. Sensitive or unbounded SDK surfaces are either represented by a safer MCP workflow or deliberately excluded below.
No production API calls were made. Tests use injected clients or mocked HTTP responses.
Coverage added or synchronized for SDK 0.141.0-0.148.0
0.141.0
manage_vault_provider_configslist/get, includingenvironmentandvault_id, without returning secrets.manage_vault_items.card_mode, can be authorized throughmanage_vault_cardswith no browser inputs, and can use their advertised fill operation throughmanage_vault_items.fullversuscvc_only, expiry, and merchant-outcome reconciliation.3GiB/6GiBvalues, preserves deprecated2GiB/4GiBaliases only for compatibility, upgrades them, and returns a warning.serpapiorvalyuvalues.access_token_rejected, trusted-backend token replacement, and refusal to accept secret token updates through MCP.0.142.0 — reserved ISP IPs
manage_proxiesnow covers:config.ip_addressip_addressfalse/zero/pagination behavior in mocked testsConfig-registry recommendations that contain
proxy.create.config.ip_addressare preserved and documented as input tomanage_proxies create.0.143.0
No new user-facing SDK API surface required an MCP tool change.
0.144.0 — server-to-server Kernel card ingest
add_payment_methodaccepts optionalenrollment: "hosted" | "server"through bothmanage_vault_walletsand generic advertised invocation.card_ingestaction URL and 5-minute expiry guidance for the trusted issuer backend.capture_tokenremains omitted.issuer_referenceandvalid_untilmetadata.0.145.0
expire_in_days=0rotation asynchronously end attributed browser sessions and discard unsaved profile changes, while grace-period/natural expiry does not.state.credential_typeis projected and guidance distinguisheslink_pay_tokenfrom virtual-card fill. Absence on an older ready item is treated as card behavior.0.146.0 — replay auto-start
manage_browsers createforwardsstart_replay, including explicitfalse, and preserves returned replay metadata.manage_browser_poolscovers create/update defaults plus acquire-only override, including explicitfalseand replay metadata in compact summaries.manage_apps list_invocation_browsersnow preserves invocation-browser replay metadata.0.147.0 — native OAuth preparation
The SDK changes are transport/authentication infrastructure, not model-facing resource operations. They remain in the MCP OAuth/transport layer rather than being exposed as tools. Existing auth/project selection and relay security are preserved and covered by the full test suite.
0.148.0
manage_browsersactioncreate_live_viewwithread/controlscope and optional bounded TTL.maxRetries: 0; a lost response cannot mint a second unknown capability.browser.location.localeis supported on connection create/update.nullis update-only and clears the locale; omission preserves/defaults correctly.1pw_access_request_statusaccepts boundedtimeout_seconds(0..120, default server behavior when omitted), forwards significant zero, and uses bounded no-retry request options.expiredandunknownstates are described correctly.access_request_referenceis intentionally omitted because it carries the same sensitive request capability as the native approval URL. Mobile applications that need it must use the direct API/SDK.Existing branch coverage retained from SDK 0.133.0-0.140.0
The pre-existing
9f2d990branch changes remain part of the final diff and were included in review:save_profilewith bounded wait/no-retry semantics and restart guidancetool_page_unloaded/unknown-outcome handlingFull SDK resource treatment
manage_api_keys; one-time plaintext responses remain secret-handling responsibilities.manage_apps. Deployment creation and invocation update are deployment/runtime control-plane operations, not agent tools. Follow streams use bounded list/get workflows.manage_auth_connections; context throughget_connection_context. SSE follow is represented by bounded wait/timeline behavior. Native OAuth remains transport infrastructure.manage_browser_pools, including profiles, extensions, network, telemetry, location, replay, false/zero values, and pagination.manage_browsers; curl/fetch through browser utilities; computer, files, REPL, Playwright, shell, WebMCP, and replays through grouped tools.computer_action.manage_browser_files, with binary data converted to MCP-safe content.manage_config_registry; SDKwaitForResultis represented by explicit bounded polling.manage_credential_providers.manage_credentials; vault-backed secret values remain projected or filled under vault-specific controls.manage_extensions; upload/download/store-download binary/package operations are direct API/SDK workflows.manage_projects; organization entitlement/limit administration is not exposed as an agent tool.manage_proxies.web_search; provider slugs come from live discovery.available_operations.Security and behavior decisions
capture_token, 1Passwordaccess_request_reference, provider paths/identities, resolved secret references, raw provider data, and VGS aliases remain omitted.projectForOperation; organization-scoped provider-config write restrictions remain enforced.false,0, omitted fields, nullable update clears, pagination, and unknown outcomes are covered by mocked tests.Deliberate exclusions
access_request_referenceand direct token/reference operations — sensitive capability/token material stays in native/direct integrations.Tests added or extended
Mocked coverage now includes:
false, live-view scope/TTL/default omission/action validation/no retrycard_ingest, safe issuer fields, capture-token omission, malformed responses, generic invocationcredential_typeprojectioncvc_only, alias omission, and egress guidanceFinal diff review
$MAIN_SHA, not a moving branch.src/lib/mcp/tools/config-registry.test.ts(61 lines).package.jsonandbun.lock.git diff --check "$MAIN_SHA"passes.Validation
Required checks, final state:
bun run check:managed-auth-app— passedbunx tsc --noEmit --incremental false— passedbun test— passed: 1,284 tests, 0 failures, 5,814 assertions across 83 filesAdditional checks:
git diff --check— passedbunx prettier --check src/lib/mcp/tools/config-registry.test.ts— passedbun run format:check— not clean due to a pre-existing repository baseline issue: it reports 191 files, including untouchedsrc/lib/cn.ts; that file has no diff from$MAIN_SHAand independently fails the same Prettier check. No broad formatting rewrite was made.Validation
Note
Medium Risk
Touches vault payment flows, live-view bearer URLs, API-key revocation side effects, and broad MCP tool contracts; mitigated by extensive tests and no-retry semantics on sensitive calls.
Overview
Bumps
@onkernel/sdkto 0.148.0 and extends MCP tool contracts, schemas, and tests to mirror the new API surface.Browsers & pools:
manage_browsersgainscreate_live_view,save_profile, create-timefingerprint(macOS beta),start_replay, and richer responses (leased_at, replay metadata). Telemetry docs coverpayment_window_expired.manage_browser_poolsforwardsstart_replayand surfaces lease/replay metadata on acquire.Auth & proxies:
manage_auth_connectionsaddshitland connection-defaultbrowser.location.locale, with wait/get guidance forAWAITING_HUMAN_INTERVENTION.manage_proxiessupports reserved ISPconfig.ip_address,move, list/get reserved IPs, and list filtering by exit IP; config-registry lookup text notes nested pin recommendations.Vaults & keys: Vault tools expand for Shop Pay, managed_auth credential references, safer Kernel/VGS card flows (no MCP creation of secret single-use inputs), and entitlement gating for
manage_vault_payment_requests.manage_api_keysaddslast_used_atsorting and documents async session cleanup on delete/immediate rotate.Guardrails: New
tool-contract.test.tsenforces description/tools/listsize budgets and destructive-action hints. Playwright/REPL copy warns against retryingwebmcp.invokeToolaftertool_page_unloadedor uncertain outcomes.Reviewed by Cursor Bugbot for commit 508e235. Bugbot is set up for automated code reviews on this repo. Configure here.
Follow-up changes
These are human review fixes committed on top of the updater commit
cabb8fd. The bot's commits are not rewritten.9746ee5Ran prettier on 8 files from this update. No content changes.15ed638,4f1448fShortened four tool descriptions. Per-action detail now sits in the parameter descriptions, theinputsparameter, or the response guidance and notes returned after a call.save_profilesuccess responses now carry anote, and its errors append retry guidance.cabb8fdmanage_browsersmanage_vault_walletsmanage_vault_itemsmanage_vault_cardstools/listpayload, all toolsetse17fd0ffingerprintno longer requires passingheadless=falseandgpu=false, since both default to false. Setting either totrue, settingmemory, or omittingstealth=trueis still rejected before the API call.fd87e15create_live_viewwith scopecontroland nolive_view_ttl_secondsnow sends a TTL of 86,400 seconds (24 hours), because control URLs cannot be revoked. The parameter description and the resultnotesay so. Read-scope URLs keep no default.508e235Addedtool-contract.test.ts. It enforces three limits:manage_vault_items10,000,manage_vault_cards8,000,manage_vault_credentials6,100 (consent and secret-handling rules) andbrowser_repl7,200 (repl helper reference).tools/listpayload is at most 230,000 characters.destructiveHint: true.destructiveHintonmanage_vault_walletsstaystrue. Before this update the tool only hadcreate(create or retrieve) andpayment_methods(read). This update addsremove_payment_method. The MCP spec reservesfalsefor tools that only make additive updates, and every othermanage_*tool with a delete or remove action usestrue. The cost is that clients which confirm destructive tools will also prompt for walletcreateandpayment_methods. Avoiding that would mean moving add/remove into their own tool.Not changed: parsing of
manage_vault_itemsinvoke inputs. It was not replaced with a lookup table. Later code uses each operation's typed parsed inputs, so a table would need casts or a new union type. Also, only 4 of the 9 parsed operations have tests that pin their invalid-input errors.Open question for the vault owner:
manage_vault_walletsadd_payment_methodwithenrollment: "server"returns a single-usecard_ingestbearer URL into the model's context. The guidance says to send it only to the issuer's backend, but in an MCP chat the model or the user is the only way to deliver it. Should server enrollment be exposed through MCP at all? This PR does not change it.Validation:
bunx tsc --noEmitpasses;bun testpasses all 1,289 tests;prettier --check "src/**/*.ts"passes.