Kernel MCP Server
MCP serverSecurityThis integration gives your AI access to Kernel's cloud-based browsers and app actions. Once added, your AI can browse the web and carry out actions in apps using browsers that run in Kernel's cloud. The connection works remotely over the internet and signs in with OAuth.
Use Kernel MCP Server in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Kernel MCP Server and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use Kernel MCP Server
Needs your own Kernel MCP Server account. You sign in to it and approve access when you connect.
Details
Available today. Use it from your connected AI after setup.
Add the integration, then sign in with OAuth to connect Kernel's cloud browsers. After that, ask your AI to browse the web or take actions in your apps.
What your AI can do with it
- Browse the web using cloud-based browsers
- Carry out actions inside apps
- Connect remotely over the internet
- Sign in with OAuth
Install Kernel MCP Server
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user kernel-mcp-server 'https://mcp.onkernel.com/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://mcp.onkernel.com/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=kernel-mcp-server&config=eyJ1cmwiOiJodHRwczovL21jcC5vbmtlcm5lbC5jb20vbWNwIn0=Open the link and Cursor adds the server at that address.
ChatGPT
https://mcp.onkernel.com/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add kernel-mcp-server --url 'https://mcp.onkernel.com/mcp'Run it once, then sign in with codex mcp login kernel-mcp-server if the server asks for an account.
From the project's README
As published by onkernel/kernel-mcp-server in README.md.
A Model Context Protocol (MCP) server that provides AI assistants with secure access to Kernel platform tools and browser automation capabilities.
🌐 Use instantly at https://mcp.onkernel.com/mcp — no installation required!
What is this?
The Kernel MCP Server bridges AI assistants (like Claude, Cursor, fx, or other MCP-compatible tools) with the Kernel platform, enabling them to:
- 🚀 Deploy and manage Kernel apps in the cloud
- 🌐 Launch and control headless Chromium sessions for web automation
- 📊 Monitor deployments and track invocations
- 🔍 Search Kernel documentation and inject context
- 💻 Execute arbitrary Playwright code against live browsers
- 🧠 Run persistent JavaScript Browser REPL cells with native helpers, Patchright, Playwright, and raw CDP
- 🎥 Record MP4 video replays of browser automation
Open-source & fully-managed — the complete codebase is available here, and we run the production instance so you don't need to deploy anything.
The server uses OAuth 2.0 authentication via Clerk to ensure secure access to your Kernel resources. During authorization, users can grant organization-wide access or restrict the resulting access and refresh tokens to one Kernel project. Project-scoped tokens cannot switch projects; organization-wide authorization remains available for existing workflows.
For a deeper dive into why and how we built this server, see our blog post: Introducing Kernel MCP Server.
Setup Instructions
General (Transports)
- Streamable HTTP (recommended):
https://mcp.onkernel.com/mcp - stdio via
mcp-remote(for clients without remote MCP support):npx -y mcp-remote https://mcp.onkernel.com/mcp
Use the streamable HTTP endpoint where supported for increased reliability. If your client does not support remote MCP, use mcp-remote over stdio.
Kernel's server is a centrally hosted, authenticated remote MCP using OAuth 2.1 with dynamic client registration.
Protocol compatibility
The same /mcp endpoint serves SDK v1 / 2025-era Streamable HTTP clients and
protocol revision 2026-07-28 clients through the SDK v2 stateless handler.
Legacy clients still initialize normally. Modern clients use per-request metadata
and do not initialize or receive an MCP session ID. Both use the same tools and
authentication checks; MCP Apps capabilities are read per request for modern clients.
Legacy clients should handle both JSON-RPC errors and isError tool results.
Unknown tools now produce JSON-RPC error -32602; ordinary tool failures still
return isError. Validation-error text and generated tool schemas can differ from
SDK v1. No byte-preserving compatibility layer or Tasks extension is installed.
Run bun test 'src/app/[transport]/dual-era.test.ts' to exercise both SDK client
generations over HTTP, including OAuth authorization and refresh with local upstream
service fixtures. The v1 SDK is retained only as a test dependency.
Quick Setup with Kernel CLI
The fastest way to configure the MCP server is using the Kernel CLI:
# Install the CLI
brew install onkernel/tap/kernel
# or: npm install -g @onkernel/cli
# Install MCP for your tool
kernel mcp install --target <target>
Supported Targets
| Target | Command |
|---|---|
| Cursor | kernel mcp install --target cursor |
| Claude Desktop | kernel mcp install --target claude |
| Claude Code | kernel mcp install --target claude-code |
| VS Code | kernel mcp install --target vscode |
| Windsurf | kernel mcp install --target windsurf |
| Zed | kernel mcp install --target zed |
| Goose | kernel mcp install --target goose |
| fx | kernel mcp install --target fx |
The CLI automatically locates your tool's config file and adds the Kernel MCP server configuration.
Connect in your client
Claude
Our remote MCP server is not compatible with the method Free users of Claude use to add MCP servers.
Pro, Max, Team & Enterprise (Claude.ai and Claude Desktop)
- Go to Settings → Connectors → Add custom connector.
- Enter: Integration name:
Kernel, Integration URL:https://mcp.onkernel.com/mcp, then click Add. - In Settings → Connectors, click Connect next to
Kernelto launch OAuth and approve. - In chat, click Search and tools and enable the Kernel tools if needed.
On Claude for Work (Team/Enterprise), only Primary Owners or Owners can enable custom connectors for the org. After it's configured, each user still needs to go to Settings → Connectors and click Connect to authorize it for their account.
Claude Code CLI
claude mcp add --transport http kernel https://mcp.onkernel.com/mcp
# Then in the REPL run once to authenticate:
/mcp
Cursor
Automatic setup
Manual setup
- Press ⌘/Ctrl Shift J.
- Go to MCP & Integrations → New MCP server.
- Add this configuration:
{
"mcpServers": {
"kernel": {
"url": "https://mcp.onkernel.com/mcp"
}
}
}
- Save. The server will appear in Tools.
OpenCode
Add the following to your ~/.config/opencode/opencode.jsonc:
{
"mcp": {
"kernel": {
"type": "remote",
"url": "https://mcp.onkernel.com/mcp",
},
},
}
Then authenticate using the OpenCode CLI:
# Authenticate with Kernel
opencode mcp auth kernel
# If you need to re-authenticate, first logout then auth again
opencode mcp logout kernel
opencode mcp auth kernel
fx
Configure Kernel with the Kernel CLI:
kernel mcp install --target fx
Or add Kernel to the mcp map in ~/.fx/mcp.json manually:
{
"mcp": {
"kernel": {
"type": "http",
"url": "https://mcp.onkernel.com/mcp",
"oauth": {}
}
}
}
Start fx, or reload the configuration in an existing session:
/mcp reload
Then authenticate with Kernel:
/mcp auth kernel --open
Authorize access in the browser window that opens. Run /mcp list to verify that Kernel is connected.
Goose
Click here to install Kernel on Goose in one click.
Goose Desktop
- Click
Extensionsin the sidebar of the Goose Desktop. - Click
Add custom extension. - On the
Add custom extensionmodal, enter:- Extension Name:
Kernel - Type:
STDIO - Description:
Access Kernel's cloud-based browsers via MCP - Command:
npx -y mcp-remote https://mcp.onkernel.com/mcp - Timeout:
300
- Extension Name:
- Click
Save Changesbutton.
Goose CLI
- Run the following command:
goose configure - Select
Add Extensionfrom the menu. - Choose
Command-line Extension. - Follow the prompts:
- Extension name:
Kernel - Command:
npx -y mcp-remote https://mcp.onkernel.com/mcp - Timeout:
300 - Description:
Access Kernel's cloud-based browsers via MCP
- Extension name:
Visual Studio Code
{
"mcpServers": {
"kernel": {
"url": "https://mcp.onkernel.com/mcp",
"type": "http"
}
}
}
- Press ⌘/Ctrl P → search MCP: Add Server.
- Select HTTP (HTTP or Server-Sent Events).
- Enter:
https://mcp.onkernel.com/mcp - Name the server Kernel → Enter.
Windsurf
- Press ⌘/Ctrl , to open settings.
- Navigate Cascade → MCP servers → View raw config.
- Paste:
{
"mcpServers": {
"kernel": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}
}
- On Manage MCPs, click Refresh to load Kernel MCP.
Zed
- Press ⌘/Ctrl , to open settings.
- Paste:
{
"context_servers": {
"kernel": {
"source": "custom",
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}
}
Smithery
You can connect directly to https://mcp.onkernel.com/mcp, or use Smithery as a proxy using its provided URL.
-
Use Smithery URL in any MCP client:
- Open Smithery: Kernel.
- Copy the URL from "Get connection URL".
- Paste it into your MCP client's "Add server" flow.
-
Use Kernel in Smithery's Playground MCP client:
- Open Smithery Playground.
- Click "Add servers", search for "Kernel", and add it.
- Sign in and authorize Kernel when prompted.
Others
Many other MCP-capable tools accept:
- Command:
npx - Arguments:
-y mcp-remote https://mcp.onkernel.com/mcp
{
"kernel": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}
Configure these values wherever the tool expects MCP server settings.
Tools
Each Kernel feature has a single manage_* tool with an action parameter, keeping the tool set small and consistent. Standalone tools handle high-frequency and interactive workflows.
One additional Managed Auth helper (begin_auth_login) is marked app-only (_meta.ui.visibility: ["app"]); it refuses to execute on hosts that do not declare MCP Apps support. The App forwards the server-issued signed flow checkpoint to the shared manage_auth_connections wait action, so flow identity and terminal-state decisions stay on the server.
Self-hosted deployments can select tool families with KERNEL_MCP_ENABLED_TOOLSETS or hide them with KERNEL_MCP_DISABLED_TOOLSETS. Both accept comma- or space-separated toolset names and standalone aliases. For example, KERNEL_MCP_ENABLED_TOOLSETS="playwright repl computer" exposes browser-control tools without browser lifecycle or managed-auth tools, while KERNEL_MCP_DISABLED_TOOLSETS=api_keys only removes manage_api_keys. get_connection_context remains available in either mode.
Call get_connection_context before deciding whether to create or select a project. Its canonical connection_scope reports whether the connection is organization-wide or fixed to a project. Project-scoped tools advertise an optional project (name or ID) and a deprecated project_id: organization-wide connections may omit them to preserve organization-wide reads and API default-project behavior, while fixed-project connections may omit them or pass the matching project. Project resources use project-qualified kernel://orgs/{organizationId}/projects/{projectId}/... URIs. Authorization remains enforced by the Kernel API; selecting a project never grants access to it.
Inputs that mirror the API's nested proxy, network, browser, and proxy config objects replace older flat inputs such as proxy_id, proxy_routes, browser_region, and custom_host. The flat inputs remain as deprecated aliases, and combining one with its nested replacement is rejected. Tool-call analytics records the names, never the values, of deprecated inputs each call used in $mcp_deprecated_params; the tracked list lives in src/lib/mcp/deprecated-params.ts.
manage_* tools
manage_browsers- Create, update, list, get, and delete browser sessions, and read archived telemetry for active or deleted sessions. Supports headless mode, site-compatibility settings, profiles, proxies (proxyby id, name, or mode), create-only per-host proxy routes (network.proxy_routes) and private-host routing (network.private_hosts), viewports, extensions, names and tags, and SSH tunneling. The browser tools (manage_browsers,computer_action,execute_playwright_code,browser_repl,exec_command,browser_curl,manage_browser_files,manage_replays,webmcp) accept a live session's name in place of itssession_id; deleted sessions, andmanage_browser_poolsrelease, take the ID only.manage_profiles- Setup (with guided live browser session), search/list with pagination, get, and delete browser profiles for persisting cookies and logins.manage_projects- Create, list, get, update, and delete organization projects. Inspect and update per-project resource limits.manage_api_keys- Create, list, get, update, and delete org-wide or project-scoped API keys. Create returns the plaintext key once.manage_browser_pools- Create, list, get, delete, and flush pools of pre-warmed browsers. Acquire and release browsers from pools.manage_browser_files- Read, write, upload, download, and manage files in running browser VMs. Supports text and base64 input and returns binary downloads as embedded MCP resources. Paths must be absolute.read,download, anddownload_dir_ziprefuse files or archives overmax_bytes(default 10 MiB, maximum 25 MiB) instead of truncating them; mutating actions are never retried.manage_config_registry- Look up current browser and proxy recommendations, start and inspect analyses, request cancellation, and list project configurations or analysis history.manage_proxies- Create, list, get, check, and delete proxy configurations (datacenter, ISP, residential, mobile, custom). List filters by exactnameor aquerysubstring.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.manage_playwright_executors- List and delete the Playwright executors of a browser session.listreturns every executor (defaultfirst) withbusy,created_at,last_used_at, and for named executors thetarget_idandurlof the tab it owns.deletetakesnameand an optionalclose_tab(default true); deletingdefaultrestarts it instead of removing it. A browser can have at most 8 named executors.web_search- Search the web, retrieve retained results, and inspect provider capabilities. Tool visibility uses a per-credential, per-connection Search entitlement snapshot cached for up to 30 minutes; the Search API remains authoritative for execution access. Search creation is billable and is not automatically retried.manage_extensions- List and delete uploaded browser extensions.manage_apps- List/search apps, invoke actions, get/list/delete deployments, and get invocation results.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-filteredlistfor discovery. App-capable clients additionally receiveopen_auth_login; the programmatic actions remain available there too.manage_credentials- Create, list, get, update, and delete stored credentials; fetch a current TOTP code for credentials with a configured totp_secret.manage_credential_providers- Create, list, get, update, and delete external credential providers (e.g. 1Password); list available items and test the provider connection.manage_vault_provider_configs- Create, list, get, rename, rotate secrets, and delete organization-owned Link and AgentCard configurations. Writes require organization scope.manage_vaults- Create, list, get, and delete project-owned vaults; use one per end user.manage_vault_wallets- Connect Kernel-managed or configured Link/AgentCard wallets, import Link grants from a trusted backend, and inspect live payment methods.manage_vault_cards- Create or update card requests according to the API's lifecycle rules; does not implicitly authorize Link cards. AgentCardcheckout_originis caller-declared for eligible autopilot rule matching on non-prepared checkout authorizations; Kernel forwards it without comparing it with the browser page. Omission keeps the existing approval flow, autopilot may fall back to user approval, and prepared checkout usespreparation.merchant_origin. It does not enable autopilot or ensure payment success.manage_vault_credentials- Create credentials through one of two user-chosen paths: Kernel-hosted collection (definitions for private human collection; update values or description with version and optional immutable item identity preconditions) or 1Password brokered approval (connect a 1Password account, then create a request for 1-5 logins the user approves in the 1Password app). Agents reuse an existing credential for the site first, otherwise ask the user where their login lives before creating credentials.manage_vault_items- List, get, invoke advertised operations (including fill andwebmcp_invokewith value-free bindings), observe events, and delete vault items. Read credential definitions, presence, version, collection links, and explicitly non-sensitive values; sensitive values remain hidden.collectreopens the full form; provider approvals remain user actions. Ready is not login or payment success.
See Vault payments for both provider flows, safety rules, and response shapes. manage_browsers accepts creation-only vaults references (max 20); existing sessions and pools cannot gain vault bindings. The six vault tools share the vaults toolset and prepare/observe credentials rather than submitting merchant payments. They are exposed only when GET /org/entitlements reports features.vaults.enabled: true for the current credential; missing or unavailable entitlements hide them. Toolset configuration cannot override this access check. Credential create → collect → readiness → fill is supported entirely through MCP tools. prepare_checkout remains API/CLI-only. The SDK dependency is pinned in bun.lock.
Standalone tools
get_connection_context- Inspect the authenticated principal, organization, credential scope, and effective project scope.computer_action- Mouse, keyboard, clipboard, and screenshot controls for browser sessions (click, type, press_key, scroll, move, get_position, read_clipboard, write_clipboard, screenshot).browser_curl- Send HTTP requests through an existing browser session's Chrome network stack.execute_playwright_code- Execute isolated Playwright/TypeScript code and browser-wide WebMCP helpers against an existing browser session. Does not create or delete browsers - usemanage_browsersfor session lifecycle. Every call runs in an executor: omitexecutor(or passdefault) to bindpageto the active tab, or give each independent task its ownexecutorname to run them in parallel in separate background tabs of one browser. Calls on the same executor run one at a time. The result includes thetab(target_id,created) thatpagewas bound to.browser_repl- Execute JavaScript in a persistent Node.js runtime inside an existing browser VM. Top-level bindings survive across calls and can use native browser helpers, WebMCP, Patchright, Playwright, raw CDP, Node built-ins, files, processes, and the network. The tool description includes native-helper, raw-CDP, and Patchright/Playwright examples; callrepl.help()inside a cell for the runtime method reference. This is unrestricted VM code execution, not a sandbox. See the complete Browser REPL reference.webmcp- Discover native and custom tools across tabs and frames, invoke an exact opaquetool_ref, and manage custom definitions withlist_custom,add_custom, andremove_custom. See WebMCP actions below.exec_command- Run shell commands inside a browser VM. Returns decoded stdout/stderr.search_docs- Search Kernel platform documentation and guides.get_more_tools- Report a structured KERNEL capability, external-integration gap, or missing site-specific WebMCP action after checking available tools. For site actions, listwebmcptools first; usesite_tool_missingwithcapability_area: "webmcp", an optional public registrablesite_domain, and a generic action name. Site requests are routed separately aswebmcp_catalog_demand; reporting does not install a tool, so continue with Playwright when possible. Existing-tool failures, transient capacity errors, and client permission restrictions are rejected from capability-demand analytics. Accepted requests emitmcp_capability_requested; clients using the previous context-only schema receive a non-recording refresh response instead of a tool error.submit_feedback- Send product, site-compatibility, config-registry, MCP, or documentation feedback directly to the KERNEL team without interrupting the current task. Reports include a normalized task outcome; MCP reports identify one KERNEL-owned tool. Config-registry reports connect exactly one observed outcome to the browser session, recommendation metadata and evidence, and unchanged browser and proxy settings.open_auth_login- Open a secure interactive Managed Auth MCP App after user consent. Registered only for clients that declare MCP Apps support; credentials and MFA never enter MCP/model traffic.
WebMCP actions
All webmcp actions require session_id (a live browser ID or name) and accept optional project selection.
| Action | Parameters | Result |
|---|---|---|
list | Optional exclude_custom: true excludes custom tools; omitted or false includes them. | { tools: [...] } with live tool_ref, nested tool metadata, and source. |
invoke | tool_ref from the latest list, input matching tool.inputSchema, optional timeout_sec (1–120, default 60). | invocation_id, status, optional output and error_text. |
list_custom | None beyond session/project. | All registered custom definitions: id, namespace, kind (page or cdp), match.url_patterns, and tool. |
add_custom | namespace, source, optional force_overwrite_namespace. | The registered batch, in the same shape as list_custom. |
remove_custom | custom_tool_id from list_custom or add_custom (matches ^ct_[a-z][a-z0-9]{23}$). | Removal confirmation. |
Shortened here. Read the whole README on GitHub.
Signals
- GitHub stars
- 37
- Forks
- 8
- Last commit
- Oct 2026
Advanced
- Delivery
- kernel-mcp-server MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
com-onkernel-kernel-mcp-server- Source
- github.com/onkernel/kernel-mcp-server
- Hosted endpoint
https://mcp.onkernel.com/mcp
github.com/onkernel/kernel-mcp-server
More in Security
MCP server
More in Securityechelongraph-mcp
MCP server · echelongraph
More in Securitynotfair
MCP server · nowork-studio
More in Securityfeedmyagent
MCP server · makash
More in Securityopenwork
MCP server · different-ai
More in Securityosv-advisory-mcp-server
MCP server · cyanheads
More in Security