<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on Simple Enough Blog</title><link>https://blog.dev.simpleenough.net/tags/python/</link><description>Recent content in Python on Simple Enough Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 10 Jun 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://blog.dev.simpleenough.net/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Tutorial: Building Your First MCP Server in Python</title><link>https://blog.dev.simpleenough.net/blog/mcptuto/</link><pubDate>Wed, 10 Jun 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/blog/mcptuto/</guid><description>&lt;p>In the first article on Model Context Protocol servers, we laid the groundwork: its host / client / server architecture and its three primitives (tools, resources, prompts). Now for the practical part. In this tutorial, we build a small MCP server in Python from end to end, exposing one &lt;strong>tool&lt;/strong> and one &lt;strong>resource&lt;/strong>, then we connect it to a host to watch a model use it.&lt;/p>
&lt;hr>




&lt;h2 id="i-prerequisites-and-installation" class="heading">I. Prerequisites and installation&lt;a href="#i-prerequisites-and-installation" aria-labelledby="i-prerequisites-and-installation">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>You need &lt;strong>Python 3.10 or higher&lt;/strong>. The official SDK also ships a handy command-line utility to test and install a server.&lt;/p></description></item></channel></rss>