Build your own MCP server
Build an MCP server from scratch. Implement Model Context Protocol with JSON-RPC, tools and resources to connect AI clients to your programs.
TypeScript · Python · Go
Build an HTTP server from scratch. Parse requests from socket bytes, manage connections and serve concurrent traffic with real HTTP responses.
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.
Project in preparation: we are completing and verifying the implementation path and its tests. The capabilities below describe the project goal; starting the project is not enabled yet.
You use web frameworks every day, but underneath all of them sits the same thing: a TCP socket listening, and a text protocol that fits on one page. This challenge takes the framework out of the way.
You start by opening a socket by hand and finish with a server that parses real requests, serves files, understands headers and handles several clients at once without blocking. You'll test it with curl and with your browser.
10 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Open a socket, accept a connection and return a hand-written 200.
Request line, headers, body, and well-formed error responses.
Path routing, static files, Content-Type and POST handling.
Concurrency, keep-alive and timeouts so it doesn't fall over with several clients.
Build an MCP server from scratch. Implement Model Context Protocol with JSON-RPC, tools and resources to connect AI clients to your programs.
TypeScript · Python · Go
Build a BitTorrent client from scratch. Decode bencode, contact trackers and download a real file through the peer-to-peer protocol.
Go · Python · Java
Build a DNS resolver from scratch. Encode and parse UDP packets, then resolve domain names by walking the hierarchy from root servers.
Go · Rust · Python