Your AI writes the tests. We keep them in order.

50+ tools over MCP, under the same permissions and audit log as any human on your team.

Plan and author

Turn what your team already wrote into tests

The specs, tickets and designs already exist. The cases covering them usually do not.

Bug triage

Jira bug to regression case

Prompt

Take Jira bug PROJ-1234, write a regression case from its repro steps, and add it to the Checkout collection

  • Jiraread the bug and its repro steps
  • M00Ncreate_test_case
  • M00Nadd_cases_to_collection
Result

A numbered, foldered case in the Checkout collection, ready for the next cycle

Design coverage

Design file to test suite

Prompt

Read the Checkout v2 frames in Figma and draft a case for every state: empty cart, expired card, 3-D Secure challenge

  • Figmaread the frames and their annotations
  • M00Ncreate_folder
  • M00Ncreate_test_case
Result

A Checkout v2 suite with one case per state, before a line of code ships

Requirements

PRD to the gaps in your coverage

Prompt

Open the Q3 billing PRD in Notion, work out which acceptance criteria have no case yet, and write only the missing ones

  • Notionread the PRD and its acceptance criteria
  • M00Nsearch_tests
  • M00Ncreate_test_case
Result

Only the gaps get written - nothing your team already covered is duplicated

Code review

PR impact analysis

Prompt

PR #482 touches the payment module. Which cases cover it, and how reliable have those tests been lately?

  • GitHubread the changed files on the pull request
  • M00Nsearch_tests
  • M00Nget_test_history
Result

A risk note in the review, before the merge rather than after the incident

Backlog

Coverage gaps file their own tickets

Prompt

Find the manual cases in Payments with no automation behind them and open a Linear ticket for each, sized by the case priority

  • M00Nget_coverage_gaps
  • M00Nget_folder
  • Linearcreate one issue per gap
Result

The automation backlog stops being a spreadsheet somebody has to maintain

Manual cycle

A whole regression cycle in one sentence

Prompt

Build a regression cycle for the 2.4 release covering checkout and payments, assign it to QA, environment staging

  • M00Ncreate_execution
  • M00Nadd_collections_to_execution
  • M00Nadd_suites_to_execution
  • M00Nadd_cases_to_execution
Result

A real execution with assignees, dates and snapshotted steps, exactly like one a QA lead assembled by hand

Triage and incidents

Catch it before your users write the ticket

The evidence is spread across four tools. One prompt is cheaper than four tabs.

Production

Production error to regression test

Prompt

Take Sentry issue CHECKOUT-4F1, write a regression case from the stack trace, and link the Playwright test that covers it

  • Sentryread the issue and its stack trace
  • M00Ncreate_test_case
  • M00Nlink_autotest_to_case
Result

The bug that reached production now has a case that owns it and automation bound to it

Nightly

Last night's failures become bugs

Prompt

Check last night's CI run for new failures and open Jira bugs carrying the error and stack trace, labelled auto-created

  • M00Nget_launches_statistics
  • M00Nget_launch_tests
  • Jiracreate one bug per new failure
Result

Triaged before standup, with the evidence already attached

Incident

Did our tests see the incident too?

Prompt

Checkout latency spiked at 14:02. Which checkout tests ran since, what did they do, and post the summary to #incidents

  • Datadogpull the latency window and affected service
  • M00Nsearch_tests
  • M00Nget_test_history
  • Slackpost the summary to the channel
Result

One message that says whether the suite caught it, missed it, or never covered it

On-call

On-call context without four tabs

Prompt

I just got paged for the payments service. Give me its test health and everything that failed in the last 24 hours

  • PagerDutyread the incident and the service it belongs to
  • M00Nrun_health_check
  • M00Nget_launches_statistics
Result

A composite health score and the recent failures, in the window where it matters

Flakiness

The flaky list stops living in someone’s head

Prompt

Rank this week's flakiest tests with their retry counts and post the top ten to #qa with what changed since last week

  • M00Nsearch_tests
  • M00Nget_test_history
  • Slackpost the ranked digest
Result

The ranking lands in the channel every week without anyone opening a dashboard

CI

Quarantine, then re-run the pipeline

Prompt

Which tests only passed on retry last night? Tag the cases behind them and re-trigger the GitLab pipeline for those suites

  • M00Nget_launch_tests
  • M00Nbulk_update_cases
  • GitLabtrigger the pipeline for the affected suites
