Can bedtools work directly on vcf.gz file, or do you have to first convert this into a vcf file?
Yes.

> bedtools will process gzipped BED, GFF, VCF and BEDPE files in the
> same manner as uncompressed files. Gzipped files are auto-detected
> thanks to a helpful contribution from Gordon Assaf.

http://bedtools.readthedocs.io/en/latest/content/overview.html