Skip to content

PDX-0: fix(mcp): rename tool names from dot-notation to underscore fo…#141

Merged
mrdailey99 merged 3 commits into
developfrom
fix/mcp-tool-names-underscore
May 5, 2026
Merged

PDX-0: fix(mcp): rename tool names from dot-notation to underscore fo…#141
mrdailey99 merged 3 commits into
developfrom
fix/mcp-tool-names-underscore

Conversation

@mrdailey99
Copy link
Copy Markdown
Collaborator

…r Copilot

RCA: All 41 MCP tool names used dot-notation (provar.xxx.yyy) which violates the [a-z0-9_-] constraint enforced by GitHub Copilot and other MCP clients.

Fix: Rename to underscore form across source, tests, scripts, and docs; restore 4 correctness fixes from pre-commit review; bump version to 1.5.0-beta.15.

…r Copilot

RCA: All 41 MCP tool names used dot-notation (provar.xxx.yyy) which violates the [a-z0-9_-] constraint enforced by GitHub Copilot and other MCP clients.

Fix: Rename to underscore form across source, tests, scripts, and docs; restore 4 correctness fixes from pre-commit review; bump version to 1.5.0-beta.15.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 5, 2026 18:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Renames MCP tool identifiers from dot notation to underscore form across the MCP server, tests, scripts, and user-facing docs so Copilot-compatible clients can call them. It also adds new plan-integrity warning plumbing in project validation and makes a small XML shape change in generated test cases.

Changes:

  • Renamed MCP tool names and updated corresponding tests, smoke coverage, and prompt text references.
  • Added plan_integrity_warnings handling in project validation and adjusted generated test case XML output.
  • Bumped published package/server metadata to 1.5.0-beta.15.

Reviewed changes

Copilot reviewed 52 out of 52 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
test/unit/mcp/testSuiteValidate.test.ts Updates suite-validation tests to renamed tool name.
test/unit/mcp/testPlanValidate.test.ts Updates plan-validation tests to renamed tool name.
test/unit/mcp/testCaseStepTools.test.ts Updates step-edit tool tests to renamed tool name.
test/unit/mcp/rcaTools.test.ts Updates RCA/locate tool tests to renamed tool names.
test/unit/mcp/qualityHubTools.test.ts Updates Quality Hub CLI wrapper tests to renamed tool names.
test/unit/mcp/qualityHubApiTools.test.ts Updates corpus retrieval tests to renamed tool name.
test/unit/mcp/propertiesTools.test.ts Updates properties tool tests and next-step assertions.
test/unit/mcp/projectValidateFromPath.test.ts Updates project-validation-from-path tests to renamed tool name.
test/unit/mcp/pageObjectGenerate.test.ts Updates page-object generator tests to renamed tool name.
test/unit/mcp/migrationPrompts.test.ts Updates prompt tests for renamed tool references.
test/unit/mcp/loopPrompts.test.ts Updates loop prompt tests for renamed tool references.
test/unit/mcp/defectTools.test.ts Updates defect tool tests to renamed tool name.
test/unit/mcp/connectionTools.test.ts Updates connection-list tests to renamed tool name.
test/unit/mcp/antTools.test.ts Updates ANT tool tests to renamed tool names.
src/services/projectValidation.ts Adds plan-integrity warning collection and coverage/path handling changes.
src/mcp/tools/testSuiteValidate.ts Renames suite-validation MCP tool and log labels.
src/mcp/tools/testPlanValidate.ts Renames plan-validation MCP tool and log labels.
src/mcp/tools/testCaseValidate.ts Renames testcase-validation MCP tool and embedded guidance strings.
src/mcp/tools/testCaseStepTools.ts Renames testcase step-edit MCP tool and messages.
src/mcp/tools/testCaseGenerate.ts Renames testcase generator MCP tool and tweaks generated XML/help text.
src/mcp/tools/rcaTools.ts Renames RCA-related MCP tools and guidance strings.
src/mcp/tools/qualityHubTools.ts Renames Quality Hub MCP tools and related messages.
src/mcp/tools/qualityHubApiTools.ts Renames corpus retrieval MCP tool and messaging.
src/mcp/tools/propertiesTools.ts Renames properties MCP tools and related guidance.
src/mcp/tools/projectValidateFromPath.ts Renames project-validation MCP tool and keeps response shaping logic.
src/mcp/tools/projectInspect.ts Renames project-inspect MCP tool and log labels.
src/mcp/tools/pageObjectGenerate.ts Renames page-object generator MCP tool and logs.
src/mcp/tools/defectTools.ts Renames defect-creation MCP tool and related messages.
src/mcp/tools/connectionTools.ts Renames connection-list MCP tool and messages.
src/mcp/tools/automationTools.ts Renames automation MCP tools and related guidance text.
src/mcp/tools/antTools.ts Renames ANT MCP tools and logs.
src/mcp/server.ts Renames ping tool to underscore form.
src/mcp/prompts/migrationPrompts.ts Updates prompt instructions to call renamed tools.
src/mcp/prompts/loopPrompts.ts Updates loop prompt instructions to call renamed tools.
server.json Bumps MCP package metadata version.
scripts/mcp-smoke.cjs Updates smoke script to call renamed tools.
package.json Bumps package version.
messages/sf.provar.mcp.start.md Updates start-command help text and tool list.
messages/sf.provar.auth.clear.md Updates auth-clear help text to renamed validator tool.
docs/university-of-provar-mcp-course.md Updates training docs to renamed tool names.
docs/provar-mcp-public-docs.md Updates public MCP docs to renamed tool names.
docs/PROVAR_TEST_STEP_REFERENCE.md Updates step-reference doc to renamed helper tools.
docs/mcp-pilot-guide.md Updates pilot guide examples to renamed tool names.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/services/projectValidation.ts Outdated
Comment on lines +275 to +276
// Only expose testCasePath when in-bounds — out-of-bounds paths must not affect coverage totals
return { testCase: { name: tcName, xml_content }, testCasePath: tcInBounds ? testCasePath : null, testCaseId };
Comment thread src/services/projectValidation.ts Outdated
Comment on lines +327 to +336
// Always recurse for display; only forward coverage state when .planitem is present
testSuites.push(
readSuiteDirectory(
fullPath,
entry.name,
projectPath,
depth + 1,
hasPlanItem ? coveredPaths : undefined,
hasPlanItem ? idMap : undefined,
planIntegrityWarnings
Comment on lines +373 to +382
testSuites.push(
readSuiteDirectory(
fullPath,
entry.name,
projectPath,
0,
hasPlanItem ? coveredPaths : undefined,
hasPlanItem ? idMap : undefined,
planIntegrityWarnings
)
Comment on lines 68 to +71
const coverage = {
...coverageRest,
uncovered_test_cases: uncovered_shown,
...(uncovered_truncated
? { uncovered_truncated: true, uncovered_total: uncovered_test_cases.length }
: {}),
...(uncovered_truncated ? { uncovered_truncated: true, uncovered_total: uncovered_test_cases.length } : {}),
Comment on lines 11 to +17
Available tools:

Project & inspection:
- provar.project.inspect — inspect project folder inventory
- provar.project.validate — validate full project from disk: coverage, quality scores

Page Object:
- provar.pageobject.generate — generate a Java Page Object skeleton
- provar.pageobject.validate — validate Page Object quality and naming

Test Case:
- provar.testcase.generate — generate an XML test case skeleton
- provar.testcase.validate — validate test case XML (validity + best-practices scores)

Test Suite / Plan:
- provar.testsuite.validate — validate test suite hierarchy
- provar.testplan.validate — validate test plan metadata completeness
- provar.testplan.create-suite — create a test suite under a plan
- provar.testplan.add-instance — add a test instance to a plan
- provar.testplan.remove-instance — remove a test instance from a plan

Properties files:
- provar.properties.read — read a Provar properties file
- provar.properties.set — set a key in a Provar properties file
- provar.properties.validate — validate a properties file structure
- provar.properties.generate — generate a properties file skeleton

Quality Hub (sf provar quality-hub wrappers):
- provar.qualityhub.connect — connect to a Quality Hub org
- provar.qualityhub.display — display connected org info
- provar.qualityhub.testrun — trigger a Quality Hub test run
- provar.qualityhub.testrun.report — poll test run status
- provar.qualityhub.testrun.abort — abort a running test run
- provar.qualityhub.testcase.retrieve — retrieve test case results
- provar.qualityhub.defect.create — create defects for failed test executions

Automation (sf provar automation wrappers):
- provar.automation.setup — set up the Provar Automation runtime
- provar.automation.metadata.download — download Salesforce metadata
- provar.automation.compile — compile Provar test assets
- provar.automation.testrun — run Provar tests
- provar.automation.config.load — load a Provar configuration

ANT build:
- provar.ant.generate — generate an ANT build.xml
- provar.ant.validate — validate an ANT build.xml

Test result analysis:
- provar.testrun.rca — root cause analysis on a test result
- provar.testrun.report.locate — locate a test result report
Project & inspection:

- provar_project_inspect — inspect project folder inventory
- provar_project_validate — validate full project from disk: coverage, quality scores
- provar_connection_list — list connections and named environments from the project
Comment on lines +363 to +376
| `provardx_ping` | Sanity check — verifies the server is running |
| `provar_project_inspect` | Inventory project artefacts and surface coverage gaps |
| `provar_project_validate` | Full project quality validation from disk |
| `provar_pageobject_generate` | Generate a Java Page Object skeleton |
| `provar_pageobject_validate` | Validate Page Object quality (30+ rules) |
| `provar_testcase_generate` | Generate an XML test case skeleton |
| `provar_testcase_validate` | Validate test case XML (schema + best-practices scores) |
| `provar_testsuite_validate` | Validate a test suite hierarchy |
| `provar_testplan_validate` | Validate a test plan with metadata completeness checks |
| `provar_testplan_add-instance` | Wire a test case into a plan suite |
| `provar_testplan_create-suite` | Create a new test suite inside a plan |
| `provar_testplan_remove-instance` | Remove a test instance from a plan suite |
| `provar_properties_generate` | Generate a `provardx-properties.json` from the standard template |
| `provar_properties_read` | Read and parse a `provardx-properties.json` |
Comment thread docs/university-of-provar-mcp-course.md Outdated
Comment on lines +585 to +597
| Run configuration | `provar_properties_generate`, `provar_properties_set`, `provar_automation_config_load` |
| Test execution | `provar_automation_testrun`, `provar_qualityhub_testrun`, `provar_testrun_report_locate` |
| Failure analysis | `provar_testrun_rca`, `provar_qualityhub_defect_create` |
| Plan management | `provar_testplan_add-instance`, `provar_testplan_create-suite`, `provar_testplan_remove-instance` |
Comment thread src/services/projectValidation.ts Outdated
Comment on lines +414 to +417
for (const entry of entries) {
if (!entry.isDirectory() || entry.name.startsWith('.') || entry.name === 'node_modules') continue;
const planPath = path.join(plansDir, entry.name);
plans.push(readPlanDirectory(planPath, entry.name, projectPath, coveredPaths, idMap));
plans.push(readPlanDirectory(planPath, entry.name, projectPath, coveredPaths, idMap, planIntegrityWarnings));
mrdailey99 and others added 2 commits May 5, 2026 15:01
…egisterTool() with human-readable titles

RCA: server.tool() is deprecated in MCP SDK v1.8+; tools lacked human-readable labels in the Claude Code /mcp picker, displaying raw underscore names instead of descriptive titles

Fix: migrated all 41 tool registrations to server.registerTool(name, {title, description, inputSchema}, handler) with approved title strings; added registerTool() method to all 17 MockMcpServer test classes and the CapturingServer in testCaseValidate tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…develop merge conflicts

RCA: Out-of-bounds .testinstance paths could bypass coverage via idMap; suites without .planitem were still scored; slim response omitted plan_integrity_warnings; test files referenced old dot-notation tool name.

Fix: Null testCaseId alongside testCasePath for OOB instances; skip suites and plans missing .planitem from hierarchy; expose plan_integrity_warnings in slim response; update 4 test calls provar.project.validate → provar_project_validate; fix testCaseGenerate to use literal id="1"; add missing tools (provar_connection_list, provar_testcase_step_edit, provar_testplan_create, provar_qualityhub_examples_retrieve, NitroX family) to public docs and course summary; resolve merge conflicts across 11 files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mrdailey99 mrdailey99 merged commit f7296bf into develop May 5, 2026
2 checks passed
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