This week's agenda:
Open Source of the Week - the fastMCP project
New learning resources - Data prep for LLM, Introduction to MCP server, RAG crash course, data engineering course
Book of the week - Algorithms for Optimization by Mykel J. Kochenderfer and Tim A. Wheeler
I share daily updates on Substack, Facebook, Telegram, WhatsApp, and Viber.
Are you interested in learning how to set up automation using GitHub Actions? If so, please check out my course on LinkedIn Learning:
Open Source of the Week
With the rapid development and adoption of the Model Context Protocol, it was only a matter of time before supporting tools, particularly for Python, emerged. This week's focus is on a new project - fastMCP.
The fastMCP, as its name implies, enables you to build MCP servers and clients faster to connect and interact with LLM applications.
Project repo: https://github.com/jlowin/fastmcp
The goal of this project is to provide a simplistic and concise Pythonic framework for developers. The following example from the project documentation illustrates the process of setting up a fastMCP server:
from fastmcp import FastMCP
mcp = FastMCP("My MCP Server")
@mcp.tool()
def greet(name: str) -> str:
return f"Hello, {name}!"
The mcp.tool decorator enables us to add tools, in this case, a simple Python function.
And here is how you will set the client to interact with the server:
from fastmcp import Client
client = Client("my_server.py")
async def call_tool(name: str):
async with client:
result = await client.call_tool("greet", {"name": name})
print(result)
asyncio.run(call_tool("Ford"))
More details are available in the project documentation.
License: Apache 2.0
New Learning Resources
Here are some new learning resources that I came across this week.
Data Preparation for LLM
In case you missed it, we had our first guest post this week from
and , focusing on data preparation for LLMs. This in-depth tutorial covers the following topics:Defining data quality standards
Web scraping for data collection
Transforming real-world text into clean and structured data
Data prep tools
Big thanks to Louis and the team!
Data Preparation for LLM: The Key To Better Model Performance
Big thanks to Louis-François Bouchard and the Towards AI team for this guest tutorial!
RAG Crash Course
Microsoft Developers released a crash course that focuses on Retrieval-Augmented Generation (RAG) and advanced retrieval techniques. This six-session course includes hands-on demos, expert-led discussions, and exclusive leadership interviews. This includes topics such as:
Indexing fundamentals
Vector search
Hybrid search
Multimodal retrieval
Optimization strategies
Setting Custom MCP Server with Python
The following tutorial by Tech with Tim provides an introduction to setting up a custom MCP server with Python.
Building Your Own MCP Servers
The following tutorial by Cole Medin provides a step-by-step guide for building an MCP server with Python to connect agents.
Model Context Protocol Explained
The following short video by Codebasics provides a short explanation of the Model Context Protocol (MCP).
Train Your Own LLM
The following tutorial by Imad Saddik and FreeCodeCamp focuses on how to train a language model from start to finish using your own data. This beginner-level course covers the following topics:
Working with text data
Train a tokenizer from scratch using the Byte Pair Encoding (BPE) method
Use the tokenizer to encode text data
Transformer architecture for language models
Create a supervised fine-tuning dataset
Fine-tune the model and build an AI assistant that you can chat with
Data Ingestion for Data Engineering Course
The following course by freeCodeCamp focuses on data ingestion for data engineering with Python. The course by Alexey Grigorev and Adrian Brudaru covers core data engineering topics such as:
Introduction to data ingestion
Working with RestAPI
Loading data with DuckDB
Data processing with dlt
Performance tuning
Deployment and orchestration
Create pipelines with LLMs
Book of the Week
I shared a few months ago, in edition 15, about the Algorithms for Decision Making by Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray, which focuses on using different algorithms to solve and reason problems under uncertainty. I only became aware last week that this book is part of a sequence of three books. The second book in the sequence, Algorithms for Validation by Mykel J. Kochenderfer, Sydney M. Katz, Anthony L. Corso, and Robert J. Moss, was introduced in last week's edition.
In this week's edition, we will focus on the third book in the sequence, Algorithms for Optimization by Mykel J. Kochenderfer and Tim A. Wheeler.
The book offers a practical and engineering-oriented introduction to optimization, emphasizing real-world applications and computational techniques. It equips readers with tools to solve complex optimization problems involving constraints, uncertainty, and multiple objectives, with implementation examples in Julia. This includes the following topics:
Focus on designing systems that optimize specific metrics under constraints.
Covers a wide range of optimization methods: local descent, stochastic techniques, and linear constrained optimization.
Addresses complex scenarios such as multi-objective optimization and optimization under uncertainty.
Includes surrogate modeling and probabilistic approaches for guiding optimization.
Practical emphasis with visual aids, exercises, and Julia-based code examples.
Suitable for advanced undergraduates, graduate students, and professionals across engineering, computer science, and operations research.
The authors are now working on the second edition, and a free preview is available on the book website.
A hard copy is available for purchase (1st edition) on the publisher's website.
Have any questions? Please comment below!
See you next Saturday!
Thanks,
Rami