About Tada: automated QA for AI-written code
Tada: automated QA for AI-written code
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| steps | array | Yes | Ordered actions to perform & record |
| title | string | Yes | Demo title, shown on the watch page |
| width | integer | No | NOT SUPPORTED, and passing it refuses the run. Use `device`. |
| device | enum | No | Viewport preset — 'desktop' (default), 'mobile', or 'tablet'. Use 'mobile' only for mobile-first features.desktop | mobile | tablet |
| dryRun | boolean | No | DEPRECATED AND IGNORED. This does NOT keep the recording local and does NOT skip the upload: every run happens on Tada and is published to a public link. Local recording no longer exists. If the app under test must not be published, do not run it here. |
| height | integer | No | NOT SUPPORTED, and passing it refuses the run. Use `device`. |
| taskId | string | No | NOT SUPPORTED, and passing it refuses the run. Attach the published demo to a task from the dashboard. |
| initScript | string | No | JavaScript run in every page BEFORE the app's own scripts, to seed state the app reads at boot. Use it to force a locale or a feature flag — e.g. "localStorage.setItem('lang','en')" for an app that would otherwise render in another language. |
| captureScale | enum | No | Shoot at 2 ONLY when this demo will be re-cut as marketing footage. A cut of 1x footage is capped at a 1.2x push-in forever, because the pixels for a closer look were never captured; 2 lifts that to 2.2x. It is a record-time decision that cannot be taken later, and it costs four times the frame pixels, so leave it off for an ordinary verification run.1 | 2 |
| storageState | string | No | NOT SUPPORTED, and passing it refuses the run rather than ignoring it. It names a file on YOUR machine and the run is driven by Tada's runner. To record a page behind a login, sign in inside the journey: see RECORD AUTHED PAGES below. |
| hideSelectors | array | No | CSS selectors for the app's own floating widgets to hide for the whole recording: a chat bubble, a feedback tab, a cookie banner. Nothing is hidden unless you pass this. Each match, and everything inside it, is removed with display:none on every page of the run. A step that clicks, types into, hovers, drags, scrolls to or waits for anything inside a hidden element FAILS the run and names the selector, so hide only what the journey never touches. Match the widget's container in the page itself: a selector cannot reach inside the widget's iframe or shadow root. Common containers (check them against your app, vendors change their markup): Intercom .intercom-app, .intercom-lightweight-app; HubSpot chat #hubspot-messages-iframe-container; Zendesk messaging iframe[title*="Zendesk"], iframe[aria-label*="Zendesk"]; Crisp #crisp-chatbox; Sentry user feedback #sentry-feedback; Userback .userback-button-container; Hotjar [class^="_hj"]; OneTrust cookie banner #onetrust-consent-sdk; Cookiebot cookie banner #CybotCookiebotDialog. |
Details
The maintainer has not added details yet. Check the README in the repository.
Comments
Markdown supported
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.