launchmcpserver kraever projektstier - setup v17 + Mode B-autoreparation

/mcp viste al som Failed paa to maskiner efter korrekt deployment af
find-altool.ps1. Aarsag fundet via altool --help: signaturen er
launchmcpserver <projects> - projektmapperne er PAAKRAEVEDE argumenter,
og uden dem doer serveren straks. Kun Wareco passede stierne med
(haandlavet), alle andre .mcp.json-entries og selve setup-templaten
kaldte uden. Roegtestet i Jernpladsen: med stier overlever serveren.

- Setup v17, 4b: .mcp.json-templaten inkluderer {APP_FOLDER}-stierne
  med eksplicit advarsel; een linje pr. app-projekt
- Mode B .mcp.json-validering, nyt check 4: manglende projektstier
  mellem launchmcpserver og --transport korrigeres stille (een sti pr.
  app-projekt) + genstartspaamindelse
- find-altool.ps1-templatens eksempel rettet tilsvarende

JP + PrebenZ .mcp.json er rettet direkte paa Michaels maskine;
Conzept faar rettelsen via Mode B efter promote.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Michael Dieringer 2026-07-03 16:46:39 +02:00
parent dcccc2865c
commit 8d2bc11d95
2 changed files with 22 additions and 5 deletions

View file

@ -1,7 +1,7 @@
--- ---
kind: action-skill kind: action-skill
id: curabis-standard-setup id: curabis-standard-setup
version: 16 version: 17
title: CURABIS Standard — Project Setup title: CURABIS Standard — Project Setup
description: > description: >
Configures a new or existing repository to the CURABIS Standard development Configures a new or existing repository to the CURABIS Standard development
@ -356,7 +356,10 @@ MCP Server" referenced a command that does not exist).
1. If `.vscode/find-altool.ps1` is missing: fetch 1. If `.vscode/find-altool.ps1` is missing: fetch
`{BASE}/templates/find-altool.ps1` AS RAW BYTES → `.vscode/find-altool.ps1` `{BASE}/templates/find-altool.ps1` AS RAW BYTES → `.vscode/find-altool.ps1`
(create `.vscode/` if needed) and stage it for commit. (create `.vscode/` if needed) and stage it for commit.
2. Write `.mcp.json` — ALWAYS with both entries: 2. Write `.mcp.json` — ALWAYS with both entries. **`launchmcpserver` REQUIRES
the project folders as arguments** (`altool launchmcpserver <projects>`);
without them the server exits immediately and `/mcp` shows `al` as Failed.
Substitute the actual app folders from Step 2:
```json ```json
{ {
@ -367,7 +370,10 @@ MCP Server" referenced a command that does not exist).
"args": [ "args": [
"-ExecutionPolicy", "Bypass", "-ExecutionPolicy", "Bypass",
"-File", "${CLAUDE_PROJECT_DIR:-.}\\.vscode\\find-altool.ps1", "-File", "${CLAUDE_PROJECT_DIR:-.}\\.vscode\\find-altool.ps1",
"launchmcpserver", "--transport", "stdio" "launchmcpserver",
"${CLAUDE_PROJECT_DIR:-.}\\.apps\\{APP_FOLDER}",
"${CLAUDE_PROJECT_DIR:-.}\\.apps\\{APP_FOLDER}.Test",
"--transport", "stdio"
] ]
}, },
"businesscentral": { "businesscentral": {
@ -378,6 +384,9 @@ MCP Server" referenced a command that does not exist).
} }
``` ```
(One `${CLAUDE_PROJECT_DIR:-.}\...`-line per app project — a repo with only a
main app has one; main + test has two.)
Use Claude Code's built-in environment-variable expansion — `${CLAUDE_PROJECT_DIR:-.}` Use Claude Code's built-in environment-variable expansion — `${CLAUDE_PROJECT_DIR:-.}`
and `${USERPROFILE}` — instead of substituting literal detected paths. `.mcp.json` is and `${USERPROFILE}` — instead of substituting literal detected paths. `.mcp.json` is
git-committed and shared; a path baked in for one developer's machine or username git-committed and shared; a path baked in for one developer's machine or username
@ -617,6 +626,13 @@ literal username or drive path:
2. Check the `-File` value is `${CLAUDE_PROJECT_DIR:-.}\.vscode\find-altool.ps1` 2. Check the `-File` value is `${CLAUDE_PROJECT_DIR:-.}\.vscode\find-altool.ps1`
3. If it is a literal absolute path (e.g. `C:\Curabis\ProjectX\.vscode\find-altool.ps1` 3. If it is a literal absolute path (e.g. `C:\Curabis\ProjectX\.vscode\find-altool.ps1`
or any drive-letter path): **correct it silently** to use `${CLAUDE_PROJECT_DIR:-.}` or any drive-letter path): **correct it silently** to use `${CLAUDE_PROJECT_DIR:-.}`
4. Check that at least one project path stands between `launchmcpserver` and
`--transport` — `altool launchmcpserver <projects>` REQUIRES the app
folders, or the server exits immediately (`/mcp` shows `al` as Failed).
If missing: **correct silently** by inserting one
`${CLAUDE_PROJECT_DIR:-.}\<app-folder>`-argument per AL app project in the
repo, then report the correction and remind the developer to restart
Claude Code.
Report any correction made: Report any correction made:
``` ```

View file

@ -3,8 +3,9 @@
# #
# Finder altool.exe dynamisk i den NYESTE installerede AL Language extension, # Finder altool.exe dynamisk i den NYESTE installerede AL Language extension,
# uanset version, og videresender alle argumenter. Bruges af .mcp.json til at # uanset version, og videresender alle argumenter. Bruges af .mcp.json til at
# starte AL MCP-serveren: # starte AL MCP-serveren - BEMÆRK: launchmcpserver KRÆVER projektstierne som
# powershell -ExecutionPolicy Bypass -File .vscode/find-altool.ps1 launchmcpserver --transport stdio # argumenter, ellers dør serveren straks:
# powershell -ExecutionPolicy Bypass -File .vscode/find-altool.ps1 launchmcpserver .apps/MinApp .apps/MinApp.Test --transport stdio
$ext = Get-ChildItem "$env:USERPROFILE\.vscode\extensions" -Filter "ms-dynamics-smb.al-*" -Directory | $ext = Get-ChildItem "$env:USERPROFILE\.vscode\extensions" -Filter "ms-dynamics-smb.al-*" -Directory |
Sort-Object { [version]($_.Name -replace '^ms-dynamics-smb\.al-', '' -replace '-.*$', '') } -Descending | Sort-Object { [version]($_.Name -replace '^ms-dynamics-smb\.al-', '' -replace '-.*$', '') } -Descending |