override fun handle()

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 = "]"))
    }