Typed Page Objects for Playwright

Decorator-driven, lazy locator chains in plain TypeScript classes.

Before — selectors duplicated, structure invisible
await page.getByTestId("CheckoutPage")
  .getByTestId("PromoCodeInput").fill("SAVE20");
await page.getByTestId("CheckoutPage")
  .getByRole("button", { name: "Apply" }).click();
After — typed, composable, reusable
await checkoutPage.applyPromoCode("SAVE20");

MCP server for AI coding agents

The local, read-only MCP server lets coding agents inspect existing page objects and JSX or TSX test IDs before editing tests.

Reuse existing test APIs

Follow typed locator chains instead of guessing method names.

Find real test IDs

Read statically declared test IDs before writing selectors.

Audit selector coverage

Find uncovered IDs, dead selectors, and uncertain matches.

Explore the MCP server docs →

Three output styles

Next steps