Can't you just pass your headers as "source files" to clang-tidy? Or create dummy source files that include them if your build system can't do that?
Kind of, if you happen to have the right include paths and compiler flags, which even a compile command database from e.g. CMake doesn't give you (by default)