ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Cypress MCP

โดย miroslavmyrhaรุ่น 0.1.2i★ –iรันบนเครื่อง
ชื่อใน registryio.github.miroslavmyrha/cypress-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Shows an AI assistant the last cypress run: command log, errors, screenshots, DOM of failed tests.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "cypress": {
      "command": "npx",
      "args": [
        "-y",
        "@miroslavmyrha/cypress-mcp"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add cypress -- npx -y @miroslavmyrha/cypress-mcp

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "cypress": {
      "command": "npx",
      "args": [
        "-y",
        "@miroslavmyrha/cypress-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "cypress": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@miroslavmyrha/cypress-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub miroslavmyrha ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 18594 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 63% ของอีก 18594 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 18594 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Cypress MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.2) เข้า registry 26 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Commonly

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

โดย formulahendryเริ่มต้น↓ 66/สัปดาห์★ 440อัปเดต 14 เดือนที่ผ่านมา

รันบนเครื่อง

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

โดย desktop-commanderกำลังโต★ 211อัปเดต 3 วันที่ผ่านมา

รันบนคลาวด์✓ desktopcommander.app

Commonly

Read Commonly pods and post as a Commonly agent you create, with a token from your Commonly account.

โดย Team-Commonlyกำลังโต↓ 4.9K/สัปดาห์อัปเดต วันนี้

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

cypress-mcp

MCP server that shows an AI assistant what happened in your last cypress run: which commands each test ran, what failed, the error, a screenshot, and the page as it was at the moment of the failure.

It is made for headless runs, on your machine and in CI. That is the place the official tools do not reach, see How it compares.

npm install -D @miroslavmyrha/cypress-mcp

Example

A spec with three tests, the last of which fails:

it('shows a counter of finished items', () => {

cy.get('.todo-list li').first().find('input[type=checkbox]').check() cy.get('[data-test=finished-count]').should('contain', '1') })

After cypress run, the assistant calls get_last_run and gets the commands that ran, the error and the path of a DOM snapshot (output shortened):

{

"title": "Todo list > shows a counter of finished items", "state": "failed", "domSnapshotPath": "snapshots/cypress-e2e-todo-cy-js/todo-list-shows-a-counter-of-finished-items-d963bb8d.html", "commands": [ { "name": "visit", "message": "https://example.cypress.io/todo" }, { "name": "get", "message": ".todo-list li" }, { "name": "first", "message": "" }, { "name": "find", "message": "input[type=checkbox]" }, { "name": "check", "message": "" }, { "name": "get", "message": "[data-test=finished-count]" } ], "error": "AssertionError: Timed out retrying after 2000ms: Expected to find element: [data-test=finished-count], but never found it." }

It can then look into the page as it was when the test failed. query_dom with the selector .todo-count:

{

"selector": ".todo-count", "totalMatches": 1, "results": [ { "breadcrumb": "body > section.todoapp-wrapper > div.todoapp > footer.footer > span.todo-count", "outerHTML": " 1 item left " } ] }

So the counter exists, under another selector, and the assistant can fix the test without anyone pasting logs into the chat.

How it works

cypress run → tests run

→ support/index.ts captures Cypress command log per test → cy.task('mcpSaveTestLog') transfers logs to node side → plugin/index.ts stores logs in memory → after:spec → merges logs + results → writes .cypress-mcp/last-run.json

Claude → MCP server → get_last_run → reads last-run.json

How it compares

Cypress has two tools of its own for AI assistants. They cover other situations than this one.

this packagecypress tapCypress Cloud MCP
Readsthe last local cypress runa live cypress open sessionruns recorded to Cypress Cloud
Headless runs and CIyesnoonly what was recorded
Command log and DOM of a failed testyesyesno, links to Test Replay
NeedsCypress 12 or newer, a plugin and a support importCypress 15.21 or newer, a Chromium browsera Cypress Cloud account
InterfaceMCP (stdio or HTTP)command lineMCP

Use cypress tap while you write a test with the Cypress app open. Use this package when the tests run headless and the assistant should see why one failed.

The results are written in the after:spec event, which Cypress fires in run mode. In cypress open that event needs experimentalInteractiveRunEvents.

Before anything reaches the assistant, values that look like secrets are redacted, and content that comes from the tested application is marked as untrusted data.

Setup

1. Install
npm install -D @miroslavmyrha/cypress-mcp

Note: the unscoped cypress-mcp name on npm belongs to an unrelated project. Always use the scoped @miroslavmyrha/cypress-mcp.

2. Register the plugin in cypress.config.ts
import { defineConfig } from 'cypress'

import { cypressMcpPlugin } from '@miroslavmyrha/cypress-mcp/plugin'

export default defineConfig({ e2e: { setupNodeEvents(on, config) { cypressMcpPlugin(on, config) }, }, })

3. Import support in cypress/support/e2e.ts
import '@miroslavmyrha/cypress-mcp/support'
4a. Configure Claude Desktop / Claude Code (stdio transport)

In your MCP settings (~/.config/claude/claude_desktop_config.json or claude mcp add):

{

"mcpServers": { "cypress": { "command": "npx", "args": ["-y", "@miroslavmyrha/cypress-mcp", "--project", "/absolute/path/to/your/project"] } } }

Or with claude mcp add:

claude mcp add cypress -- npx -y @miroslavmyrha/cypress-mcp --project /absolute/path/to/your/project
4b. HTTP transport (Ollama, custom bridges)
# Start MCP server in HTTP mode (random token printed to stderr)

npx -y @miroslavmyrha/cypress-mcp --project /path/to/project --transport http --port 3333

Or with a fixed token for automated deployments

MCP_HTTP_TOKEN=$(openssl rand -hex 32) npx -y @miroslavmyrha/cypress-mcp --project /path/to/project --transport http --port 3333

Server listens on:

POST http://localhost:3333/mcp → tool calls (MCP Streamable HTTP)

MCP Tools

ToolDescription
list_specsList all Cypress spec files. Optional pattern glob (default: **/*.cy.{ts,js,tsx,jsx})
read_specRead a spec file's content by relative path
get_configRead the Cypress config file (cypress.config.ts/js/mjs/cjs), secret-looking values redacted
get_last_runGet results of the last test run: states, errors, command log, DOM snapshots
get_screenshotGet a screenshot from the last run. Returns the image itself (up to 2 MB) plus path and size metadata
query_domQuery the DOM snapshot of a failed test using a CSS selector
run_specRun a single Cypress spec file and wait for completion. Returns exit code and summary

Output format of .cypress-mcp/last-run.json

{

"timestamp": "2026-02-18T22:00:00Z", "specs": [ { "spec": "cypress/e2e/login.cy.ts", "stats": { "passes": 3, "failures": 1, "pending": 0, "skipped": 0, "duration": 5230 }, "screenshots": ["/abs/path/to/Login -- should show error (failed).png"], "tests": [ { "title": "Login > should login with valid credentials", "state": "passed", "duration": 1200, "error": null, "domSnapshotPath": null, "commands": [ { "name": "visit", "message": "/login" }, { "name": "get", "message": "#email" }, { "name": "type", "message": "test@example.com" } ], "consoleErrors": [], "networkErrors": [] }, { "title": "Login > should show error on invalid password", "state": "failed", "duration": 800, "error": "Timed out retrying: Expected to find element: .error-message", "domSnapshotPath": "snapshots/cypress-e2e-login-cy-ts/login--should-show-error-a1b2c3.html", "commands": [...], "consoleErrors": ["Uncaught TypeError: Cannot read property 'x' of null"], "networkErrors": [{ "method": "POST", "url": "/api/login", "status": 500 }] } ] }, { "spec": "cypress/e2e/dashboard.cy.ts", "stats": { ... }, "screenshots": [], "tests": [...] } ] }

All specs from a run are captured. In cypress run the accumulator resets on before:run. In cypress open results accumulate for the lifetime of the Cypress process. Failed tests include a domSnapshotPath pointing to an HTML file (up to 100 KB of document.body.outerHTML) stored under .cypress-mcp/snapshots/.

CLI options

Options:

--project Cypress project root (default: current directory) --transport stdio or http (default: stdio) --port HTTP port, only for --transport http (default: 3333) -V, --version Show version -h, --help Show help

Add .cypress-mcp to .gitignore

.cypress-mcp/

Environment variables

VariableDescription
MCP_HTTP_TOKENSet a fixed bearer token for HTTP transport (min 32 chars). If not set, a random token is generated on each start and printed to stderr.

Development

This project uses Bun as the package manager:

bun install

bun run typecheck bun run test bun run build

Requirements

  • Node.js 18+
  • Cypress 12+ (developed and tested with Cypress 13)

Author

Miroslav Myrha

License

MIT

ถาม PopNx