Skip to content

[FEAT] Official MCP HTTP endpoint (Playwright MCP / Chrome DevTools MCP) on linuxserver/chrome #19

Closed

Description

@phpmac

Is this a new feature request?

  • I have searched the existing issues

Wanted change

Document or ship an official way to expose MCP (Model Context Protocol) next to the existing Selkies GUI on linuxserver/chrome.

Specifically:

  1. Keep Google Chrome in the desktop container (this image is already the right shape).
  2. Expose an HTTP MCP endpoint agents can call, e.g. Playwright MCP or Chrome DevTools MCP, something like http://host:8931/mcp.
  3. Either:
    • an official docker-mod that starts MCP against this Chrome via CDP, or
    • README + compose example: CHROME_CLI CDP + sidecar (socat because Chrome still binds DevTools to 127.0.0.1) + npx @playwright/mcp --host 0.0.0.0 --port 8931 --cdp-endpoint http://127.0.0.1:9224.

This is not a request to add classic VNC 5900. The Selkies UI on :3001 is fine for humans. MCP is for agents.

Reason for change

I searched this repo (all 8 issues) and linuxserver/docker-chromium. Nobody used the word MCP.

Closest threads are CDP only:

  • This repo: [FEAT] Allow user to enable remote debugging port #11 (CHROME_CLI remote debugging; Chrome 136+ needs non-default --user-data-dir; --remote-debugging-address ignored, binds 127.0.0.1)
  • Chromium: #71, #75 (CDP), #16 (Puppeteer wsEndpoint), #30 (remote-debugging-port)

Agents cannot use CDP as MCP. Outbound MCP clients need Streamable HTTP. Community one-shots exist (Playwright Chromium + noVNC + MCP) but they are not this Google Chrome image.

Benefit: same linuxserver Chrome desktop we already run, plus a supported agent attach path, without a third-party fork.

Proposed code change

Document this (or ship it as a docker-mod):

services:
  chrome:
    image: lscr.io/linuxserver/chrome:latest
    environment:
      - CUSTOM_USER=abc
      - PASSWORD=abc
      - CHROME_CLI=--user-data-dir=/config/chrome-cdp --remote-debugging-port=9223
    ports:
      - "3001:3001"
      - "8931:8931"
    shm_size: "1gb"
    volumes:
      - ./config:/config
  chrome-proxy:
    image: alpine/socat:latest
    network_mode: "service:chrome"
    command: tcp-listen:9224,fork,reuseaddr,bind=0.0.0.0 tcp:127.0.0.1:9223
  playwright-mcp:
    image: mcr.microsoft.com/playwright/mcp
    network_mode: "service:chrome"
    init: true
    stdin_open: true
    command: --host 0.0.0.0 --port 8931 --cdp-endpoint http://127.0.0.1:9224

Human view: https://host:3001. Agent: http://host:8931/mcp.

Is MCP on the roadmap, or is CDP-only the intended attach surface?

Activity

  1. github-actions commented on Aug 20, 2026

    @github-actions

    Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

  2. LinuxServer-CI commented on Sep 20, 2026

    @LinuxServer-CI
    Contributor

    This issue has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.

  3. thelamer commented on Sep 26, 2026

    @thelamer
    Member

    Just in general this issue kind of answers its own question. Our containers can be used in all kinds of creative ways, this is just a web accessible version of chrome run in a minimal desktop.

    I don't see the need to pad the docs out to explain a specific use case, adding the CLI and proxy is sufficient if people need an always on MCP endpoint.

    If you think this should be more automated feel free to make a first party or third party mod https://github.com/linuxserver/docker-mods

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions