feat(fiori-mcp): add skill to convert preview and test setup to virtual endpoints#4823
feat(fiori-mcp): add skill to convert preview and test setup to virtual endpoints#4823heimwege wants to merge 1 commit into
Conversation
🦋 Changeset detectedLatest commit: 1cf55b0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
SummaryThe following content is AI-generated and provides a summary of the pull request: feat(fiori-mcp): Add Skill to Convert Preview and Test Setup to Virtual EndpointsNew Feature✨ Introduces a new MCP skill Changes
PR Bot InformationVersion:
|
There was a problem hiding this comment.
The PR adds a well-structured skill document for converting Fiori preview configurations to virtual endpoints. There are a few logic issues to address: the simulation guard is missing from all three manual migration sub-steps (6a, 6b, 6c), which would cause the agent to attempt file writes or read non-existent *_old.html files during dry runs, and the "show before writing" confirmation in step 6a is ordered after the write step rather than before it. One typo ("Aks" → "Ask") was also flagged.
| Read the current `ui5.yaml`, add or update the `flp.init` property, and write it back. | ||
| 5. Show the user what was extracted and what files were created/modified before writing. | ||
|
|
||
| **If no custom modifications are found:** inform the user that the HTML files had no custom code and migration is complete. Aks the user to delete the *_old.html files |
There was a problem hiding this comment.
Typo: "Aks" should be "Ask"
Misspelling in user-facing instruction text.
| **If no custom modifications are found:** inform the user that the HTML files had no custom code and migration is complete. Aks the user to delete the *_old.html files | |
| **If no custom modifications are found:** inform the user that the HTML files had no custom code and migration is complete. Ask the user to delete the *_old.html files |
Double-check suggestion before committing. Edit this comment for amendments.
Please provide feedback on the review comment by checking the appropriate box:
- 🌟 Awesome comment, a human might have missed that.
- ✅ Helpful comment
- 🤷 Neutral
- ❌ This comment is not helpful
| Read the current `ui5.yaml`, add or update the `flp.init` property, and write it back. | ||
| 5. Show the user what was extracted and what files were created/modified before writing. |
There was a problem hiding this comment.
Logic Error: Step 6a instructs to show the user what was extracted "before writing" (step 5), but step 5 comes after step 4 (which already writes ui5.yaml). The instruction to show/confirm before writing is out of order — the agent would have already written ui5.yaml before showing the user.
Consider reordering: show the proposed changes to the user first (step 4 preview), await confirmation, then create the file and update ui5.yaml.
| Read the current `ui5.yaml`, add or update the `flp.init` property, and write it back. | |
| 5. Show the user what was extracted and what files were created/modified before writing. | |
| 5. Show the user what was extracted and what files will be created/modified, and ask for confirmation before writing. | |
| 4. Once confirmed, register the init script in `ui5.yaml` under the `fiori-tools-preview` or `preview-middleware` configuration: | |
| ```yaml | |
| configuration: | |
| flp: | |
| init: /test/flpSandboxInit # no file extension - UI5 module path | |
| ``` | |
| Read the current `ui5.yaml`, add or update the `flp.init` property, and write it back. |
Double-check suggestion before committing. Edit this comment for amendments.
Please provide feedback on the review comment by checking the appropriate box:
- 🌟 Awesome comment, a human might have missed that.
- ✅ Helpful comment
- 🤷 Neutral
- ❌ This comment is not helpful
|
|
||
| **If no custom modifications are found:** inform the user that the HTML files had no custom code and migration is complete. Aks the user to delete the *_old.html files | ||
|
|
||
| #### 6b. Karma migration (only if Karma warning was detected) |
There was a problem hiding this comment.
Logic Error: Step 6b only triggers when the Karma warning is detected in the output, but that warning only appears when --tests=true is passed. However, the --simulate=true dry run does not write files — so if the user ran a simulation first, the Karma config would be updated during simulation but no actual files would have changed. The skill should guard against performing Karma/WebdriverIO config writes when --simulate=true was used.
| #### 6b. Karma migration (only if Karma warning was detected) | |
| #### 6b. Karma migration (only if Karma warning was detected AND `--simulate=false` was used) |
Double-check suggestion before committing. Edit this comment for amendments.
Please provide feedback on the review comment by checking the appropriate box:
- 🌟 Awesome comment, a human might have missed that.
- ✅ Helpful comment
- 🤷 Neutral
- ❌ This comment is not helpful
| 7. Show the diff to the user before writing | ||
| 8. Write the updated Karma config | ||
|
|
||
| #### 6c. WebdriverIO QUnit Service migration (only if WebdriverIO warning was detected) |
There was a problem hiding this comment.
Logic Error: Same simulation guard issue as 6b — WebdriverIO config writes should not happen when --simulate=true was used.
| #### 6c. WebdriverIO QUnit Service migration (only if WebdriverIO warning was detected) | |
| #### 6c. WebdriverIO QUnit Service migration (only if WebdriverIO warning was detected AND `--simulate=false` was used) |
Double-check suggestion before committing. Edit this comment for amendments.
Please provide feedback on the review comment by checking the appropriate box:
- 🌟 Awesome comment, a human might have missed that.
- ✅ Helpful comment
- 🤷 Neutral
- ❌ This comment is not helpful
|
|
||
| ### 6. Handle manual migration steps automatically | ||
|
|
||
| #### 6a. HTML sandbox custom init migration (always check, regardless of --tests flag) |
There was a problem hiding this comment.
Logic Error: The --simulate=true path for step 6a (HTML sandbox custom init migration) has the same problem — renaming to *_old.html is done by the tool only during a real run (--simulate=false). During a dry run, no *_old.html files will be created, so the agent checking for them will find nothing to process. The skill should skip step 6a when --simulate=true was used, or document that the HTML file check is only relevant after a real run.
| #### 6a. HTML sandbox custom init migration (always check, regardless of --tests flag) | |
| #### 6a. HTML sandbox custom init migration (always check after a real run (`--simulate=false`), regardless of --tests flag) |
Double-check suggestion before committing. Edit this comment for amendments.
Please provide feedback on the review comment by checking the appropriate box:
- 🌟 Awesome comment, a human might have missed that.
- ✅ Helpful comment
- 🤷 Neutral
- ❌ This comment is not helpful
|



feat(fiori-mcp): Add Skill to Convert Preview and Test Setup to Virtual Endpoints
New Feature
✨ Introduces a new MCP skill
sap-fiori-convert-preview-configfor the@sap-ux/fiori-mcp-serverpackage. This skill automates the migration of SAP Fiori app preview configurations from local HTML files to virtual endpoints usingnpx @sap-ux/create@latest convert preview-config.Changes
.changeset/shaggy-plums-watch.md: Adds a minor changeset entry for the new skill in@sap-ux/fiori-mcp-server.packages/fiori-mcp-server/skills/sap-fiori-convert-preview-config/SKILL.md: Defines the full skill specification, including:@ui5/cli, missing mockserver middleware) and halts with clear user guidance.--simulate) and test runner conversion (--tests).*_old.htmlfiles for custom<script>logic and extracts it into aflpSandboxInit.js/.tsfile, then registers it inui5.yamlunderflp.init.ui5.configPathandui5.testpageto point to the new virtual endpoint paths when a Karma warning is detected.wdio.conf.js/tsto use virtual endpoint format when a WebdriverIO warning is detected.PR Bot Information
Version:
1.22.5925693de-2b94-4b06-b02f-aea89cb5c145pull_request.openedanthropic--claude-4.6-sonnet