Appearance
Fresh 🌱
MCP Server
Access Kernel's cloud-based browsers via MCP
Our Model Context Protocol (MCP) server lets any compatible AI model or agent launch Chromium browsers, execute Playwright code, capture video replays, and automate web interactions from Kernel's cloud platform via a single secure endpoint.
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.
Authentication
OAuth (Recommended)
The MCP server uses OAuth 2.1 for user authentication. When you connect through supported clients, you'll be prompted to authorize access via your browser.
API Key Authentication
For programmatic access or service-to-service authentication, you can use your Kernel API key instead of OAuth.
Add your API key to the MCP configuration:
json
{
"mcpServers": {
"kernel": {
"url": "https://mcp.onkernel.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_KERNEL_API_KEY"
}
}
}
}The server automatically detects non-JWT tokens and treats them as API keys.
API key authentication is useful for:
- Automated workflows and CI/CD pipelines
- Server-to-server integrations
- Environments where OAuth flows are not practical
INFO
API keys bypass the OAuth flow but still require valid Kernel credentials. Ensure your API key is kept secure and not exposed in client-side code.
Connect in your client
TIP
Quick setup: Use the Kernel CLI to automatically configure MCP for your tool: kernel mcp install --target <target>. See the CLI MCP documentation for details.
Claude
INFO
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.
INFO
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
Using Kernel CLI (recommended):
bash
kernel mcp install --target claude-code
# Then in the REPL run once to authenticate:
/mcpManual setup:
bash
claude mcp add --transport http kernel https://mcp.onkernel.com/mcp
# Then in the REPL run once to authenticate:
/mcpCursor
Using Kernel CLI (recommended):
bash
kernel mcp install --target cursorOne-click install: Click here to install Kernel on Cursor.
Manual setup
- Press ⌘/Ctrl Shift J.
- Go to MCP & Integrations → New MCP server.
- Add this configuration:
json
{
"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:
jsonc
{
"mcp": {
"kernel": {
"type": "remote",
"url": "https://mcp.onkernel.com/mcp"
}
}
}Then authenticate using the OpenCode CLI:
bash
# 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 kernelGoose
Using Kernel CLI (recommended):
bash
kernel mcp install --target gooseThe command will display the YAML configuration to add to your Goose config file.
One-click install: 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:bash
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
Using Kernel CLI (recommended):
bash
kernel mcp install --target vscodeManual setup:
Add to your VS Code settings.json:
json
{
"mcpServers": {
"kernel": {
"url": "https://mcp.onkernel.com/mcp",
"type": "http"
}
}
}Or use the UI:
- Press ⌘/Ctrl Shift P → search MCP: Add Server.
- Select HTTP (HTTP or Server-Sent Events).
- Enter:
https://mcp.onkernel.com/mcp - Name the server Kernel → Enter.
Windsurf
Using Kernel CLI (recommended):
bash
kernel mcp install --target windsurfManual setup:
- Press ⌘/Ctrl , to open settings.
- Navigate Cascade → MCP servers → View raw config.
- Paste:
json
{
"mcpServers": {
"kernel": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}
}- On Manage MCPs, click Refresh to load Kernel MCP.
Zed
Using Kernel CLI (recommended):
bash
kernel mcp install --target zedManual setup:
- Press ⌘/Ctrl , to open settings.
- Paste:
json
{
"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
json
{
"kernel": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.onkernel.com/mcp"]
}
}Configure these values wherever the tool expects MCP server settings.
Tools
Browser Automation
create_browser- Launch a new browser session with options (headless, stealth, timeout, profile)get_browser- Get browser session informationlist_browsers- List active browser sessionsdelete_browser- Terminate a browser sessionexecute_playwright_code- Execute Playwright/TypeScript code in a fresh browser session with automatic video replay and cleanuptake_screenshot- Capture a screenshot of the current browser page, optionally specifying a region
Profile Management
setup_profile- Create or update browser profiles with guided setup processlist_profiles- List all available browser profilesdelete_profile- Delete browser profile permanently
App Management
list_apps- List apps in your Kernel organization with optional filteringinvoke_action- Execute actions in Kernel appsget_deployment- Get deployment status and logslist_deployments- List all deployments with optional filteringget_invocation- Get action invocation details
Documentation & Search
search_docs- Search Kernel platform documentation and guides
Resources
profiles://- Access browser profiles (list all or get specific profile)browsers://- Access browser sessions (list all or get specific session)apps://- Access deployed apps (list all or get specific app)
Prompts
kernel-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)
Troubleshooting
- Cursor clean reset: ⌘/Ctrl Shift P → run
Cursor: Clear All MCP Tokens(resets all MCP servers and auth; re-enable Kernel and re-authenticate). - Clear saved auth and retry:
rm -rf ~/.mcp-auth - Ensure a recent Node.js version when using
npx mcp-remote - If behind strict networks, try stdio via
mcp-remote, or explicitly set the transport your client supports
Examples
Invoke apps from anywhere
Human: 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 invoke_action tool to run your deployed app in the cloud]Execute Playwright code dynamically
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://..." }Set up browser profiles for authentication
Human: Set up a profile for my work accounts
Assistant: I'll create a profile and guide you through the setup process.
[Uses setup_profile tool]
Human: I'm done setting up my accounts
Assistant: Perfect! I'll close the browser session and save your profile.
[Uses delete_browser tool to save profile]Debug a browser session
INFO
Attach the debug-browser-session prompt 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]