Model Context Protocol is everywhere these days. Lots of people are installing MCP servers into Claude Desktop, Cursor and Windsurf. This is relatively straightforward to do, but what if you want to implement your own MCP Client? Implementing an MCP client is a lot more challenging and requires understanding some of the lower level details of the protocol. In this video, I go into the specifics of how the "Transport" layer works that connects clients and servers. I implement my own "LocalTransport" in Typescript that allows an MCP Client to embed an MCP server directly without the need for subprocesses or HTTP. Lots of code in this video! 00:00-00:58 Intro 00:58-02:58 MCP Transport overview 02:58 - 05:25 Filesystem MCP Server source code and issues 05:25 - 13:12 First try at LocalTransport 13:12 - 17:38 Fixing up LocalTransport 17:38 - 19:58 InMemoryTransport