A BitTorrent client
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
Build a Model Context Protocol server from scratch with JSON-RPC, tools, and resources.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
MCP lets applications and agents discover capabilities through a common protocol. In this project you will implement the server rather than integrate an SDK.
You will process one JSON message per stdin line and emit compact JSON responses on stdout. You will progress from the handshake to tools, resources, and reproducible protocol errors.
5 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.
Establish NDJSON transport, JSON-RPC, and the initial MCP negotiation.
Publish tools and resources a client can discover and use.
Complete the server with validation, notifications, and standard errors.
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
Build and parse UDP packets bit by bit. Resolve names by walking the hierarchy from the root servers.
Go · Rust · Python
From raw bytes to a 200 response. Parse requests, manage connections and serve concurrent traffic.
Go · Python · C · Rust