There already exists i2c-send-byte and i2c-request (see i2c-request-bytes-6 & duplicate for i2c-request-bytes-1). The only thing left is to convert your bits to byte for write & byte to bits for read.
To convert bits to byte, you can shift-left (maybe you need shift-right, but I think left) B7, add it to B6, shift the output again & add to B5, etc. until you add B0. Feed the last add to your output byte pin.
To convert byte to bits, feed byte to 8 bitwise-and nodes, each with the 2nd number being just the bit you want (1, 2, 4, 8, 16, 32, 64, 128 for B0 - B7) & feed each bitwise-and to the appropriate output pin.