Result

The unstable ones are tagged and re-run without anyone opening the CI UI

Release and reporting

Prove it to everyone who did not run the tests

The work is done. Someone still has to assemble the evidence for the people who sign.

Release

Release notes from real results

Prompt

Summarise the 3.2.0 release - pass rate, known issues, coverage - and publish it as a Confluence page under Releases

  • M00Nget_release
  • M00Nexport_report
  • Confluencecreate the page under the right space
Result

A release page nobody had to assemble the night before the release

Metrics

Weekly QA metrics that build themselves

Prompt

Every Monday: pass rate, flaky count and automation coverage for every project, appended to the QA Metrics 2026 sheet

  • M00Nlist_projects
  • M00Nrun_health_check
  • Google Sheetsappend one row per project
Result

A trend line that exists because it accrued, not because someone remembered

Observability

Test health beside latency and errors

Prompt

Push this week's pass-rate trend and failure count into our Grafana quality board, annotated with the release dates

  • M00Nget_launches_trends
  • M00Nget_launches_statistics
  • Grafanawrite the panel data and release annotations
Result

Quality on the same wall as the rest of production, not in a tab only QA opens

Security

Security fixes get a verification cycle

Prompt

For every high-severity Snyk finding fixed this sprint, open a verification execution and record the result case by case

  • Snyklist the high-severity findings fixed this sprint
  • M00Ncreate_execution
  • M00Nadd_cases_to_execution
  • M00Nreport_case_result
Result

Evidence that each fix was verified, not just merged

Compliance

Change request evidence, pre-assembled

Prompt

Attach the 3.2.0 test evidence to change request CHG0043210: pass rate, failed cases and the sign-off state

  • M00Nget_release
  • M00Nexport_report
  • ServiceNowattach the report to the change request
Result

The CAB question answered in the ticket before it gets asked in the meeting

Scheduled

A nightly routine that fixes its own tests

Prompt

Every night at 02:00: pull the nightly regression run, analyse the new failures, fix the broken specs, and open a PR

  • M00Nget_launches_statistics
  • M00Nget_launch_tests
  • Claudefix the specs in the repository
  • GitHubopen the pull request
Result

A scheduled routine over the remote connector - the diff is waiting when you get in

Built-in prompts

Seven workflows that arrive with the evidence already in them

These are not blank templates. Each one gathers the evidence first and hands it to the model, so the conversation starts where a person would have finished digging.

  • analyze_flaky_testsFlakiness

    Which of these tests is lying to me?

    Analyse flaky tests in Payments over the last 14 days and tell me which to quarantine before the release

    Result

    The top ten flip-floppers arrive already ranked, before the model says a word

    • get_test_history
  • debug_test_failureDebugging

    Debug a failure with its own history attached

    Debug why checkout.spec.ts > payment flow failed in last night’s run

    Result

    The error, the recent pass-fail pattern and the case it belongs to, all in the first message

    • get_launch_tests
    • get_test_history
  • release_readinessRelease

    Is 3.2.0 actually safe to ship?

    Run release readiness for 3.2.0 and tell me what would block it

    Result

    A go or no-go argument assembled from run data rather than from the room’s mood

    • get_release
    • get_coverage_gaps
  • generate_test_casesAuthoring

    Draft cases that match your house style

    Generate test cases for the new refund flow in the Payments project

    Result

    Drafts shaped by your own folders and templates, persisted as first-class cases

    • suggest_test_cases
    • create_test_case
  • weekly_health_reportReporting

    The Monday report writes itself

    Give me this week’s health report for every project I can see

    Result

    Scores, movement and what to fix first, with no spreadsheet in the loop

    • run_health_check
    • get_launches_trends
  • investigate_regressionRegression

    Find what broke, and when it turned

    Investigate the regression in the checkout suite since Tuesday

    Result

    The run where the trend turned, and the tests that turned with it

    • get_launches_trends
    • get_test_history
  • run_manual_executionManual cycle

    Run a manual cycle from end to end

    Work through the 2.4 regression execution and record the result of every case as you go

    Result

    Pass or fail per step, case and group statuses deriving themselves, execution closed at the end

    • get_execution_cases
    • report_case_result
    • update_execution

The full tool reference

Every one of the 50+ tools with its arguments, return shape and annotations, plus the 7 prompts and 8 resources.

The controls that make this governance, not novelty

