The governance gap nobody is pricing in
Someone on your team already has an AI writing tests. It writes them into a branch, a chat window, or a scratch file that never gets reviewed. Nobody knows how many exist, which feature they cover, who approved them, or whether last night’s pipeline touched a single one. Output volume went up. Visibility went down.
That is not an AI problem, it is a system-of-record problem. A test that lives outside the test management system is not managed, no matter how good the model that wrote it.
The MCP server is not a chat layer bolted onto a dashboard. It is a write interface into the same test case repository, manual execution planner and release tracker a person uses, and every call runs under the same role-based permissions, the same database-enforced tenant isolation and the same audit trail as a human session. A case an agent authored is a case: numbered, foldered, tagged, linkable to Jira, visible in coverage, and executable by a person who never spoke to the model.
50 tools, 26 that change state
Counts, not adjectives. The M00N Report MCP server exposes exactly 50 tools, each with a live handler, verified by countingapi/mcp/definitions.mjs directly rather than reading our own marketing.
A read-only MCP server turns an assistant into a nicer query console: it tells you the pass rate and hands the work back to you. 26 write tools is a different proposition. The agent creates the folder, writes the case, builds the manual execution, links the automation and files the release. You review the result in the UI like any other contribution to the repository.
An agent with write access can:
- Author real test cases: Markdown converted into the editor’s own Slate document model, with an auto-created folder and suite hierarchy, tags, and a Jira link attached atomically at creation.
- Plan an entire manual cycle: open an execution and populate it from a whole Test Collection, an entire suite, or hand-picked cases (worked example below).
- Bind automation to the case it covers:
link_autotest_to_caseconnects an automated test to a manual case by title, including before that test has ever run once. - Manage releases: create and update releases, and link or unlink the launches that belong to them.
- Keep the repository tidy: move and bulk-update cases, and archive what is no longer needed.
Worked example: an agent planning a manual test cycle
Ask for it in a sentence: “Build a regression cycle for the 2.4 release covering checkout and payments, assign it to QA, environment staging.” The agent runs four write tools in sequence, all delegating to the same service layer the UI calls:
- create_execution opens a named manual execution with an environment and a date window.
- add_collections_to_execution pulls in a whole reusable Test Collection.
- add_suites_to_execution adds an entire suite on top of it.
- add_cases_to_execution hand-picks any individual cases the collection and suite missed.
What comes back is a real execution with assignees, an environment, dates and snapshotted case content, exactly like one a QA lead assembled by hand, ready for a person to start clicking through.
suggest_test_cases is not a language model. It is project-aware scaffolding, pattern matching over templates that already knows your project’s structure. Your own model does the writing; create_test_case persists the result. And the delete tools, for test cases, collections, releases and folders, archive rather than permanently destroy your data.
Agentic AI readiness: an agent that reads your whole quality state
Everything above is AI that writes tests. This is the other half, and the founder considers it the core direction of the product: an agent that reads everything M00N Report knows about quality, across every project it can see, and decides what needs attention next.
Over MCP, an agent can work through a project portfolio like this:
- list_projects enumerates every project the agent’s key can see.
- run_health_check returns, per project, a composite 0-100 score weighted across automation stability, coverage and manual execution, with sub-scores and prioritized recommendations.
- get_launches_trends and get_launches_statistics show which projects are trending up or down.
- get_coverage_gaps runs the bidirectional check: cases with no automation, and automated tests that no case owns.
- export_report pulls a formatted summary, trend or release report for whichever project needs a closer look.
That is a portfolio view, built by the agent itself, one project at a time: which of your projects is lagging, and where failures are clustering. Then it acts through the write tools described above: file the missing test case, open an execution, cut the release.
It is the customer’s own agent, connected with the customer’s own MCP key. M00N Report has no built-in agentic AI running this for anyone. There is no built-in executive or portfolio dashboard that ships this rollup as a screen: it is assembled by the agent iterating list_projects then run_health_check and the other read tools above, itself. run_health_check scores one project at a time; there is no org-wide aggregation tool. A portfolio view is something the agent builds, not something M00N Report ships. Nothing in that analysis leaves the MCP connection for a separate AI service, and there are no AI credits to buy: it is ordinary tool calls against data the agent already has access to.
Prompts and resources that arrive carrying data
6 data-enriched prompts and 8 resources ship alongside the tools, and the prompts are not string templates. analyze_flaky_tests executes a windowed SQL query across recent result history, ranks tests by how often they flipped between pass and fail, and embeds the top ten in the prompt before handing the agent its task list. The conversation starts with the evidence already in the model’s hands.
- 6 prompts: analyze_flaky_tests, debug_test_failure, release_readiness, generate_test_cases, weekly_health_report and investigate_regression.
- 8 resources: project lists, a project health summary, a flaky-tests report, currently-failing tests, folder structure, a launch report, test case content and a release summary.
- Server instructions: around 130 lines shipped to the model on connect, teaching the entity hierarchy and the trap of confusing a case’s internal id with the TC-number a human reads off the screen.
Connecting it
Two transports, two auth modes, one identical tool surface: 50 tools, 6 prompts, 8 resources either way.
Claude clients: a URL and a consent screen
For Claude Desktop, Claude Code and claude.ai, this is a hosted remote connector. Paste the connector URL in, a browser consent screen opens, you approve, and you are finished: no key file on disk, no local process to keep running. Underneath it is OAuth 2.1 with PKCE (S256), RFC 7591 dynamic client registration and RFC 8414 / 9728 discovery, over Streamable HTTP JSON-RPC at POST /mcp.
Every other client: the npm package and an MCP key
Cursor, ChatGPT, Zed, Windsurf, VS Code, or an agent you wrote yourself: install @m00nsolutions/mcp-server from npm and give it an MCP key. It speaks the same 50 tools over stdio, and this is the path that genuinely works for anything that is not Claude. Self-hosted instances point the same package at their own URL.
The remote connector’s redirect allowlist is hardcoded to claude.ai and claude.com. It is a Claude connector, not a general-purpose remote MCP endpoint. Every other client belongs on the stdio path above, and that path is first-class: it ships the identical tool surface, not a fallback.
The controls that make this governance, not novelty
Everything an agent does lands inside the permission model your team already operates under.
- Role-based access control: 4 roles, including a non-billable Guest, and an MCP key that carries the permissions of the account it belongs to. An agent cannot do what its owner cannot do.
- Tenant isolation: enforced in PostgreSQL through row-level security, not application-layer filtering. There is no query path that reaches another organization’s data.
- MCP audit log: every tool call an agent makes is recorded and reviewable in the app, which turns “we let an AI write tests” into something you can show an auditor.
- Per-key rate limiting: a looping agent throttles itself rather than your platform.
- Destructive-operation flags: 7 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.
The agent always has fresh data to read
An agent is only as useful as the data underneath it. Results reach the platform from any language: five official reporters (Playwright, Jest, pytest, NUnit, JUnit 5) plus a documented OpenAPI 3.0.3 ingest contract at /api/ingest/v2/openapi.json for everything else, so the read tools above are never querying a stale or partial picture. The full reporter and any-language story is on the test management page.
That OpenAPI contract covers ingest: reporting automated results in. There is no public REST API for test case, execution or release management. That surface is the UI and the MCP server above.
A server is common now. A governed write surface is not.
We audited eight test management and test reporting products for an official MCP server, verified 2026-07-21. Six ship one: Zephyr, ReportPortal, Allure TestOps and Qase, plus qTest and PractiTest which gate theirs to specific plans. Only TestRail and Xray have none, and Xray’s request, XRAY-11040, is still open.
So the server itself is no longer the differentiator. What matters is what it is allowed to do. A read-only server turns an assistant into a nicer query console: it can tell you the pass rate and hand the work back to you.
M00N Report’s server is 26 state-changing tools out of 50, each running through the same RBAC, the same audit log and the same coverage tracking as a human session. An agent does not just read your test suite, it maintains it, and every change it makes is governed in the platform rather than in a wrapper.
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 50 tools, 6 prompts and 8 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, converting Markdown into the editor's own Slate document model so the result is 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. Of the 50 tools, 26 change state and 7 are flagged destructive so a client can require explicit confirmation before running them. The four delete_ tools, for test cases, collections, releases and folders, 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 manual executions, 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 50 tools, 6 prompts and 8 resources as the cloud.
Give your agent a system of record
Connect in about a minute on the free plan. Create a workspace, paste the connector URL into Claude or install the npm package for anything else, and 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. See the full test management platform.