Skip to content

feat(mcp): add guide_testing endpoint with TestKit bindings reflection#123

Draft
metjuperry wants to merge 1 commit into
masterfrom
feature/guide-testing-endpoint
Draft

feat(mcp): add guide_testing endpoint with TestKit bindings reflection#123
metjuperry wants to merge 1 commit into
masterfrom
feature/guide-testing-endpoint

Conversation

@metjuperry
Copy link
Copy Markdown
Member

Summary

Add a new guide_testing MCP tool that discovers Reqnroll step bindings from TALXIS.TestKit.Bindings via reflection and uses MCP sampling to generate Gherkin scenarios for Power Apps UI testing.

Changes

  • TALXIS.CLI.MCP.csproj — Added TALXIS.TestKit.Bindings v1.0.10 NuGet reference
  • TestingBindingsCatalog.cs — New class that uses reflection to extract all [Given]/[When]/[Then] step bindings, grouped by category
  • Skills/Internal/testing-workflow.md — Internal reasoning skill with BDD test generation guidance
  • GuideReasoningEngine.cs — Added guide_testingtesting-workflow skill mapping
  • Program.cs — Registered always-on tool, added handler with MCP sampling

Behavior

  • With query: Uses MCP sampling to generate a complete Gherkin scenario from available bindings
  • Without query: Returns the full catalog of available step bindings in Gherkin format

Add a new guide_testing MCP tool that discovers Reqnroll step bindings
from TALXIS.TestKit.Bindings via reflection and uses MCP sampling to
generate Gherkin scenarios for Power Apps UI testing.

- Add NuGet reference to TALXIS.TestKit.Bindings v1.0.10
- Create TestingBindingsCatalog for runtime step discovery
- Create testing-workflow internal reasoning skill
- Register guide_testing as always-on tool in Program.cs
- Wire up skill mapping in GuideReasoningEngine

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

// Load UI testing step bindings catalog via reflection
var testingBindingsCatalog = new TestingBindingsCatalog();
testingBindingsCatalog.Load();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how much performance penalty this is but I don't think we need to load this on MCP server start.

- guide_deployment: Deployment lifecycle — import/export/pack solutions, manage components, publish. Requires profile.
- guide_data: LIVE data operations — SQL/FetchXML/OData queries, record CRUD, bulk ops, CMT migration. Requires profile.
- guide_config: CLI setup — auth credentials, connections, profiles, settings. Required before environment operations.
- guide_testing: UI test generation — discover available Reqnroll step bindings for Power Apps BDD tests.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should keep this guide general for any type of testing

}

// Handles guide_testing calls — uses TestingBindingsCatalog + sampling to recommend step bindings
async ValueTask<CallToolResult> HandleGuideTestingAsync(
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this Program.cs is already 1000 LoC. we're breaking single responsibility princeple and we need to decompose it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants