added workflow section to publish to mcp registry#131
Merged
mrdailey99 merged 23 commits intomainfrom Apr 25, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the manual/release publishing GitHub Actions workflow to also publish the package to the MCP Registry (in addition to NPM), using GitHub OIDC authentication.
Changes:
- Renames the workflow to reflect dual publishing (NPM + MCP Registry).
- Adds job-level OIDC permissions (
id-token: write) required for MCP Registry authentication. - Downloads
mcp-publisher, authenticates viagithub-oidc, and runsmcp-publisher publish.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…a mode=failures Req: Wave 3 inner-loop tools — atomic test-case step editing with backup/restore safety and lightweight failure extraction from JUnit XML results without full RCA overhead. Fix: Agents editing test steps had to replace entire XML files with no rollback; mode=failures returns a plain failure array for quick triage without loading HTML reports. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rsion sync RCA: tar install used redundant duplicate -f flags not matching official MCP registry docs Fix: Use tar xz per docs; add release-only step to sync tag version into server.json both fields Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ad (A1) RCA: Agents silently used stale config values when reading a different properties file than the one registered in sf config, causing downstream test run failures. Fix: Compare provarHome/projectPath/resultsPath between active sf config and requested file, surface details.warning on divergence. Also renames FILE_NOT_FOUND -> PROPERTIES_FILE_NOT_FOUND and guards active-file path with assertPathAllowed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…on.testrun (B1) RCA: After a test run agents had no structured per-test-case result data, only raw stdout, making failure diagnosis require manual log parsing. Fix: Parse JUnit XML files in the results directory post-run; return steps[] array with testItemId, title, status, and errorMessage on both success and failure responses. Handles bare <testsuite> and <testsuites> wrapper roots, partial parse failures, and falls back to details.warning when no valid XML is found. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rep) RCA: Wave 2 (test case generation) and Wave 3 (step editing) both need to validate XML after mutations without spawning a separate MCP tool call round-trip. Fix: Export validateTestCaseXml(filePath, config) from testCaseValidate.ts; it enforces path policy, reads the file, and returns the same TestCaseValidationResult shape as the tool handler. Throws TESTCASE_FILE_NOT_FOUND on missing file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… code rename RCA: Three behaviour changes in this wave lacked documentation: provar.properties.read gained a divergence warning + error code rename (FILE_NOT_FOUND → PROPERTIES_FILE_NOT_FOUND), and provar.automation.testrun now returns a structured steps[] array from JUnit XML. Fix: Update docs/mcp.md to reflect PROPERTIES_FILE_NOT_FOUND error code, divergence_warning field, and the steps[] shape returned by provar.automation.testrun. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: This PR introduces new behaviour (divergence warning, JUnit step output, validateTestCaseXml export) that warrants a beta version bump per the project's publish policy. Fix: Increment beta suffix from beta.9 to beta.10 in package.json and both version fields in server.json to keep them in sync. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Req: Four Copilot review comments on PR #132 were all valid and needed fixing before merge to prevent subtle bugs and security gaps. Fix: Reject step_xml with ≠1 apiCall; use temp→rename write; enforce path policy on project_path in rca; treat thrown validation errors as failures not success. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: Five issues flagged by code review: (1) readResultsPathFromSfConfig read sf config and results dir without path-policy guards, allowing properties files inside allowedPaths to redirect reads outside; (2-3) provar.properties.set and .validate still emitted FILE_NOT_FOUND while .read used PROPERTIES_FILE_NOT_FOUND, making error handling inconsistent; (4-5) docs/mcp.md referred to a specific "JUnit.xml" filename (impl scans all *.xml) and the .properties.read output/error sections were missing requestId and PATH_TRAVERSAL. Fix: Thread ServerConfig into readResultsPathFromSfConfig and registerAutomationTestRun; add assertPathAllowed guards on propFilePath and resultsDir before reading. Standardise to PROPERTIES_FILE_NOT_FOUND across all three properties tools (set, validate, read). Fix docs: "JUnit XML files", add requestId to output shape, add PATH_TRAVERSAL to properties.read error codes, align set/validate error codes in docs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…iles RCA: Internal phased-rollout terminology leaked into docs and source comments, confusing external users who encountered these references Fix: Replace Phase 1/2 labels with descriptive terms across 5 files; no behaviour change Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…n.list Req: Wave 2 engineering review — fix non-SF page object generation bugs and add connection discovery tool for AI agents Fix: correct URI format, substeps XML structure, uiWithScreenTarget validator, SSO guard, wildcard scope, connection.list tool - testCaseGenerate: query-param URI (ui:pageobject:target?pageId=pageobjects.X) and substeps clause - bestPracticesEngine: implement uiWithScreenTarget validator, fix arguments path - pageObjectGenerate: FILE_EXISTS guard on SSO stub write - qualityHubTools: narrow wildcard detection to --plan-name values only - connectionTools: new provar.connection.list reads .testproject connections and environments Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ixes feat(mcp): Wave 1 inner-loop improvements — divergence warning, JUnit steps, validateTestCaseXml export
Req: Address all 9 PR review comments and 2 of 3 Codex findings on feature/wave2-nonsf-generation Fix: atomic write ordering, XML parse error surfacing, path validation, validator logic, error message clarity, and doc field name corrections - pageObjectGenerate: preflight both filePath and ssoFilePath before any write (atomic) - connectionTools: throw CONNECTION_XML_PARSE_ERROR on malformed .testproject XML - connectionTools: assertPathAllowed on testProjectPath (defence in depth) - bestPracticesEngine: use rule.check.apiId value for filter instead of hardcoded substring - testCaseGenerate: clarify TESTCASE_INVALID message to reference details.validation - qualityHubTools: narrow wildcard flag description to --plan-name values specifically - docs/mcp.md: fix fields schema (locator_strategy/element_type), steps schema (attributes), QH wildcard note Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion feat(mcp): wave 2 — non-SF generation fixes + provar.connection.list tool
Req: Wave 2 merged to develop adding provar.connection.list; Wave 3 needs to incorporate those changes without losing its own additions. Fix: Keep both imports/registrations in server.ts; renumber step.edit smoke entry to #50; update TOTAL_EXPECTED to 50 and tools comment to 39. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(mcp): add provar.testcase.step.edit and provar.testrun.rca mode=failures
Bump version to 1.5.0-beta.11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.