in src/main/kotlin/org/jetbrains/mcpserverplugin/general/fileTools.kt [119:142]
override fun handle(project: Project, args: ListFilesInFolderArgs): Response {
val projectDir = project.guessProjectDir()?.toNioPathOrNull()
?: return Response(error = "can't find project dir")
return runReadAction {
try {
val targetDir = projectDir.resolveRel(args.pathInProject)
if (!targetDir.exists()) {
return@runReadAction Response(error = "directory not found")
}
val entries = targetDir.listDirectoryEntries().map { entry ->
val type = if (entry.isDirectory()) "directory" else "file"
val relativePath = projectDir.relativize(entry).toString()
"""{"name": "${entry.name}", "type": "$type", "path": "$relativePath"}"""
}
Response(entries.joinToString(",\n", prefix = "[", postfix = "]"))
} catch (e: Exception) {
Response(error = "Error listing directory: ${e.message}")
}
}
}