--- issueRef: "#293" version: 4 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedAt: 1788962603796 --- ## QA - 2026-09-09 - Validation doc-only SDK Périmètre vérifié dans le submodule `sdk/IdeaSDK`, branche `feature/293-mcp-tools-exposure-docs`. Diff relu : modifications limitées à `docs/activation-context.md`, `docs/manifest.md` et `docs/project-plugin-assignments.md`. Commandes exécutées : ```bash git status --short --branch ``` Sortie : ```text ## feature/293-mcp-tools-exposure-docs M docs/activation-context.md M docs/manifest.md M docs/project-plugin-assignments.md ``` ```bash git diff --stat ``` Sortie : ```text docs/activation-context.md | 11 ++++++++ docs/manifest.md | 58 ++++++++++++++++++++++++++++++++++++++ docs/project-plugin-assignments.md | 13 +++++++++ 3 files changed, 82 insertions(+) ``` ```bash npm run check ``` Sortie essentielle : ```text > @idea/plugin-sdk@0.1.0 check > npm run build && npm run typecheck:examples && npm run package:hello-plugin > @idea/plugin-sdk@0.1.0 build > tsc -p tsconfig.json > @idea/plugin-sdk@0.1.0 typecheck:examples > tsc -p examples/hello-plugin/tsconfig.json --noEmit > @idea/plugin-sdk@0.1.0 package:hello-plugin > npm run build && npm run build:hello-plugin && node scripts/package-hello-plugin.mjs > @idea/plugin-sdk@0.1.0 build > tsc -p tsconfig.json > @idea/plugin-sdk@0.1.0 build:hello-plugin > tsc -p examples/hello-plugin/tsconfig.build.json created /home/anthony/Documents/Projects/IdeA/sdk/IdeaSDK/examples/hello-plugin/build/hello-plugin-0.1.0.zip ``` Lecture QA : la documentation clarifie bien que les tools agent MCP viennent de `contributes.mcpServers` via serveurs MCP stdio et `tools/list`, pas d'une API `activate(ctx)` ; elle couvre `ctx.pluginRoot`, `autoStart: true`, le triplet `pluginId`/`serverId`/`toolName`, et la recommandation skill -> MCP tool pour les scripts packagés. Verdict QA : VERT. ## Git - 2026-09-09 - Intégration locale Git a intégré la branche dédiée du submodule SDK : - Submodule `sdk/IdeaSDK`: `develop` pointe sur `68fd612` (`merge(sdk): intègre feature/293-mcp-tools-exposure-docs`). - Commit de feature SDK: `42567a5` (`docs(sdk): contrat d'exposition des tools MCP par les plugins`). - Repo parent IdeA: `develop` pointe sur `1935e98` (`chore(sdk): pointe le submodule sur develop`). Aucune action distante effectuée. État parent restant hors périmètre : fichiers tickets locaux et répertoire `scripts/` déjà visibles/non liés à la doc SDK. ## Réponse contractuelle pour UnityPlugin #11 1. Contrat manifest/runtime : exposer un serveur MCP stdio dans `idea-plugin.json` sous `contributes.mcpServers` avec `id`, `displayName`, `command`, `transport: "stdio"`, idéalement `autoStart: true`; l'agent reçoit les tools via assignation `pluginId`/`serverId`/`toolName` après activation projet et relance agent. 2. Pas de support SDK actuel pour enregistrer des tools MCP directement depuis `activate(ctx)`; seuls les serveurs MCP déclarés/externes sont le contrat agent-callable. 3. `ctx.pluginRoot` est l'API officielle pour résoudre la racine du package installé depuis le runtime. `import.meta.url` peut servir à de la résolution module JS, mais n'est pas le contrat host/plugin. Pour `contributes.mcpServers`, `${pluginRoot}` et `${appDataDir}` sont substitués au démarrage du serveur. 4. Recommandation court terme UnityPlugin : packager un serveur MCP stdio Node/script dans le plugin, le déclarer via `contributes.mcpServers`, assigner les tools aux agents, et modifier les skills pour demander l'appel des tools plutôt que référencer `../../scripts/...` depuis le Markdown. 5. Documentation SDK enrichie dans `manifest.md`, `activation-context.md`, `project-plugin-assignments.md`.