Provided below is a changelog of the server protocol starting on 2010-08-20. The wiki history feature may also be used to investigate changes.
13w09c: Protocol version is now 60.
13w09b: Protocol version is now 59.
13w06a: Protocol version is now
57 58 (Changed after bug fix, version is still 13w06a).
13w05b: Protocol version is now 57.
13w05a: Protocol version is now 56. New packets for teams.
13w04a: Protocol version is now 55. New packets for scoreboards.
13w03a: Protocol version is now 54.
13w01a: Protocol version is now 52. Added boolean to 0x64 (Open Window) to determine whether or not to use the provided window title.
- 13w06a: Protocol version is now 58.
- 13w05b: Protocol version is now 57.
- 13w05a: Protocol version is now 56. New packets for teams: 0xD1
- 13w04a: Protocol version is now 55. New packets for scoreboards: 0xCE, 0xCF, 0xD0
- 13w03a: Protocol version is now 54.
- 13w02a: Protocol version is now 53. All Minecart entities use object type 10, and send the block within seperately. Minecarts now send their type as object data in 0x17.
- 13w01a: Protocol version is now 52. Added boolean to 0x64 (Open Window) to determine whether or not to use the provided window title.
- Protocol version is now 51
- Changed packet: 0x10 Held Item Change - Packet is now bidirectional
- Changed packet: 0x17 Spawn Object/Vehicle - Added fields Yaw and Pitch
- Changed packet: 0x38 Map Chunk Bulk - Added boolean field
- Removed packet: 0x15 Spawn Dropped Item - Now merged into 0x17 Spawn Object/Vehicle. The Entity Type ID is 0x02. Set the item type by sending 0x28 Entity Metadata with a slot at index 10. Vanilla packet dump
- Protocol version is now 49
- Packet 0x83 has a short (changed from a unsigned byte) header before the byte array
- Item metadata (5) has an NBT field at the end. As usual if the short is < 0, no data is sent
- Protocol version is now 47
- Entity metadata format updated: type 5 (slot type) now terminates after item_id if it's less than zero.
- Changed packet: 0x04 time update - added 'time of day' field
- Changed packet: 0x15 spawn dropped item - updated to use slot format
- Changed packet: 0x3D particle or sound effect - add new boolean field that forces the sound-effect to play from close range
- (sort of) Changed packet: 0x66 click window - "right click?" field changed from bool to byte
- Changed packet: 0xCC client settings - added boolean "show cape?" field.
- Changed packet: 0xFE server list ping - extra field added; response format slightly expanded to include protocol version.
- Protocol version is now 39
- Fishing floats, spawned by a 0x17 packet do now use the extra fields
- All items (except the empty hand) now send enchantment data
- Added packet: 0x37 Block breaking animation
- Added packet: 0x38 Map Chunk Bulk
- Added packet: 0x3E Name Sound Effect
- Added packet: 0xCB Tab-complete
- Added packet: 0xCC Locale and View Distance
- Added packet: 0xCD Client Statuses used for Login Request and Respawn (1 byte payload)
- Added packet: 0xFC Encryption Key Response
- Added packet: 0xFD Encryption Key Request
- Changed packet: 0x01 Login Request
- Changed packet: 0x02 Handshake
- Changed packet: 0x09 Respawn
- Changed packet: 0x0F Player Block Placement
- Changed packet: 0x14 Spawn named entity
- Changed packet: 0x18 Spawn Mob - added velocity
- Changed packet: 0x1D Destroy Entity
- Changed packet: 0x33 Chunk Data - remove Unused int
- Changed packet: 0x35 Block Change
- Changed packet: 0x36 Block Action
- Changed packet: 0xCA Player Abilities
- Removed packet: 0x32 Map Column Allocation
- Protocol version is now 29
- New packet: 0xCA player abilities
- Protocol version is now 28
- New packet: 0x23 entity head look
- New packet: 0x84 update tile entity
- 0x02 handshake when sent C->S now additionally contains the hostname/port the client is connecting to
- 0x01 login request: map seed (long) parameter removed and dimension changed from byte to int
- 0x09 respawn has the same changes (dimension changed from byte to int and seed removed)
- 0x18 mob spawn has a new byte field: head yaw
- 0x33 map chunks packet was completely changed to use the new 16x16x16 chunk format
- 0x34 multi block change has a new format also
- Protocol version is now 23
- New packet: 0xFA Plugin message
- 0x01 login request has a new string field: level-type (DEFAULT or SUPERFLAT)
- 0x09 respawn has the same change
- Packet removed: 0x1B stance update (had been unused for some time)
- Protocol version is not changed
- Client gives invalid server key when authentication hash is 8 bytes and the first byte is > 0x80
- Bow has extra metadata as slot item.
- Beta 1.9 pre6.
- Protocol version is now 22
- NewState: Reason 4 = Enter scrolling text mode after slaying the dragon.
- New entity: EnderCrystal (Spawned using the Add Object/Vehicle (0x17) packet with type 51)
- Beta 1.9 pre5.
- Protocol version is now 21
- Packet 0x6B (Create Inventory) changed: uses Slot datatype.
- Beta 1.9 pre4.
- Protocol version is now 20
- Packet 0x2B (Experience) changed: now (float, short, short)
- New packet 0x6C (Enchant item) added: (byte, byte)
- Flint and steel no longer enchantable (see 1.9pre3 changes). Might be others, too.
- Notchian server now features an RCON server (server class: o.java)
- Notchian server now features "G4S" server 
- Beta 1.9 pre2.
- Protocol version is now 19
- Four packets changed:
- The change affects the "slot" datatype. This type consists of at least a short (item_id). If this id isn't
-1, a byte (count) and a short (uses) follow.
- From 1.9pre2 onward, additional data is sent but only for certain item_ids. This means the protocol is no longer context free. The additional data is at least a short. If this short isn't -1, a byte array follows, containing gzipped NBT data
- The format of the NBT is as follows
COMPOUND LIST: 'ench' SHORT: 'id' SHORT: 'lvl' END END
- So far only this format, with 'id' and 'lvl' set to
1respectively, has been seen.
- Beta 1.9 pre1.
- Protocol version is now 18
- Beta 1.8 release.
- Protocol version is now 17
- Beta 1.8 pre2-release.
- Protocol version is now 16
- Packet 0x01 (Login) changed (added byte, world height now unsigned)
- Packet 0x09 (Respawn) changed (added byte)
- Packet 0x64 (Open Window) changed (Window title changed from string8 to string16)
- New packet 0x1a (Experience Orb) added
- Assumedly 0x17 (Add Object/Vehicle) is no longer used for exp orbs.
- Beta 1.8 pre-release.
- Protocol version is now 15
- Packet 0x00 (Keep Alive) changed (added keep-alive id)
- Packet 0x01 (Login) changed (added server mode, height limit, and an unknown field)
- Packet 0x08 (Health) changed (added food bar and food saturation)
- Packet 0x09 (Respawn) changed (added map seed, server mode, height limit)
- Packet 0x13 (Entity Action) has new values for starting/stopping sprinting.
- Packet 0x46 (New/invalid state) changed (added game mode reason, and a game mode byte)
- New packet 0x29 (Entity Effect) added
- New packet 0x2a (Remove Entity Effect) added
- New packet 0x2b (Experience update) added
- New packet 0x6b (Creative item get) added
- New packet 0xc9 (Player list item) added
- New packet 0xfe (Server list ping) added
- New values for 0x13 (Entity Action): start sprinting, stop sprinting
- New value for 0x17 (Add Object/Vehicle): experience orb
- Beta 1.7 released.
- Protocol version number is now 14
- No new packets
- Packet 0x36 (Block Action) is now used for pistons too.
- Beta 1.6 released.
- Protocol increase by 2: 13
- Packet 0x09 (Respawn) changed (added world byte)
- Packet 0x17 (Add Object) changed.
- Packet 0x3d (Sound effect) added
- Packet 0x83 (Map Data) added
- Beta 1.5 released.
- Some packet info at https://gist.github.com/929803
- Packet 0x01 (Login Request) changed (removed second string)
- Packet 0x66 (Window Click) changed (added bool for shift)
- Added two new packets: 0x47 (Thunderbolt) and 0xC8 (Increment Statistic) (classes eq and nj, respectively)
- Protocol version number is now 11
- All of the strings are now UCS-2, except for Open window (0x64), which is still UTF-8
- Beta 1.4 released.
- New packet 0x46.
- Protocol version number is now 10
- TODO: The protocol itself does not seem to have changed much, but what about possible data values and stuff like that?
- Beta 1.3 released.
- New packets 0x11, 0x1B: Some information at https://gist.github.com/841590
- Protocol number is now 9 (updated)
- Beta 1.2 released.
- More packet changes (pastebin): 0x05, 0x0F, 0x13, 0x15, 0x18, 0x19, 0x28, 0x36, 0x66, 0x67.
- Notch released Beta on time! Amazing! Refactored the page to be slightly smaller and easier to navigate.
- A whole host of packet changes. 0x05, 0x08, 0x10, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, and 0x82. Packets 0x11 and 0x3b removed.
- Protocol version changed to 6
- Packet 0x12 (Animation) got a lot more new values
- Packet 0x26 changed, now indicates entity damage, death and explosion (for creepers, TNT not tested)
- Packet 0x3B now being sent from client
- Packet 0x3C added
- (need info on other changes)
- Protocol version changed to 5
- Packet 0x07 (Use Entity) got a new field (byte)
- Packet 0x08 (Update Health) added
- Packet 0x09 (Respawn) added
- Packet 0x12 (Animation) started getting non-boolean values for the Animation field
- Packet 0x26 (Entity Death) added
- Protocol version changed to 4
- Packet 0x01 (login request) changed
- Packet 0x07 (Use Entity?) added
- Packet 0x1C (Entity Velocity?) added
- Packet 0x27 (Attach Entity?) added
- Protocol version changed to 3
- Packet 0x01 (login request) changed
- Protocol version changed to 2
- Packets 0x05, 0x06, 0x3B added
- Server-side inventory (no verification)
- Vanilla adds experimental monsters (only damaged by fire)
- Protocol version reset from 14 to 1
- Packet 0x04 (time update) added