surbhimotghare/MCP-Server
If you are the rightful owner of MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This project demonstrates the use of a Model Context Protocol (MCP) server utilizing the Tavily API for web search capabilities.
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.uv
winget 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/AIE7-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: Copy the
.env.sample
to.env
and add your Tavily API key:TAVILY_API_KEY=your_api_key_here
-
๐๏ธ Add a new tool to your MCP Server ๐๏ธ
Create a new tool in the server.py
file, that's it!
โ Answer:
Added Advanced URL Shortener Tool to MCP Server:
- Function: shorten_url(url: str, custom_alias: str = "")
- APIs: Dual service support with automatic fallback
- Primary: TinyURL's free API service
- Fallback: V.gd service for custom aliases
- Features:
- Auto-adds https:// to URLs without protocol
- Custom alias support with unique generation
- Service fallback for optimal reliability
- Comprehensive error handling for all edge cases
- User-friendly response formatting with service information
- Automatic alias uniqueness using timestamp-based generation
- Testing: Comprehensive test suite with
test_final_shortener.py
- Error Handling: Graceful handling of duplicate aliases, invalid URLs, and service failures
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 a web_search
tool that can be used to search the web for information about a given query. This is achieved by calling the web_search
function with the desired query string.
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!
โ Answer: Enhanced URL Shortener MCP with Smart LangGraph Application
You can find details in the URL_SHORTENER_README.md!