Precept.Mcp
0.11.1
dotnet tool install --global Precept.Mcp --version 0.11.1
dotnet new tool-manifest
dotnet tool install --local Precept.Mcp --version 0.11.1
#tool dotnet:?package=Precept.Mcp&version=0.11.1
nuke :add-package Precept.Mcp --version 0.11.1
Precept.Mcp
An MCP server that lets a coding agent inspect a Precept test
project. It answers the questions Precept cannot answer for itself at runtime: why a green build
found no tests, which of five sources decided the environment, why raising MaxParallelism changed
nothing, what a filter expression will select, and how the suite's test data is meant to be
written.
This is a tool, not a library. Nothing in your test code references it.
It is one of two things Precept ships for an agent. The other is a set of skills, a Copilot agent and an instructions file, installed from autom3tion/precept-skills. See Working with a coding agent.
dotnet tool install --global Precept.Mcp
Then point an MCP client at it. Checked into the repository as .mcp.json, this is picked up by
Claude Code and other clients that read that file:
{
"mcpServers": {
"precept": {
"command": "precept-mcp"
}
}
}
To skip the install entirely, use "command": "dnx" with "args": ["Precept.Mcp", "--yes"]. The
package is then fetched and run on demand.
What it does
| Tool | Answers |
|---|---|
precept_diagnose_project |
Feature files that generate no code-behind, duplicate scenarios from a stray .feature under bin, settings or test data files that never reach the test binary, dotnet test pointed at the wrong runner, a .runsettings nothing reads, an environment with no overlay, a reporter the CI gate will drop. |
precept_explain_environment |
Which of the five sources decided the environment, and which precept.{environment}.json that loads. |
precept_explain_parallelism |
The effective width of a run, and why a higher MaxParallelism may schedule nothing extra. |
precept_explain_failure |
Maps an error message or symptom onto its known cause. |
precept_explain_module |
What a module is for, its registration, its entry point and settings section with the real defaults, the assertions it adds, and which modules the project already references, registers and configures. |
precept_explain_testdata |
How Precept.TestData is used: files and overlays, {{token}} generators, the type-to-set convention, factories and pools, plus what the project already has and whether its data files reach the output directory. |
precept_validate_filter |
Parses a filter with the runner's own parser, and catches the leading @ that the test platform reads as a response file. |
Every check targets one of Precept's silent failure modes, where the build is green, the run is green, and the answer is quietly wrong. The explanations cover the conventions and precedence rules that are nowhere in the project's own source, which is what an agent otherwise guesses at.
The server is read-only. It reports each finding with the edit that would fix it and leaves the edit to you.
Which Precept is answering
The server references every Precept package and reads its answers out of those assemblies:
settings sections with their real defaults, the assertions each module adds, the test data naming
convention, and which {{token}} names are built in.
A tool package bundles its dependencies, so the server answers from its version of Precept, not
necessarily the project's. A global install is one version for the whole machine, so it can answer
a second repository with the first one's rules. Every answer names the version behind it, and
precept_diagnose_project reports PMCP008 when the two are far enough apart to disagree. To pin
the server to a project, run it per invocation:
{
"mcpServers": {
"precept": { "command": "dnx", "args": ["Precept.Mcp@0.11.1", "--yes"] }
}
}
Part of Precept, a .NET 10 test framework built on Microsoft.Testing.Platform. Full documentation: working with a coding agent · configuration · environments · execution model · filtering · reporting
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.