Is VPN a layer 3 concept? says "VPN is not a protocol".
Is VPN an application instead?
Why is VPN not a protocol?
How can I tell if something is a protocol or not?
Network Engineering Stack Exchange is a question and answer site for network engineers. It only takes a minute to sign up.Sign up to join this community
A protocol is a set of rules for how to accomplish something, and network protocols are sets of rules for how to communicate on a network.
VPN is a concept, and a VPN uses protocols to accomplish the concept, but VPN itself is not a protocol. For example, a VPN could could use SSH (a protocol), that uses TCP (a protocol), that uses IPv4 (a protocol), etc. but the VPN concept is not a protocol.
Think about it this way, there are many kinds of VPNs and tunnels, and each uses one or more specific protocols to accomplish the VPN, but the VPNs themselves are not protocols.
As an alternative to the already excellent answer:
You can distinguish protocols from higher level concepts with the following heuristic:
Consider "file transfer". It's a purpose: getting files from host 1 to host 2, and there are a great number of programs, using a great number of protocols, to achieve this. (List at Wikipedia.)
Another question to distinguish protocols from purposes: "Where is the definition so I can start coding?" If the answer is "Such and such document", it's a protocol.
Consider "FTP", "kermit", and "rsync": all are for the purpose of getting files from A to B, but they are protocols, defined respectively by the rules in RFC 959, da Cruz's BYTE articles and subsequent book (see refs at Wikipedia), and Tridgell's PhD thesis. They are designed to cover different circumstances and deal with different problems, but what's common about them are their purposes.
Your particular question about VPNs is only trickier than file transfer because VPNs are normally used underneath end-user-applications. They are defined by their purpose: "provide the private network functionality of dedicated links in a virtual way". There is no document you can read and start coding. But if you want GRE as your protocol, you can read RFC 1701 and start programming.