MCP-Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-Server search for latest AI breakthroughs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: Web Search MCP Server
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/AIE7-MCP-Session.gitAfter 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.sampleto.envand 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.pyError 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!
Available Tools
13 toolscheck_url_safetyC
Check if a URL is safe and identify potential security risks
Inputs: url (required). Returns: result
create_url_collectionC
Create a new URL collection for organizing shortened URLs
Inputs: name (required), description. Returns: result
expand_urlC
Expand a shortened URL to see its final destination
Inputs: shortened_url (required). Returns: result
generate_qr_codeC
Generate a QR code for a URL and return it as base64 encoded image
Inputs: url (required), size. Returns: result
get_url_metadataB
Extract metadata from a URL including title, description, and other information
Inputs: url (required). Returns: result
list_collectionsB
List all URL collections
Inputs: no named parameters. Returns: result
list_my_urlsB
List saved URLs with optional filtering by collection or tags
Inputs: collection, tags, limit. Returns: result
roll_diceC
Roll the dice with the given notation
Inputs: notation (required), num_rolls. Returns: result
search_urlsB
Search through saved URLs by title, description, or original URL
Inputs: search_term (required), limit. Returns: result
shorten_urlB
Shorten a URL using multiple services. Supports custom aliases and collections.
Inputs: url (required), custom_alias, collection_name, tags. Returns: result
shorten_url_batchC
Shorten multiple URLs at once. Separate URLs with newlines or commas.
Inputs: urls (required), collection_name, tags. Returns: result
validate_urlB
Validate if a URL is properly formatted and reachable
Inputs: url (required). Returns: result
web_searchC
Search the web for information about the given query
Inputs: query (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 13 tools
Most tools have distinct purposes, but 'check_url_safety' and 'validate_url' overlap in URL checking, and 'roll_dice' is entirely unrelated to URL management, causing confusion.
All tools use a consistent verb_noun pattern in snake_case (e.g., 'shorten_url', 'list_collections'), making the naming predictable and clear.
13 tools is slightly high for a URL management server, especially with the inclusion of an irrelevant dice-rolling tool and a generic web search tool that could be considered out of scope.
The server covers core URL operations like shortening, expanding, and safety checks, but lacks basic CRUD operations such as deleting or updating URLs and collections, leaving notable gaps.
Maintenance
Related MCP Connectors
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Search the web, fetch any URL and map a site as clean, LLM-ready Markdown.
Web search and page reading for AI agents, including JSON APIs, RSS feeds and YouTube.
Web data for agents. Extract web pages, crawl websites, discover URLs, and search the web.
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables web search capabilities through the Tavily API, allowing users to perform web searches and retrieve information from the internet through natural language queries.3-
- FlicenseNot gradedqualityDmaintenanceProvides web search capabilities using the Tavily API, enabling AI models to search the internet and retrieve up-to-date information.-
- AlicenseNot gradedqualityDmaintenanceEnables web search using Bing and DuckDuckGo combined, and fetching readable content from web pages, with no API key required.9 npm2MIT
- AlicenseAqualityDmaintenanceEnables AI agents to perform real-time web searches and extract clean, LLM-readable content from URLs using the Tavily API.2MIT