DinhoDinho Docs

MCP Reference

All tools and slash commands from the Dinho MCP server.


Typical workflow

dinho_list_projects          → discover existing projects and their IDs
dinho_create_project         → create a project (if needed)
dinho_create_credentials     → create placeholders for test credentials
dinho_create_test            → create the test (auto dry-run validation)
dinho_run_test               → trigger an immediate run
dinho_get_test_status        → read the result and get a fix suggestion if it failed
dinho_update_test            → apply the fix to the script

Tools

dinho_list_projects

List all projects for the account. Always call this first — returns the project IDs required by nearly every other tool, plus the current plan and test limit.

Parameters: none


dinho_create_project

Create a new Dinho project. Use when the user has no projects yet, or wants to monitor a separate second URL.

Parameters:

  • name (required) — Project name (e.g. "My App")
  • baseUrl (required) — Root URL of the monitored app — must start with https://

dinho_create_credentials

Create credential placeholders for a project. Call as soon as you know the test will need login — before writing the script — so the user can fill the values in the dashboard in parallel.

Each label stores exactly one value (e.g. EMAIL stores only the email, PASSWORD stores only the password). Labels must match ^[A-Z][A-Z0-9_]{0,62}$.

Parameters:

  • projectId (required) — Project ID (obtained from dinho_list_projects)
  • labels (required) — Array of labels to create (e.g. ["EMAIL", "PASSWORD"])

Returns the dashboard URL for the user to fill in the values.


dinho_list_credentials

List all credentials for a project and their fill status (pending / set). Use to check which labels already exist before writing a script, or to show the user what still needs a value.

Parameters:

  • projectId (required) — Project ID

dinho_create_test

Create a new Playwright test. The script is always validated via an automatic dry-run before saving — tests are never created without a passing dry-run.

If the script references credentials with pending status, the tool creates the placeholders, returns the dashboard URL, and stops. Ask the user to fill the values and notify you when done, then retry.

Parameters:

  • projectId (required) — Project ID (obtained from dinho_list_projects)
  • name (required) — Descriptive test name
  • description (required) — What the test verifies (one sentence)
  • baseUrl (required) — Must start with https://
  • playwrightScript (required) — Playwright script body (page variable already in scope)
  • schedule (optional) — "1h" | "6h" | "24h" — use "1h" for critical flows (default: "24h")
  • tags (optional) — Array of strings for grouping tests

Example script:

await page.goto("https://myapp.com/login");
await page.fill('[name="email"]', credentials.EMAIL);
await page.fill('[name="password"]', credentials.PASSWORD);
await page.click('[type="submit"]');
await expect(page).toHaveURL("/dashboard");

Selector preference order: data-testid > role > visible text. Use waitForSelector/waitForURL, never setTimeout.


dinho_list_tests

List all tests in a project with status, last run time, and 7-day failure count.

Parameters:

  • projectId (required) — Project ID
  • status (optional) — "passing" | "failing" | "pending" | "never_ran"
  • limit (optional) — Number of results (default: 20, max: 100)

dinho_run_test

Trigger an immediate test run. Use after updating a script to confirm the fix worked.

Parameters:

  • testId (required) — Test ID
  • waitForResult (optional) — Wait up to 60s for the result (default: false)

dinho_run_until_pass

Run a test repeatedly, automatically fixing the script on each failure, until it passes or reaches the maximum number of attempts. Best for iterative debugging.

Parameters:

  • testId (required) — Test ID
  • maxAttempts (optional) — Max run+fix iterations (default: 3, max: 5)
  • explainEachAttempt (optional) — Return a message after each attempt (default: false)

dinho_get_test_status

Get the full status and last failure details, including a screenshot and an AI-generated fix suggestion.

Parameters:

  • testId (required) — Test ID
  • includeHistory (optional) — Include the last 10 runs for trend analysis (default: false)

Returns suggestedFixPrompt — paste into your AI editor to fix the failing test.


dinho_update_test

Update an existing test — script, schedule, name, description, or enabled state.

Parameters:

  • testId (required) — Test ID
  • name (optional) — New name
  • description (optional) — New description
  • playwrightScript (optional) — Fixed script
  • schedule (optional) — "1h" | "6h" | "24h"
  • enabled (optional) — false to disable without deleting

dinho_pause_tests

Pause all tests in a project for 1–60 minutes. Use before a deployment to avoid false alerts. Tests resume automatically when the pause expires.

Parameters:

  • projectId (required) — Project ID
  • durationMinutes (required) — Pause duration in minutes (1–60)
  • reason (optional) — Why you're pausing (e.g. "Deploying v2.3.0")

dinho_delete_test

Permanently delete a test and all its run history. Irreversible — prefer dinho_update_test with enabled: false if you might want to re-enable later.

Parameters:

  • testId (required) — Test ID
  • confirm (required) — Must be true to proceed. Never pass true without explicit user confirmation.

Slash commands

Slash commands are guided conversational flows available in editors that support MCP prompts (Claude Code, Codex, Cursor, Antigravity).

| Command | What it does | |---------|--------------| | /dinho-create-test | Asks the right questions, writes the script, and validates — conversational mode | | /dinho-fix-test | Diagnoses a failing test, proposes a diff, and confirms before saving | | /dinho-onboarding | Sets up Dinho from scratch: project, test account, flag, and first test | | /dinho-diagnose | General diagnosis: lists all failing tests and proposes fixes | | /dinho-setup-project | Creates a test account, is_synthetic_test flag, and 3 critical tests at once |

Examples in Claude Code:

/dinho-create-test url=https://myapp.com feature=login
/dinho-fix-test testId=550e8400-e29b-41d4-a716-446655440000
/dinho-onboarding