-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Open
Labels
Description
Summary
This is a proposal to add an official Model Context Protocol (MCP) server for Cypress — similar to what the Playwright team recently shipped with @playwright/mcp (27k+ stars in a few months).
What is MCP?
Model Context Protocol is an open standard (backed by Anthropic, adopted by Microsoft, Google, etc.) that lets AI assistants like Claude, Cursor, and VS Code Copilot connect to external tools. An MCP server exposes a set of tools that AI agents can call.
What would @cypress/mcp do?
Let AI agents interact with Cypress directly:
cypress_run— Run specs and get structured pass/fail resultscypress_list_specs/cypress_read_spec/cypress_write_spec— Manage test filescypress_get_config— Read project configcypress_snapshot— Get the ARIA accessibility tree of a pagecypress_navigate,cypress_click,cypress_type— Browser automationcypress_screenshot— Take screenshots
Why this matters for Cypress users
- AI-assisted test writing — AI snapshots a page, reads its ARIA tree, writes accurate selectors
- AI-driven debugging — AI runs failing tests, reads the output, suggests fixes
- Reduced onboarding friction — New team members ask AI to generate tests for existing pages
Proof of concept
I built a working standalone implementation at https://github.com/yashpreetbathla/cypress-mcp:
- 16 MCP tools implemented
- 25 unit tests, all passing
- Verified end-to-end: AI snapshotted a live Todo app, wrote 10 Cypress tests, all 10 passed
- Supports stdio (Claude Desktop) and HTTP/SSE (VS Code, Cursor) transports
Proposed path
Happy to contribute this as @cypress/mcp following the full Cypress contribution process. Looking for guidance on:
- Whether this belongs in the monorepo or as a separate
cypress-io/cypress-mcprepo - Which team to coordinate with
- Any preferred architecture changes
References
@playwright/mcp— the Playwright equivalent- Model Context Protocol spec
- Proof of concept implementation
Reactions are currently unavailable