<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>caffeinate</title><description>the blog and website of Nate Barbettini</description><link>https://caffeinate.blog/</link><item><title>Model Context Protocol in plain English</title><link>https://caffeinate.blog/post/mcp-in-plain-english/</link><guid isPermaLink="true">https://caffeinate.blog/post/mcp-in-plain-english/</guid><description>How is MCP different than any other API? Why do we need a new protocol for agent communication in the first place?</description><pubDate>Wed, 09 Sep 2026 15:55:00 GMT</pubDate></item><item><title>MCP Debugger is now an MCP server</title><link>https://caffeinate.blog/post/mcp-debugger-july-2026-update/</link><guid isPermaLink="true">https://caffeinate.blog/post/mcp-debugger-july-2026-update/</guid><description>Yo dawg, I heard you like MCP...</description><pubDate>Tue, 28 Jul 2026 15:55:00 GMT</pubDate></item><item><title>Two million views</title><link>https://caffeinate.blog/post/two-million-views/</link><guid isPermaLink="true">https://caffeinate.blog/post/two-million-views/</guid><description>My talk &quot;OAuth 2.0 and OpenID Connect in Plain English&quot; recently crossed two million views on YouTube.</description><pubDate>Wed, 20 May 2026 20:00:00 GMT</pubDate></item><item><title>Introducing the MCP Debugger</title><link>https://caffeinate.blog/post/introducing-mcp-debugger/</link><guid isPermaLink="true">https://caffeinate.blog/post/introducing-mcp-debugger/</guid><description>A free tool to test MCP servers the way an agent experiences them.</description><pubDate>Mon, 16 Mar 2026 13:55:31 GMT</pubDate></item><item><title>The Little ASP.NET Core Book, revised</title><link>https://caffeinate.blog/post/little-aspnetcore-book-revised/</link><guid isPermaLink="true">https://caffeinate.blog/post/little-aspnetcore-book-revised/</guid><description>An updated release of my free ebook is now available!</description><pubDate>Sun, 06 May 2018 22:37:38 GMT</pubDate></item><item><title>Introducing the OpenID Connect debugger</title><link>https://caffeinate.blog/post/introducing-openid-connect-debugger/</link><guid isPermaLink="true">https://caffeinate.blog/post/introducing-openid-connect-debugger/</guid><description>A tool to set up and troubleshoot OAuth 2.0 and OpenID Connect flows.</description><pubDate>Tue, 30 Jan 2018 15:55:31 GMT</pubDate></item><item><title>A little book update</title><link>https://caffeinate.blog/post/a-little-book-update/</link><guid isPermaLink="true">https://caffeinate.blog/post/a-little-book-update/</guid><description>An update on the Little ASP.NET Core Book</description><pubDate>Mon, 20 Nov 2017 15:15:46 GMT</pubDate></item><item><title>Introducing the Little ASP.NET Core Book</title><link>https://caffeinate.blog/post/introducing-little-aspnetcore-book/</link><guid isPermaLink="true">https://caffeinate.blog/post/introducing-little-aspnetcore-book/</guid><description>Learn ASP.NET Core 2.0 with my free book</description><pubDate>Tue, 19 Sep 2017 14:05:38 GMT</pubDate></item><item><title>Set up the ultimate Windows 10 console</title><link>https://caffeinate.blog/post/set-up-ultimate-windows-10-console/</link><guid isPermaLink="true">https://caffeinate.blog/post/set-up-ultimate-windows-10-console/</guid><description>A guide to setting up PowerShell, ConEmu,Chocolatey, Git for Windows, and posh-git on Windows 10</description><pubDate>Thu, 10 Aug 2017 14:32:58 GMT</pubDate></item><item><title>Async/await in a console application</title><link>https://caffeinate.blog/post/how-to-await-console-application/</link><guid isPermaLink="true">https://caffeinate.blog/post/how-to-await-console-application/</guid><description>Using asynchronous methods in a command-line application</description><pubDate>Tue, 08 Aug 2017 14:49:04 GMT</pubDate></item><item><title>Serialize all errors as JSON in ASP.NET Core</title><link>https://caffeinate.blog/post/serialize-errors-as-json-in-aspnetcore/</link><guid isPermaLink="true">https://caffeinate.blog/post/serialize-errors-as-json-in-aspnetcore/</guid><description>Automatically return pretty error responses in an ASP.NET Core API</description><pubDate>Tue, 01 Aug 2017 19:55:32 GMT</pubDate></item><item><title>Modeling beautiful JSON APIs with Ion</title><link>https://caffeinate.blog/post/modeling-json-api-with-ion/</link><guid isPermaLink="true">https://caffeinate.blog/post/modeling-json-api-with-ion/</guid><description>A short introduction to the Ion hypermedia type</description><pubDate>Thu, 27 Jul 2017 14:03:16 GMT</pubDate></item><item><title>What is HATEOAS?</title><link>https://caffeinate.blog/post/what-is-hateoas/</link><guid isPermaLink="true">https://caffeinate.blog/post/what-is-hateoas/</guid><description>Understanding Hypermedia as the Engine of Application State</description><pubDate>Tue, 25 Jul 2017 16:52:10 GMT</pubDate></item><item><title>Close Notepad with Control-W</title><link>https://caffeinate.blog/post/close-notepad-ctrl-w/</link><guid isPermaLink="true">https://caffeinate.blog/post/close-notepad-ctrl-w/</guid><description>How to add a missing keyboard shortcut to Windows</description><pubDate>Sun, 22 May 2016 23:03:11 GMT</pubDate></item><item><title>Asynchronous uppercase at scale</title><link>https://caffeinate.blog/post/async-uppercase-at-scale/</link><guid isPermaLink="true">https://caffeinate.blog/post/async-uppercase-at-scale/</guid><description>HELLO, WORLD?</description><pubDate>Sun, 10 Apr 2016 23:30:57 GMT</pubDate></item></channel></rss>