About Chrome MCP Server
Chrome MCP Server is an experimental MCP server for interacting with Chrome, built for developers who want to inspect pages in Cursor. It includes a protocol learning demo and a more robust implementation using the MCP Python SDK.
Key features
- 01Chrome interaction
- 02Page screenshots
- 03MCP protocol demo
- 04SDK-based implementation
Use cases
- 01Capture page screenshots in Cursor
- 02Validate page implementations
- 03Explore MCP initialization and tools
MCP support
Exposes Chrome interaction capabilities to MCP clients. The project includes a limited demo implementation and a more robust version built with the MCP Python SDK.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEChrome MCP Server
We are building a server that will be used to interact with Chrome. There are two main goals to this project:
- Providing an MCP implementation that does not rely on the MCP library provided by Anthropic.
- Creating a Chrome MCP server that we can use in Cursor to take screenshots of a page and validate the implementation.
Note
This is not a reference implementation of the MCP protocol, this was a learning exercise to better understand the protocol and how it works.
A more robust implementation is located in the app folder.
Demo implementation
This is a simple implementation of the MCP protocol, as such we have not implemented all the features of the MCP protocol. We focused on building a first set of features that we can use to get a functioning implementation.
It can be run by executing the following command:
uv run uvicorn demo_implementation.main:app --reload
and then tested by running the MCP inspector:
npx @modelcontextprotocol/inspector node build/index.js
Once in the inspector, you can connect to our server using the URL: http://0.0.0.0:8000
How it works
There are two main components to the demo implementation:
- An event stream that is used to send messages from the server to the client.
- A POST endpoint that is used to send messages from the client to the server.
The implementation focuses on implementing the initialization process and tools. We did not look at implementatinf other features. The initialization process is done in three parts with:
- Initial call to the
/sseendpoint to get the session URI. - Client sends a
initializemessage to the server that responds with the functionality supported by the server. - Client sends a
notifications/initializedmessage to the server to notify that the initialization is complete.
Once this is implemented, the client can start sending messages to the server to use the tools.
Limitations of the demo implementation
The demo implementation has a number of limitations including lack of error handling, no adequate cleanup of the sessions and more.
We added more robust implementation in app/main.py that relies on the MCP Python SDK.
Robust implementation
The more robust implementation relies on the MCP Python SDK to handle the connection and the messages.
This implementation is located in app/main.py.
How it works
This is much simpler as all we need to do is define the three functions to be used as tools. Once these are defined, we can test
the implementation by running the app/main.py file:
# Start the server
mcp run app/main.py --transport sse
and then in another terminal we can start the MCP inspector:
npx @modelcontextprotocol/inspector node build/index.js
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.