in src/main/kotlin/org/jetbrains/mcpserverplugin/general/builtinTools.kt [285:307]
override fun handle(project: Project, args: NoArgs): Response {
val actionManager = ActionManager.getInstance() as ActionManagerEx
val dataContext = invokeAndWaitIfNeeded {
DataManager.getInstance().getDataContext()
}
val actionIds = actionManager.getActionIdList("")
val presentationFactory = PresentationFactory()
val visibleActions = invokeAndWaitIfNeeded {
Utils.expandActionGroup(
DefaultActionGroup(
actionIds.mapNotNull { actionManager.getAction(it) }
), presentationFactory, dataContext, "", ActionUiKind.NONE)
}
val availableActions = visibleActions.mapNotNull {
val presentation = presentationFactory.getPresentation(it)
val actionId = actionManager.getId(it)
if (presentation.isEnabledAndVisible && !presentation.text.isNullOrBlank()) {
"""{"id": "$actionId", "text": "${presentation.text.replace("\"", "\\\"")}"}"""
} else null
}
return Response(availableActions.joinToString(",\n", prefix = "[", postfix = "]"))
}