Files
IdeA/.ideai/tickets/300/carnet.md

7.1 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#300 4
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1788984710401

Ticket #300 - Plugins: tools MCP Unity non catalogues malgre skills visibles

Signalement

Dans le projet UnitySoundTool, le plugin Unity est actif et ses skills sont visibles par les agents, mais les tools MCP du plugin ne le sont pas. La surface indique: Aucun tool MCP plugin catalogue.

Cadrage UX

La surface ne doit pas confondre toutes les absences:

  • Plugin sans tool MCP: Aucun tool MCP fourni / Le plugin Unity est actif, mais il ne fournit aucun tool MCP.
  • Tools en erreur: Tools MCP indisponibles + Reessayer + Voir les details.
  • Tools masques par permissions: Tools MCP non autorises + action Configurer les permissions.
  • Catalogue perime/reload requis: Rechargement necessaire + Recharger le plugin.
  • Pendant resolution initiale: Chargement des tools MCP..., pas d'etat vide premature.

Cadrage Architect

Les skills visibles valident seulement contributes.skills + assignation skill. Le message vide vient du panneau MCP quand le catalogue statique plugins.installed[*].contributes.mcpServers[*].tools est vide partout.

Contrat:

  • Les tools MCP plugin se declarent via contributes.mcpServers[].tools[] dans le manifeste, pas via activate(ctx).
  • tools[] est le catalogue statique UI/assignation; l'execution reelle vient du serveur MCP et de tools/list.
  • Ref stable d'assignation: pluginId/serverId/toolName.

Arbitrage correctif:

  1. Si le manifeste Unity installe n'a pas contributes.mcpServers[].tools[]: corriger/reinstaller le plugin Unity, pas IdeA core.
  2. Si la source a tools[] mais l'UI ne les voit pas apres reload: bug IdeA install/reload/registry/DTO frontend.
  3. Si l'UI liste les tools mais l'agent ne les voit pas apres assignation: bug distinct injection/effective catalogue agent-facing ou cache provider/CLI.

Git IdeA

Branche de diagnostic: fix/300-unity-mcp-tools-uncatalogued depuis develop @ 941db62. Aucun correctif IdeA requis.

Diagnostic DevBackend - 2026-09-09

Verdict

Probleme de donnees du plugin Unity, pas bug IdeA install/reload/registry/DTO. Aucun code IdeA modifie.

Preuves

  • SoundTool active com.idea.unity-developer-tools dans .ideai/project-plugins.json; les six skills sont assignes, tandis que les tableaux tools de tous les agents etaient vides.
  • Le registre global IdeA marquait le plugin enabled, sans erreur ni restart requis, et pointait vers la source packagee: /home/anthony/Documents/Projects/UnityPlugin/plugins/unity-developer-tools/build/idea-install/unity-developer-tools.
  • Les manifestes source, package prepare et installe avaient le meme SHA-256 e7410c8ec6c3ceefef4d4ed5ba9cf227f86e5dea272fcbbade48a9c9560d23ab.
  • Dans ces trois manifestes, contributes.mcpServers[0] declarait correctement le serveur unity-developer-tools.tools, mais omettait tools[].
  • Le serveur MCP installe fonctionnait: un appel reel tools/list retournait huit tools: unity_detect_project, unity_audit_project, unity_run_editmode_tests, unity_run_playmode_tests, unity_summarize_tests, unity_benchmark_report, unity_compare_cpu_gpu, unity_verify_architecture.
  • Le panneau frontend derive volontairement son catalogue de installed[*].contributes.mcpServers[*].tools; une liste absente donne donc exactement Aucun tool MCP plugin catalogue.
  • Le domaine et le DTO IdeA conservent fidelement cette liste. Le test existant validates_mcp_server_without_static_tool_metadata_for_compatibility confirme qu'une omission est valide pour compatibilite et produit une liste statique vide.

Validation IdeA

  • cargo test -p application validates_mcp_server_without_static_tool_metadata_for_compatibility: vert, 1 test passe.
  • Aucun test ou correctif supplementaire IdeA n'est justifie: le contrat existant est respecte de bout en bout.

Diagnostic DevFrontend - 2026-09-09

Verdict

Aucun correctif frontend IdeA ne doit etre applique pour le cas UnitySoundTool actuel. Le message est emis parce que le DTO contient effectivement zero declaration statique tools[]; il ne resulte ni d'un filtrage de permissions frontend, ni d'une perte dans l'adapter Tauri.

Chaine et semantique confirmees

  • McpToolPermissionsPanel appelle useProjectPlugins(projectId).
  • Le hook appelle uniquement PluginGateway.listProjectSettings, implemente par plugin_list_project_settings dans l'adapter Tauri.
  • La reponse ProjectPluginSettingsView transporte sans transformation settings et les manifestes valides installed.
  • PluginMcpToolsEditor construit ses lignes exclusivement depuis installed[*].contributes.mcpServers[*].tools[].
  • Le compteur cataloguedCount porte sur tous les plugins installes, pas seulement ceux actifs dans le projet. Le texte Aucun tool MCP plugin catalogue. signifie donc exactement: aucun manifeste installe ne declare de metadata statique de tool, et aucune assignation orpheline n'est presente pour l'agent selectionne.
  • Les skills visibles ne prouvent que la presence de contributes.skills; leur affichage est independant de mcpServers[].tools[].

Correction UnityPlugin - 2026-09-09

Prise en charge par le projet UnityPlugin, ticket miroir local #13, ferme apres QA.

Fichier modifie et committe localement:

  • /home/anthony/Documents/Projects/UnityPlugin/plugins/unity-developer-tools/idea-plugin.json: ajout de contributes.mcpServers[0].tools[] avec les 8 tools statiques.

Tools catalogues:

  • unity_detect_project
  • unity_audit_project
  • unity_run_editmode_tests
  • unity_run_playmode_tests
  • unity_summarize_tests
  • unity_benchmark_report
  • unity_compare_cpu_gpu
  • unity_verify_architecture

Commandes validees depuis plugins/unity-developer-tools:

  • node scripts/validate-manifest.mjs: OK
  • node scripts/test-mcp-server.mjs: OK, 8 tools exposes
  • npm test: OK
  • npm run package:dir: OK

Artefact produit:

  • /home/anthony/Documents/Projects/UnityPlugin/plugins/unity-developer-tools/build/idea-install/unity-developer-tools

Commit UnityPlugin local:

  • c844a45 sur fix/unity-devtools-mcp-tool-catalog
  • Message: fix(plugin): advertise static mcp tool catalog in manifest
  • Aucun push distant. Merge local vers develop differe car la branche est empilee sur fix/unity-devtools-mcp-node-launch.

Application UnitySoundTool - 2026-09-09

Prise en charge par le projet UnitySoundTool, ticket local #25, ferme.

Resultat verifie:

  • Plugin com.idea.unity-developer-tools actif.
  • restartRequired: false.
  • Serveur MCP runtime plugin:com.idea.unity-developer-tools:unity-developer-tools.tools demarre, error: null.
  • Les 8 tools MCP sont catalogues dans SoundTool.
  • Verification directe du wrapper MCP package avec initialize puis tools/list: retourne les 8 tools avec schemas.

Note: l'installation a ete faite depuis une copie confinee sous le project root SoundTool, car IdeA refuse un chemin externe UnityPlugin pour l'installation directe (plugin directory must remain within the requester project root).

Verdict final

Signalement resolu par correction du manifeste UnityPlugin + repackaging + reinstall/reload dans UnitySoundTool. Pas de bug core IdeA a corriger pour ce cas.