m00nreport
OfficialThis server is an MCP bridge to M00N Report, letting an AI assistant manage test assets and read project health in an AI-native test management platform.
Project & analytics: list projects, view launches, trends, statistics, per-test history, and search automated tests
Test cases: create, read, update, move, archive, bulk-edit cases, and link autotests to cases for coverage tracking
Folders & suites: create/manage the folder-suite hierarchy and pull per-folder statistics
Test collections: create and manage reusable named case sets that can be dropped into executions
Manual executions: build executions from suites/collections/case groups and record per-case and per-step results
Releases: create/update/archive releases and link or unlink automated launches to them
Health & coverage: run health checks, find coverage gaps, get feature scans, suggest test cases, and export reports
External links: attach/remove Jira, Linear, GitHub, GitLab, and other ticket links to cases, executions, releases, or launches
@m00nsolutions/mcp-server
Agentic test management over MCP. This server lets an AI assistant do the work rather than read about it: author test cases, plan and populate manual test executions, link automation back to the cases it covers, cut releases and read project health in M00N Report, an AI-native test management platform.
Which Install Do I Need?
This npm package (stdio) | Hosted remote connector | |
How it runs |
| No local process; the client talks to the API over HTTP |
Auth | An MCP key in | OAuth 2.1 with PKCE, browser consent screen |
Clients | Any MCP client: Claude Code, Claude Desktop, Cursor, and others | claude.ai and claude.com only |
If you are not connecting from claude.ai or claude.com, use this package with an MCP key. That is the rest of this README. For the connector, see the connector guide.
Related MCP server: @testneo/mcp-server
Requirements
Node 20 or newer, and any MCP-capable client.
Installation
No install step. The client launches it with npx, as configured below.
To pin a version in a shared or CI environment, append one to the package name in args, like ["-y", "@m00nsolutions/mcp-server@<version>"]. npm view @m00nsolutions/mcp-server versions lists what is published. A placeholder rather than a number on purpose: a concrete example here goes stale on the next release, and a stale one recommends pinning to a version that no longer has the current fixes.
Quick Start
1. Get an MCP key
In M00N Report, open Settings -> MCP Keys and create a key. It starts with m00n_mcp_ followed by 48 hex characters. This is not the credential the test reporters use; theirs starts with m00n_ and is refused here.
An MCP key carries exactly the permissions of the account it belongs to, never more, and can be scoped down further. Scoping removes tools from the list the client sees, so a shorter tool list than you expected is a scoping decision, not a fault.
The key goes in your own MCP client config on your machine. Do not put it in a workspace file that lives in a repository.
2. Connect your client
Claude Code, one line:
claude mcp add m00n --env M00N_API_URL=https://m00nreport.com --env M00N_API_KEY=m00n_mcp_... -- npx -y @m00nsolutions/mcp-serverEvery other client takes the same JSON block:
{
"mcpServers": {
"m00n": {
"command": "npx",
"args": ["-y", "@m00nsolutions/mcp-server"],
"env": {
"M00N_API_URL": "https://m00nreport.com",
"M00N_API_KEY": "m00n_mcp_your_key_here"
}
}
}
}Where that block goes:
Client | Config file |
Cursor |
|
Claude Desktop, macOS |
|
Claude Desktop, Windows |
|
For a self-hosted instance, point M00N_API_URL at your own root origin, with no /api suffix. A trailing slash is stripped for you.
3. Confirm the connection
Restart the client, then ask it:
List my M00N Report projects
A list of your projects means the server is connected and the key is valid. An error, or the assistant saying it has no such tool, means it is not; see Troubleshooting.
Tools
Eight areas. The full list with arguments is at /documentation/mcp/tools, kept beside the code. The server fetches its own list from your instance at startup, so what your client sees is what your instance supported when the client connected.
Area | What it covers |
Projects and analytics | Projects, launch trends and statistics, per-test history, search across automated tests |
Test cases | Create, read, update, move, delete, bulk edit, and link an automated test to the case it covers |
Folders and suites | The folder and suite hierarchy, plus per-folder statistics |
Test collections | Reusable named case sets that drop into any execution |
Manual executions | Build an execution from suites, collections or individual cases, then record per-case results |
Releases | Create and manage releases, and attach or detach the launches that belong to them |
Health and coverage | A composite health check, coverage gaps in both directions, case suggestions, feature scan, report export |
External links | Attach and remove Jira or Linear tickets on a case |
An execution is a manual test run: assignees, environment, dates, and per-step results captured against a snapshot of each case at the moment it was added.
How many tools your key can see comes from your instance:
curl -s -H "X-MCP-Key: $M00N_API_KEY" "$M00N_API_URL/api/mcp/tools" | jq .countThat returned 57 on m00nreport.com with an unscoped key on 2026-08-22.
Prompts
Guided multi-step workflows the client can offer by name. Each takes a single optional project argument, a name or a UUID; omit it and the server picks the project when only one is in scope.
Prompt | What it does |
| Find tests that pass and fail without a code change, and rank them |
| Work a single failure back to a cause from its history and traces |
| Judge whether a release is safe to ship |
| Draft manual cases for an area that has none |
| Summarise the week across projects |
| Find what changed between a passing and a failing run |
| Take a manual test cycle from assembly to per-case results |
Resources
Read-only views the client can pull without calling a tool: all projects, project health summary, flaky tests report, currently failing tests, folder structure, launch report, test case content, release summary.
Configuration
Env var | Required | Default | Description |
| to connect | Your M00N Report URL. Root origin, no | |
| to connect | An MCP key ( | |
| no |
| Adds per-request detail to stderr, including each tool call's arguments. Startup steps and errors are logged either way. |
| no |
| Request timeout, a bare number of milliseconds. |
| no |
| Accept a self-signed certificate. Self-hosted instances only. |
The two booleans are on for true, 1 or yes, in any case. Every other value, false and 0 included, leaves them off.
Set both of the first two or neither. Setting one is treated as a mistake and refused, because a half-configured server that starts anyway is harder to diagnose than one that does not.
The base URL is M00N_API_URL here; the test reporters call the same URL M00N_SERVER_URL. All six packages read M00N_API_KEY, but theirs is a project API key rather than an MCP key, so one exported shell variable cannot serve both.
Running Without a Key
Started with neither M00N_API_URL nor M00N_API_KEY, the server runs in preview mode: it lists
its tools, prompts and resources from a bundled snapshot and refuses every call with a message
saying what to set. Nothing is sent anywhere, because there is nowhere to send it.
That is what lets an inspector, a client or a directory show the tool surface before anyone has signed up. It is a description of the server, never a working one, so the listings come from the snapshot rather than from your instance: a scoped key normally sees fewer tools than the snapshot shows.
Maintainers refresh the snapshot with npm run snapshot:refresh against an unscoped key.
Self-Hosted
Point M00N_API_URL at your own instance and issue the MCP key from that instance. Everything else is identical, which matters when the reason you self-host is that test data cannot leave your network.
With a self-signed certificate, add "M00N_INSECURE_SSL": "true" to the same env block. Full notes: /documentation/mcp/self-hosted.
What Gets Sent
To M00N_API_URL over HTTPS: the tool calls your assistant makes and their arguments. The server is a proxy to your own instance and stores nothing itself.
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. The key is never written to that log, nor to stderr. Under M00N_DEBUG the arguments of every tool call are printed to stderr, so treat that output as you would the data itself.
Troubleshooting
Symptom | Cause |
The client shows no M00N Report tools | The config was not reloaded. Restart the client fully, not just the conversation. |
Tools are listed but every call answers | Neither |
| That is a project API key, the kind the test reporters use. MCP keys are separate: Settings -> MCP Keys. |
| The key is wrong, revoked, or from another instance. Or |
| Not an error, and the server keeps running. It means the key is sent unencrypted on every request. Use |
| The URL answers with a redirect, and redirects are not followed because the MCP key would travel to wherever they point. Set |
| Nothing is listening at that URL. The instance is down, or the port is closed to you. |
| The hostname does not resolve. A typo, or a private name reached from outside its network. |
| Raise |
| A self-signed certificate on a self-hosted instance. Set |
| The rest of the line is the server's own answer and usually names the fix, such as which projects do exist. Read it before changing a setting. |
| 60 tool calls per minute per key. The message carries the wait. |
Fewer tools than expected | The key is permission-scoped, or the instance is older than the package. The tool list comes from your instance. |
The server logs to stderr with or without M00N_DEBUG, and most clients surface it in their MCP panel. Set M00N_DEBUG to true to add each request and its arguments.
Known Limitations
The tool list is read once, at startup. Re-scope a key or upgrade the instance and the client keeps the old list until you restart the client.
GET /api/healthmust be reachable when configured. It is checked before anything else and a failure stops the server, so a proxy forwarding only/api/mcp/*shows no tools at all even though every tool would work.A key scoped to zero tools does not start. The server exits rather than connecting with an empty list. This is the configured path; with no credentials at all it starts in preview mode instead.
Prompts and resources are optional. If their listings fail, the server still starts, with the reason on stderr, and the client sees none of them for the whole session.
Redirects are refused, not followed. The key rides in a custom header, and redirect followers strip only the auth headers they recognise, so following one would hand the key to whatever host answered next. A redirect is reported with the address it pointed at.
stdio only. For an HTTP transport, use the hosted connector.
Support
License
MIT License. See LICENSE.
Maintenance
Related MCP Servers
- AlicenseCqualityFmaintenanceA TypeScript-based MCP server that provides integration with the Qase test management platform, allowing you to manage projects, test cases, runs, results, plans, suites, and shared steps.2612MIT
- AlicenseCqualityBmaintenanceMCP server for TestNeo quality workflows, enabling test generation, execution, and analysis through MCP-compatible IDE clients.4823GPL 3.0
- AlicenseAqualityBmaintenanceThis is an unofficial, community-built MCP server for qTest Manager. Not affiliated with or endorsed by Tricentis. Browse projects, modules, and test cases Create/delete test design modules Create and manage test execution cycles Add test cases into execution suites9301MIT
- AlicenseAqualityDmaintenanceEnables test execution and management through MCP clients, allowing retrieval of projects, listing tests, executing tests with browser selection, and monitoring results.623MIT
Related MCP Connectors
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in
Manage feature requests, votes, roadmaps, and changelogs from any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/m00nreport/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server