AI Makerspace: MCP Session Repo for Session 13
This project is a demonstration of the MCP (Model Context Protocol) server, which utilizes the Tavily API for web search capabilities. The server is designed to run in a standard input/output (stdio) transport mode.
Project Overview
The MCP server is set up to handle web search queries using the Tavily API. It is built with the following key components:
- TavilyClient: A client for interacting with the Tavily API to perform web searches.
Prerequisites
- Python 3.13 or higher
- A valid Tavily API key
⚠️NOTE FOR WINDOWS:⚠️
You'll need to install this on the Windows side of your OS.
This will require getting two CLI tool for Powershell, which you can do as follows:
winget install astral-sh.uvwinget install --id Git.Git -e --source winget
After you have those CLI tools, please open Cursor into Windows.
Then, you can clone the repository using the following command in your Cursor terminal:
git clone https://AI-Maker-Space/AIE8-MCP-Session.git
After that, you can follow from Step 2. below!
Installation
-
Clone the repository:
git clone <repository-url> cd <repository-directory> -
Configure environment variables: Create a
.envfile in the project root and add your API keys:TAVILY_API_KEY=your_api_key_here COINGECKO_API_KEY=your_coingecko_api_key_here # Optional - free tier works without key but has rate limitsNote: CoinGecko API can work without an API key, but using one provides higher rate limits (10-50 calls/minute with free tier).
-
🏗️ Add a new tool to your MCP Server 🏗️
Create a new tool in the server.py file, that's it!
Running the MCP Server
To start the MCP server, you will need to add the following to your MCP Profile in Cursor:
NOTE: To get to your MCP config. you can use the Command Pallete (CMD/CTRL+SHIFT+P) and select "View: Open MCP Settings" and replace the contents with the JSON blob below.
{
"mcpServers": {
"mcp-server": {
"command" : "uv",
"args" : ["--directory", "/PATH/TO/REPOSITORY", "run", "server.py"]
}
}
}
The server will start and listen for commands via standard input/output.
Usage
The server provides several tools:
web_search: Search the web for information about a given query using Tavily APIroll_dice: Roll dice with standard notation (e.g., "2d20k1" for 2 twenty-sided dice, keep highest 1)get_crypto_price: Get current cryptocurrency price and market data from CoinGecko API (e.g., "bitcoin", "ethereum")
Activities:
There are a few activities for this assignment!
🏗️ Activity #1:
Choose an API that you enjoy using - and build an MCP server for it!
🏗️ Activity #2:
Build a simple LangGraph application that interacts with your MCP Server.
You can find details here!
