Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "webengine-plugins",
"interface": {
"displayName": "WebEngine Plugins"
},
"plugins": [
{
"name": "webengine-web",
"source": {
"source": "local",
"path": "./plugins/webengine-web"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Testing"
},
{
"name": "webengine-mobile",
"source": {
"source": "local",
"path": "./plugins/webengine-mobile"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Testing"
}
]
}
31 changes: 31 additions & 0 deletions .vscode/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"$comment": "Workspace MCP servers for contributors (local build, no NuGet needed). Build first: dotnet build src/AxaFrance.WebEngine.Mcp -c Release",
"servers": {
"webengine-web": {
"type": "stdio",
"command": "dotnet",
"args": [
"exec",
"${workspaceFolder}/src/AxaFrance.WebEngine.Mcp/bin/Release/net10.0/AxaFrance.WebEngine.Mcp.dll",
"--profile",
"web",
"--transport",
"stdio"
],
"cwd": "${workspaceFolder}"
},
"webengine-mobile": {
"type": "stdio",
"command": "dotnet",
"args": [
"exec",
"${workspaceFolder}/src/AxaFrance.WebEngine.Mcp/bin/Release/net10.0/AxaFrance.WebEngine.Mcp.dll",
"--profile",
"mobile",
"--transport",
"stdio"
],
"cwd": "${workspaceFolder}"
}
}
}
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,23 @@ WebEngine includes an **MCP server** that enables AI-powered coding agents (like
**Key Features:**
- **Observe**: Capture page state, inspect elements, and analyze accessibility
- **Execute**: Interact with UI elements and perform bulk actions on live applications
- **Generate**: Automatically create PageModels and test scripts in WebEngine format
- **Generate**: Automatically create code in your stack (Playwright+TS, Selenium, WebEngine C#) from observed behavior

**For detailed information on running the MCP server locally, available tools, and how to use it with coding agents, see [WebEngineMCP.md](WebEngineMCP.md).**
**Plugins (stdio, recommended):** one `webengine-mcp` binary, two plugins — `plugins/webengine-web` (Selenium, 29 tools) and `plugins/webengine-mobile` (Appium, 17 tools) — each bundling Agent Skills + MCP server for Copilot (Agent Plugins 1.0) and Codex. Details in `plugins/README.md`.

**Install the plugins in your coding agent:**

| Agent | Install |
|---|---|
| GitHub Copilot (VS Code) | `Chat: Install Plugin From Source` → this repo URL, or marketplace `AxaFrance/webengine-dotnet` |
| Codex (CLI/IDE/desktop) | `codex plugin marketplace add AxaFrance/webengine-dotnet --sparse .agents/plugins` |
| Claude Code | copy `plugins/<name>/skills/*` to `.claude/skills/` + stdio entry in `mcpServers` |
| OpenCode | copy skills to `.agents/skills/` + `type: local` entry in `opencode.json` |
| Cursor | copy skills to `.cursor/skills/` + entry in `.cursor/mcp.json` |

Server runs zero-install via `dnx AxaFrance.WebEngine.Mcp --profile <web\|mobile> --transport stdio` (.NET 10). Full per-agent guide: documentation article *MCP Plugins for Coding Agents*.

**For detailed information on running the MCP server locally, available tools, and how to use it with coding agents, see [WebEngineMCP.md](src/WebEngineMCP.md).**

## WebEngine 2.0 Roadmap
We are working on the next version of WebEngine Framework, in the next versions we will bring.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,10 @@ <h5 class="returns">Returns</h5>
</tr>
</tbody>
</table>
<h3 id="extensionmethods">Extension Methods</h3>
<div>
<a class="xref" href="AxaFrance.AxeExtended.Selenium.SeleniumHelper.html#AxaFrance_AxeExtended_Selenium_SeleniumHelper_WithSelenium_AxaFrance_AxeExtended_HtmlReport_OverallReportBuilder_OpenQA_Selenium_WebDriver_System_String_">SeleniumHelper.WithSelenium(OverallReportBuilder, WebDriver, string)</a>
</div>

</article>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@


<h1 id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem" class="text-break">Class OverallResultItem</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 summary"><p>Represents a result item for a WCAG accessibility rule evaluation.</p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
Expand All @@ -91,11 +92,12 @@ <h3 id="properties">Properties
<a href="https://github.com/AxaFrance/webengine-dotnet/new/develop/apiSpec/new?filename=AxaFrance_AxeExtended_HtmlReport_OverallResultItem_RuleName.md&amp;value=---%0Auid%3A%20AxaFrance.AxeExtended.HtmlReport.OverallResultItem.RuleName%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Edit this page</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L12">View Source</a>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L18">View Source</a>
</span>
<a id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_RuleName_" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.RuleName*"></a>
<h4 id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_RuleName" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.RuleName">RuleName</h4>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the name of the rule.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
Expand All @@ -121,7 +123,7 @@ <h5 class="propertyValue">Property Value</h5>
<a href="https://github.com/AxaFrance/webengine-dotnet/new/develop/apiSpec/new?filename=AxaFrance_AxeExtended_HtmlReport_OverallResultItem_RulePoint.md&amp;value=---%0Auid%3A%20AxaFrance.AxeExtended.HtmlReport.OverallResultItem.RulePoint%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Edit this page</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L10">View Source</a>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L13">View Source</a>
</span>
<a id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_RulePoint_" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.RulePoint*"></a>
<h4 id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_RulePoint" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.RulePoint">RulePoint</h4>
Expand Down Expand Up @@ -152,7 +154,7 @@ <h5 class="propertyValue">Property Value</h5>
<a href="https://github.com/AxaFrance/webengine-dotnet/new/develop/apiSpec/new?filename=AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagCritirias.md&amp;value=---%0Auid%3A%20AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagCritirias%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Edit this page</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L27">View Source</a>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L33">View Source</a>
</span>
<a id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagCritirias_" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagCritirias*"></a>
<h4 id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagCritirias" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagCritirias">WcagCritirias</h4>
Expand Down Expand Up @@ -183,7 +185,7 @@ <h5 class="propertyValue">Property Value</h5>
<a href="https://github.com/AxaFrance/webengine-dotnet/new/develop/apiSpec/new?filename=AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagLevel.md&amp;value=---%0Auid%3A%20AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagLevel%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Edit this page</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L22">View Source</a>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L28">View Source</a>
</span>
<a id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagLevel_" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagLevel*"></a>
<h4 id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagLevel" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagLevel">WcagLevel</h4>
Expand Down Expand Up @@ -214,7 +216,7 @@ <h5 class="propertyValue">Property Value</h5>
<a href="https://github.com/AxaFrance/webengine-dotnet/new/develop/apiSpec/new?filename=AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagVersion.md&amp;value=---%0Auid%3A%20AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagVersion%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Edit this page</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L17">View Source</a>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L23">View Source</a>
</span>
<a id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagVersion_" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagVersion*"></a>
<h4 id="AxaFrance_AxeExtended_HtmlReport_OverallResultItem_WcagVersion" data-uid="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.WcagVersion">WcagVersion</h4>
Expand Down Expand Up @@ -252,7 +254,7 @@ <h5 class="propertyValue">Property Value</h5>
<a href="https://github.com/AxaFrance/webengine-dotnet/new/develop/apiSpec/new?filename=AxaFrance_AxeExtended_HtmlReport_OverallResultItem.md&amp;value=---%0Auid%3A%20AxaFrance.AxeExtended.HtmlReport.OverallResultItem%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Edit this page</a>
</li>
<li>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L5" class="contribution-link">View Source</a>
<a href="https://github.com/AxaFrance/webengine-dotnet/blob/develop/src/AxaFrance.AxeExtended.HtmlReport/OverallResultItem.cs/#L8" class="contribution-link">View Source</a>
</li>
</ul>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -639,6 +639,10 @@ <h5 class="returns">Returns</h5>
<h5 id="AxaFrance_AxeExtended_HtmlReport_PageReportBuilder_WithRgaaExtension_remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>This method is not compatible with other <a class="xref" href="AxaFrance.AxeExtended.HtmlReport.PageReportBuilder.html#AxaFrance_AxeExtended_HtmlReport_PageReportBuilder_WithConfig_Newtonsoft_Json_Linq_JObject_">WithConfig(JObject)</a> method.</p>
</div>
<h3 id="extensionmethods">Extension Methods</h3>
<div>
<a class="xref" href="AxaFrance.AxeExtended.Selenium.SeleniumHelper.html#AxaFrance_AxeExtended_Selenium_SeleniumHelper_WithSelenium_AxaFrance_AxeExtended_HtmlReport_PageReportBuilder_OpenQA_Selenium_WebDriver_">SeleniumHelper.WithSelenium(PageReportBuilder, WebDriver)</a>
</div>

</article>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ <h4 id="AxaFrance_AxeExtended_HtmlReport_TagsProvider_GetTagsByRule_Deque_AxeCor
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract IEnumerable&lt;string&gt; GetTagsByRule(AxeResultItem rule)</code></pre>
<pre><code class="lang-csharp hljs">public abstract IEnumerable&lt;string&gt; GetTagsByRule(AxeResultItem ruleId)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
Expand All @@ -150,8 +150,9 @@ <h5 class="parameters">Parameters</h5>
<tbody>
<tr>
<td><span class="xref">AxeResultItem</span></td>
<td><span class="parametername">rule</span></td>
<td></td>
<td><span class="parametername">ruleId</span></td>
<td><p>the identifier of the rule</p>
</td>
</tr>
</tbody>
</table>
Expand Down
3 changes: 2 additions & 1 deletion docs/api_net/AxaFrance.AxeExtended.HtmlReport.html
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ <h4><a class="xref" href="AxaFrance.AxeExtended.HtmlReport.OverallReportBuilder.
<section><p>Builder to be used to build overall report. Overall report represents all scanned pages within a user journey.</p>
</section>
<h4><a class="xref" href="AxaFrance.AxeExtended.HtmlReport.OverallResultItem.html">OverallResultItem</a></h4>
<section></section>
<section><p>Represents a result item for a WCAG accessibility rule evaluation.</p>
</section>
<h4><a class="xref" href="AxaFrance.AxeExtended.HtmlReport.PageReportBuilder.html">PageReportBuilder</a></h4>
<section><p>Classes for generating HTML report from given Axe-Core results</p>
</section>
Expand Down
Loading
Loading