Role-based access control

4 roles including a non-billable Guest. An MCP key carries the permissions of the account it belongs to, so an agent can never do what its owner cannot.

Your workspace stays yours

A key only ever reaches the workspace it belongs to. An agent cannot see another organisation’s projects, cases or results - there is no path to them.

MCP audit log

Every tool call an agent makes is recorded and reviewable in the app. "We let an AI write tests" becomes something you can show an auditor.

Per-key rate limiting

A looping agent throttles itself rather than your platform.

Destructive-operation flags

9 tools carry the flag so a client can demand confirmation, and the delete tools behind them archive rather than permanently remove data.

Single sign-on

OIDC and SAML with group-to-project JIT mapping, so the accounts your agents run as are provisioned by the same policy as everyone else.

Connecting it

Claude Connector

Paste one URL into Claude Desktop, Claude Code or claude.ai and approve it in the browser. Nothing to install, no key to keep safe.

.mcp.json
{
  "mcpServers": {
    "m00n": {
      "type": "http",
      "url": "https://m00nreport.com/mcp"
    }
  }
}

Every other client

Cursor, ChatGPT, Zed, Windsurf, VS Code or an agent you wrote yourself. Drop in the config below with your own key and you get the same 50+ tools - self-hosted included.

claude_desktop_config.json
{
  "mcpServers": {
    "m00n": {
      "command": "npx",
      "args": ["-y", "@m00nsolutions/mcp-server"],
      "env": {
        "M00N_API_URL": "https://m00nreport.com",
        "M00N_API_KEY": "m00n_mcp_your_key_here"
      }
    }
  }
}

Questions, answered

Which AI clients can use the M00N Report MCP server?

Any MCP-compatible client, over one of two paths. Claude Desktop, Claude Code and claude.ai use the hosted remote connector: a URL plus a browser consent screen, authenticated with OAuth 2.1 and no key file on disk. Every other client, including Cursor, ChatGPT, Zed, Windsurf and VS Code, uses the @m00nsolutions/mcp-server package from npm over stdio with an MCP key. The remote connector's redirect allowlist is hardcoded to claude.ai and claude.com, so it is a Claude connector specifically. Both paths expose the identical tools, prompts and resources.

Does M00N Report generate test cases with AI?

Your own model generates; M00N Report does not resell you one. suggest_test_cases supplies project-aware scaffolding through pattern matching over your existing templates and folder structure, not an LLM call, and create_test_case persists whatever your assistant writes, turning Markdown into a first-class rich-text case with steps, tags and an optional Jira link.

Can an AI agent delete my test data?

An MCP key carries exactly the permissions of the account it belongs to, so an agent can never exceed its owner's role. Most tools read; the ones that change state are marked, and 9 are flagged destructive so a client can require explicit confirmation before running them. The five delete_ tools, for test cases, collections, releases, folders and executions, archive rather than permanently delete. Every tool call is written to an MCP audit log with a UI in the app, and per-key rate limiting caps a runaway agent.

What is the difference between the MCP server and the ingest API?

They cover opposite directions. The ingest API is how automated results get in: an OpenAPI 3.0.3 specification published at /api/ingest/v2/openapi.json, used by the five official reporters. The MCP server is how test assets get managed: authoring cases, building and running manual executions with per-step results, linking automation to cases, tracking releases, and reading coverage and health. There is no public REST API for test case, execution or release management; that surface is the UI plus MCP only.

Can my own AI agent see quality across my whole portfolio of projects?

Yes, by iterating over the read tools. There is no built-in agent and no shipped portfolio dashboard: your own agent calls list_projects, then run_health_check, get_launches_trends and get_coverage_gaps for each project it can see, and assembles the rollup itself. run_health_check scores one project at a time, so a multi-project view is something the agent builds, not a screen we ship. Nothing in that analysis leaves your MCP connection for a separate AI service, and there are no AI credits to buy.

Does the MCP server work with a self-hosted instance?

Yes. Install @m00nsolutions/mcp-server and point it at your own instance URL with an MCP key issued by that instance, which matters when the reason you self-host is that test data cannot leave your network. Self-hosted gets the identical tools, prompts and resources as the cloud.

Give your agent a system of record

Connect in about a minute on the free plan, then ask your assistant to draft a suite for a feature you shipped last week. Everything it writes lands in a repository your team can see, review, execute against and ship behind.

View pricing