91 lines
3.7 KiB
Markdown
91 lines
3.7 KiB
Markdown
---
|
|
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`.
|