While chatting with one of my friend, he described me as
"you are top ninja".
I feel it is grammatically incorrect. What is your opinion? Is it correct or wrong. If wrong, how can I correct it ?
OP's figurative ninja (extended from its literal sense to mean anyone exceling at any particular skill) is a bit off-putting when we're dealing with "grammaticality", so let's switch it to a more "standard" noun...
?You are top expert. (where ? indicates "unlikely to be acceptable to many native speakers")
If we also try replacing top with other adjectives which superficially are syntactically similar, we get ...
*You are best expert.
*You are inferior expert. (where * indicates "unlikely to be unacceptable to any native speakers")
But as @tuespetre comments, collocations such as top dog and top dollar are quite well established in informal contexts. And by extension, some native speakers will probably find OP's example "acceptable". But I don't - so as far as I'm concerned, it's not "grammatical" (I'd expect "You are a / the top ninja.").