Connects Claude and other MCP clients to Kernel's cloud browser automation platform via OAuth-authenticated remote MCP. You get tools to spin up headless Chromium sessions, run Playwright code against live browsers, deploy Kernel apps, and monitor invocations. The server is fully managed at mcp.onkernel.com, so there's no local setup beyond adding the HTTP endpoint to your client config. All browser sessions run in Kernel's cloud infrastructure and can record video replays automatically. Reach for this when you need your AI assistant to drive real web automation tasks without managing browser infrastructure yourself, or when you want to prototype Playwright scripts through conversation before hardening them into production code.
Public tool metadata for what this MCP can expose to an agent.
search_docsFast vector search through Kernel platform documentation to find relevant information, guides, tutorials, and API references. Returns ranked documentation chunks with titles, URLs, and content snippets. Use this tool when you need to understand how Kernel features work, troubl...1 paramsFast vector search through Kernel platform documentation to find relevant information, guides, tutorials, and API references. Returns ranked documentation chunks with titles, URLs, and content snippets. Use this tool when you need to understand how Kernel features work, troubl...
querystringlist_appsList all apps deployed in the Kernel platform. Use this to discover available apps, check their versions, or filter by specific criteria. Helpful for understanding what apps are available before invoking actions.2 paramsList all apps deployed in the Kernel platform. Use this to discover available apps, check their versions, or filter by specific criteria. Helpful for understanding what apps are available before invoking actions.
versionstringapp_namestringinvoke_actionExecute a specific action within a Kernel app. This is the primary way to interact with deployed apps - use this to trigger workflows, run computations, or perform operations. The action will run asynchronously and you can track its progress with the returned invocation ID.4 paramsExecute a specific action within a Kernel app. This is the primary way to interact with deployed apps - use this to trigger workflows, run computations, or perform operations. The action will run asynchronously and you can track its progress with the returned invocation ID.
payloadstringversionstringapp_namestringaction_namestringget_browserRetrieve detailed information about a specific browser session including its current status, configuration, and metadata. Use this to check if a browser is still active, get its access URLs, or understand its current state before performing operations.1 paramsRetrieve detailed information about a specific browser session including its current status, configuration, and metadata. Use this to check if a browser is still active, get its access URLs, or understand its current state before performing operations.
idstringcreate_browserLaunch a new browser session in the Kernel platform. This creates a managed browser instance that can be used for web automation, testing, or interactive browsing. The browser runs in a secure sandbox environment and can be configured with various options like headless mode, s...5 paramsLaunch a new browser session in the Kernel platform. This creates a managed browser instance that can be used for web automation, testing, or interactive browsing. The browser runs in a secure sandbox environment and can be configured with various options like headless mode, s...
stealthbooleanheadlessbooleaninvocation_idstringpersistence_idstringtimeout_secondsnumberdelete_browserPermanently terminate and clean up a browser session. This will stop the browser instance, free up resources, and remove any associated data. Use this when you no longer need a browser session or want to clean up after completing automation tasks.1 paramsPermanently terminate and clean up a browser session. This will stop the browser instance, free up resources, and remove any associated data. Use this when you no longer need a browser session or want to clean up after completing automation tasks.
persistence_idstringget_deploymentRetrieve comprehensive information about a specific deployment including its current status, build logs, configuration, and health metrics. Use this to monitor deployment progress, troubleshoot deployment issues, or verify that an app was deployed successfully.1 paramsRetrieve comprehensive information about a specific deployment including its current status, build logs, configuration, and health metrics. Use this to monitor deployment progress, troubleshoot deployment issues, or verify that an app was deployed successfully.
idstringget_invocationRetrieve detailed information about a specific action invocation including its execution status, output data, error messages, and runtime metrics. Use this to check if an invoked action completed successfully, get its results, or troubleshoot failed executions.1 paramsRetrieve detailed information about a specific action invocation including its execution status, output data, error messages, and runtime metrics. Use this to check if an invoked action completed successfully, get its results, or troubleshoot failed executions.
idstringlist_browsersRetrieve a list of all currently active browser sessions in the Kernel platform. This shows you which browsers are running, their session IDs, creation times, and basic configuration. Use this to discover existing browser sessions before creating new ones or to audit current b...Retrieve a list of all currently active browser sessions in the Kernel platform. This shows you which browsers are running, their session IDs, creation times, and basic configuration. Use this to discover existing browser sessions before creating new ones or to audit current b...
No parameter schema in public metadata yet.
list_deploymentsRetrieve a comprehensive list of all deployments in the Kernel platform, with optional filtering by app name. This provides an overview of deployment history, current status, and allows you to track the deployment lifecycle of your apps. Use this to monitor deployment activity...1 paramsRetrieve a comprehensive list of all deployments in the Kernel platform, with optional filtering by app name. This provides an overview of deployment history, current status, and allows you to track the deployment lifecycle of your apps. Use this to monitor deployment activity...
app_namestringA 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!
The Kernel MCP Server bridges AI assistants (like Claude, Cursor, or other MCP-compatible tools) with the Kernel platform, enabling them to:
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.
For a deeper dive into why and how we built this server, see our blog post: Introducing Kernel MCP Server.
https://mcp.onkernel.com/mcpmcp-remote (for clients without remote MCP support): npx -y mcp-remote https://mcp.onkernel.com/mcpUse 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.
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>
| 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 |
The CLI automatically locates your tool's config file and adds the Kernel MCP server configuration.
Our remote MCP server is not compatible with the method Free users of Claude use to add MCP servers.
Kernel, Integration URL: https://mcp.onkernel.com/mcp, then click Add.Kernel to launch OAuth and approve.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 mcp add --transport http kernel https://mcp.onkernel.com/mcp
# Then in the REPL run once to authenticate:
/mcp
{
"mcpServers": {
"kernel": {
"url": "https://mcp.onkernel.com/mcp"
}
}
}
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
Click here to install Kernel on Goose in one click.
Extensions in the sidebar of the Goose Desktop.Add custom extension.Add custom extension modal, enter:
KernelSTDIOAccess Kernel's cloud-based browsers via MCPnpx -y mcp-remote https://mcp.onkernel.com/mcp300Save Changes button.goose configure
Add Extension from the menu.Command-line Extension.Kernelnpx -y mcp-remote https://mcp.onkernel.com/mcp300Access Kernel's cloud-based browsers via MCP{
"mcpServers": {
"kernel": {
"url": "https://mcp.onkernel.com/mcp",
"type": "http"
}
}
}
https://mcp.onkernel.com/mcp{
"mcpServers": {
"kernel": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}
}
{
"context_servers": {
"kernel": {
"source": "custom",
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}
}
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:
Use Kernel in Smithery's Playground MCP client:
Many other MCP-capable tools accept:
npx-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.
Each Kernel feature has a single manage_* tool with an action parameter, keeping the tool set small and consistent. Five standalone tools handle high-frequency workflows.
Self-hosted deployments can hide sensitive tool families by setting KERNEL_MCP_DISABLED_TOOLSETS to a comma-separated list. For example, KERNEL_MCP_DISABLED_TOOLSETS=api_keys prevents manage_api_keys from being registered.
manage_browsers - Create, list, get, and delete browser sessions. Supports headless/stealth modes, profiles, proxies, viewports, extensions, and SSH tunneling.manage_profiles - Setup (with guided live browser session), list, and delete browser profiles for persisting cookies and logins.manage_browser_pools - Create, list, get, delete, and flush pools of pre-warmed browsers. Acquire and release browsers from pools.manage_proxies - Create, list, and delete proxy configurations (datacenter, ISP, residential, mobile, custom).manage_extensions - List and delete uploaded browser extensions.manage_apps - List apps, invoke actions, get/list deployments, and get invocation results.manage_projects - Create, list, get, update, and delete organization projects.manage_api_keys - Create, list, get, update, and delete Kernel API keys. Create returns the plaintext key once.manage_auth_connections - Create, list, get, delete managed auth connections; start login flows (returns a hosted URL and live view); submit MFA codes or SSO selections.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.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 Playwright/TypeScript code against a browser with automatic video replay and cleanup.exec_command - Run shell commands inside a browser VM. Returns decoded stdout/stderr.search_docs - Search Kernel platform documentation and guides.browsers:// - List browser sessionsbrowser-pools:// - List browser poolsprofiles:// - List browser profilesapps:// - List deployed appsbrowsers://{session_id} - Access one browser sessionbrowser-pools://{id_or_name} - Access one browser poolprofiles://{profile_name} - Access one browser profileapps://{app_name} - Access one deployed appkernel-concepts - Get explanations of Kernel's core concepts (browsers, apps, overview)debug-browser-session - Get a comprehensive debugging guide for troubleshooting browser sessions (VM issues, network problems, Chrome errors)Cursor: Clear All MCP Tokens (resets all MCP servers and auth; re-enable Kernel and re-authenticate).rm -rf ~/.mcp-authnpx mcp-remotemcp-remote, or explicitly set the transport your client supportsHuman: Run my web-scraper app to get data from reddit.com
Assistant: I'll execute your web-scraper action with reddit.com as the target.
[Uses manage_apps tool with action: "invoke" to run your deployed app in the cloud]
Human: Go to example.com and get me the page title
Assistant: I'll execute Playwright code to navigate to the site and retrieve the title.
[Uses execute_playwright_code tool with code: "await page.goto('https://example.com'); return await page.title();"]
Returns: { success: true, result: "Example Domain", replay_url: "https://..." }
Human: Set up a profile for my work accounts
Assistant: I'll create a profile and guide you through the setup process.
[Uses manage_profiles tool with action: "setup"]
Human: I'm done setting up my accounts
Assistant: Perfect! I'll close the browser session and save your profile.
[Uses manage_browsers tool with action: "delete" to save profile]
Note: Attach the
debug-browser-sessionprompt to your conversation first, then ask for help debugging.
Human: [Attaches debug-browser-session prompt with session_id and issue_description]
Help me debug this browser session.
Assistant: [Follows the debugging guide from the prompt: uses Kernel CLI to check session status,
read VM logs, test network connectivity, and diagnose issues]
This is perfect for AI coding workflows where you need to preview local changes in a real browser:
Human: I'm working on a React app running on localhost:3000. I want to test it in a cloud browser.
Assistant: I'll create a browser session with SSH port forwarding for you.
[Uses manage_browsers tool with action: "create" and remote_forward: "3000:localhost:3000"]
Returns: Session ID, live view URL, and SSH tunnel command.
We welcome contributions! Please see our contributing guidelines:
bun run lint
bun run format
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by the Kernel Team
cp .env .env.local # Values for the .env.local file are in 1Password > DevEnvVars > MCP section
bun install
bun run dev
This will start the server on port 3002.