Skip to content

feat: add --transport flag and support for running the MCP server via HTTP#459

Closed
viktormarinho wants to merge 1 commit intoChromeDevTools:mainfrom
viktormarinho:main
Closed

feat: add --transport flag and support for running the MCP server via HTTP#459
viktormarinho wants to merge 1 commit intoChromeDevTools:mainfrom
viktormarinho:main

Conversation

@viktormarinho
Copy link
Copy Markdown

No description provided.

@google-cla
Copy link
Copy Markdown

google-cla Bot commented Oct 23, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@OrKoN
Copy link
Copy Markdown
Collaborator

OrKoN commented Oct 23, 2025

Thanks for the PR we do not plan to support HTTP right now because we do not have multi-session support that in my understanding would be required for the HTTP transport (and it looks like this PR does not add it). Could you please elaborate on your use case? Is it not solvable with an MCP proxy? Are you looking to manage multiple Chrome instances with a single MCP server? If you share your use case, it would help us prioritize supporting the HTTP transport. cc @natorion

@viktormarinho
Copy link
Copy Markdown
Author

Thanks for the PR we do not plan to support HTTP right now because we do not have multi-session support that in my understanding would be required for the HTTP transport (and it looks like this PR does not add it). Could you please elaborate on your use case? Is it not solvable with an MCP proxy? Are you looking to manage multiple Chrome instances with a single MCP server? If you share your use case, it would help us prioritize supporting the HTTP transport. cc @natorion

Yeah, exposing this MCP via http could be solved with a proxy that will adapt http to stdio.

I'm looking to run this on a container somewhere then access it via http. Managing multiple chrome instances would also be nice, since i would also probably want to make this multi tenant separating the sessions through some auth header, which i believe is also what you mean with the multi session support.

But i'm not sure what would be the ideal approach here. i've read on the --help that there is an option for me to connect to specify a remote chrome socket uri for connecting, so maybe i could also do something like running the multiple chrome instances somewhere else then having this single MCP server route people for the different sockets? idk.

With this setup that i've just sent you via pull request, i was able to run it locally with a http proxy tunnel on top of it and plug it on agents that i use on the web, that would not have access to my computer usually (since it's an arbitrary web server connecting to my chrome mcp). I also can just run two proxies i guess.

A use case of mine would be to provide people with an MCP server they can connect to an agent to look for improvement opportunities on a ecommerce page load, looking at the network tab, image/javascript loading priorities etc. This agent would be running remotely, being accessed via browser and require no local setup, being able to also edit code in some remote environment running a dev server. Just like something like https://replit.com/ works.

I got interested on running multiple chrome instances, though, if you think it makes sense i would like to implement it, seems that it would be useful for me.

@OrKoN
Copy link
Copy Markdown
Collaborator

OrKoN commented Oct 24, 2025

Yes, currently, one MCP server instance is tied to a single Chrome instance. With --browserUrl, --wsEndpoint options you can connect the MCP server instance to a browser running elsewhere (e.g., a cloud browser). If we were to add the HTTP transport support, we would need to:

  1. support MCP sessions https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#session-management
  2. have adequate security for the MCP server itself (https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#security-warning).
  3. have tests for the multi-session environment.

@natorion natorion mentioned this pull request Nov 19, 2025
@ycjcl868
Copy link
Copy Markdown

ycjcl868 commented Dec 8, 2025

Is there a beta version available for testing?

Comment thread src/main.ts
return transport.handleRequest(req, res, req.body);
});

app.listen(3000, () => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add --port arg?

@OrKoN
Copy link
Copy Markdown
Collaborator

OrKoN commented Feb 18, 2026

Closing the PR as it has merge conflicts now. But the http transport discussion is still ongoing for us and we will try to resolve it as part of #926 For now using an mcp proxy e.g., mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@latest remains a viable option. cc @matthiasrohmer @natorion

@OrKoN OrKoN closed this Feb 18, 2026
@natorion
Copy link
Copy Markdown
Contributor

Closing the PR as it has merge conflicts now. But the http transport discussion is still ongoing for us and we will try to resolve it as part of #926 For now using an mcp proxy e.g., mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@latest remains a viable option. cc @matthiasrohmer @natorion

I think we should make this option more prominent, right now its buried inthe Katalon Studio configs.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants