Show HN: I wrote the code and let an LLM review it A developer learned MCP (Model Context Protocol) architecture by hand-writing an MCP server that downloads YouTube video transcripts, using Claude Opus 5 only to prepare the project plan, review code, answer questions, and track progress while writing no code itself. The developer cited the Recurse Center's position on AI in learning, which states "You can no sooner learn a hard skill like programming by passively consuming LLM output than you can by merely listening to a teacher talk," and argued that slowing down while coding builds deeper understanding. The project used the Python package youtube-transcript-api and was designed to run locally as a Docker container or daemon, configurable with any LLM rather than only Claude. I wrote the code and let an LLM review it I learned the fundamentals of MCP architecture with an LLM. Instead of passive reading, I implemented a pet project in which the LLM was responsible for preparing a project plan, reviewing my code, answering my questions, tracking project progress but not writing a single line of code. In this post, I will describe how I leveraged an LLM for this exercise. Why should I still write code by hand? Learning can’t be poured into my head. I understand better when I do things by hand. During my undergraduate studies, I soon realized that reading computer science theory or a concept of a programming language from a book did not help much, but I was getting a better understanding when I was implementing it. Rather than considering programming as a subject, I was pushing hard to implement the exercises. Now vibe coding is popular tech slang, but in my time “Get your hands dirty with code” was a popular phrase. The Recurse Center formerly Hacker School has always championed learning by building. In a recent analysis of AI’s role in learning programming, they highlighted the danger of letting LLMs do things for you: “You can no sooner learn a hard skill like programming by passively consuming LLM output than you can by merely listening to a teacher talk. As Holt put it: ‘We learn to do something by doing it. There is no other way.’” — Recurse Center, Developing our position on AI https://www.recurse.com/blog/191-developing-our-position-on-ai I am not against using LLMs for generating code. I should leverage LLMs to ship fast but when it comes to learning, slow and steady wins the race. When I write code without using an LLM, I slow down which gives time to my brain to digest things better. I can take a pause to think, question or retrospect and then come back. Slowing down helps me to form a deeper understanding. I can identify flaws in my assumptions and discover underlying truths. I am not the only one who is insisting on slowing down while learning. Please read Harvard’s No Need for Speed https://www.gse.harvard.edu/ideas/ed-magazine/19/08/no-need-speed and Slow down You learn too fast https://schoolofthought.substack.com/p/slow-down-you-learn-too-fast . Creating a learning plan For the first time, I had a learning plan which was divided into small actionable steps. Each step had an estimated time to complete. Additionally, my learning plan also had stretch goals. Each step was isolated, and it also had an expected quantifiable outcome. All steps were sequentially arranged as if milestones of a long term project. Prompt — sent to Claude Opus 5 max effort Role: You are a principle software engineer at Amazon. You are having 10+ years of experience. Background: You are my mentor. I am your mentee. You are guiding me on my next project. Ask: I want to write an MCP server which will be responsible for downloading transcript of a youtube video. I will connect this mcp server with Claude and I will share a link of a youtube video and tell Claude to give me summary of the video. Claude should invoke my MCP server to fetch transcript of the video and perform analysis. The mcp server should be independent of Claude. It should be configurable with any other LLM. The mcm server will run locally on my workstation. As a docker container service or demon etc. I know Java and Python. We can decide any language to implement this. I have found this https://github.com/jdepoix/youtube-transcript-api package which helps me to download the transcript via api and it is written in Python. Rules: Understand the requirements. Ask if there are any followup questions until all answers to complete this task is received. You are not responsible for writing this task. You are responsible for preparing a plan to achieve this in step by step manner. I will implement this to practice and sharpen my programming skills. You will act as instructor or tutor. You will verify my solutions. Include tentative time it can take for each step execution and also include over how much time would it would take to complete. Each step should have its reference like blog post or any reference material, I will consume them, and then I will write code accordingly. Follow-up questions 1. Which language do you want to implement the server in? Python Recommended 2. How should Claude and other LLMs connect to the server? Streamable HTTP Recommended 3. How familiar are you with the MCP protocol itself? New to MCP 4. Beyond raw transcript text, which capabilities should the plan include? Metadata