feat(sdk): metadata statiques contributes.mcpServers[].tools — #296 (type IdeAPluginMcpToolMetadata {name exact non vide, description optionnelle non vide} exporté public; validation manifest: tools optionnel, noms uniques par serveur — metadata d'affichage pour l'UI d'attribution de capacités, ne remplace ni ne cache MCP tools/list et n'enregistre rien; scripts/check-manifest-tools.mjs + npm run test:manifest intégré à check: optionnel/valide/doublon rejeté; doc manifest.md: exemple unity_get_scene/run_tests + règles; QA verte reconfirmée par Git: npm run check)
This commit is contained in:
@ -268,7 +268,16 @@ in the manifest, and that server advertises its own tools through the MCP
|
||||
"args": [],
|
||||
"cwd": "${pluginRoot}",
|
||||
"transport": "stdio",
|
||||
"autoStart": true
|
||||
"autoStart": true,
|
||||
"tools": [
|
||||
{
|
||||
"name": "unity_get_scene",
|
||||
"description": "Read the active Unity scene."
|
||||
},
|
||||
{
|
||||
"name": "unity_run_tests"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -288,6 +297,11 @@ MCP server contribution rules:
|
||||
- A `command` that becomes absolute after `${pluginRoot}` or `${appDataDir}`
|
||||
substitution is allowed and is passed through as substituted.
|
||||
- `cwd` defaults to `${pluginRoot}` when omitted.
|
||||
- `tools` is optional static display metadata for IdeA's capability-assignment
|
||||
UI. Each entry has an exact non-empty `name` and an optional non-empty
|
||||
`description`; names must be unique within the server.
|
||||
- This metadata does not replace or cache MCP `tools/list`, and declaring a tool
|
||||
here does not register it or prove that the running server exposes it.
|
||||
|
||||
The tools an agent can call are assigned with the triplet
|
||||
`pluginId`/`serverId`/`toolName` in project plugin settings. `toolName` must
|
||||
|
||||
Reference in New Issue
Block a user