Tavily Web Search MCP Server
Enables building LangGraph applications that can interact with the MCP server for web search capabilities
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., "@Tavily Web Search MCP Server find recent developments in quantum computing"
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: Tavily 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/AIE8-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!
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!
Available Tools
3 toolsask_specialized_claudeA
Call a specialized Claude model for targeted reasoning tasks.
This is "meta-AI" - Claude in Cursor calling another Claude instance with specialized system prompts for specific tasks. Each task_type activates a different Claude persona optimized for that use case.
Args: prompt: User input for Claude to process task_type: Specialization mode, one of: - code_review: Security and quality code analysis - summarize: Concise text summarization - explain: Educational explanations (ELI5 style) - creative: Creative writing and ideation - general: General-purpose assistance max_tokens: Response length cap (default 1024, max 4096)
Returns: A formatted string response from the specialized Claude instance
Examples: >>> ask_specialized_claude("Explain quantum computing", "explain") >>> ask_specialized_claude("Review this code: def foo()...", "code_review") >>> ask_specialized_claude("Summarize this article...", "summarize")
Raises: ValueError: If task_type is not recognized Exception: If API call fails (network, auth, rate limit, etc.)
Inputs: prompt (required), task_type, max_tokens. Returns: result
roll_diceA
Roll dice with D&D-style notation (e.g., 2d20k1).
Args: notation: Dice notation (e.g., "2d20k1" = roll 2d20, keep highest 1) num_rolls: Number of times to roll (default 1)
Returns: Formatted dice roll results
Inputs: notation (required), num_rolls. Returns: result
web_searchC
Search the web for information using Tavily API.
Args: query: Search query string
Returns: Search results context from Tavily
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 3 tools
The three tools have completely distinct purposes with no overlap: ask_specialized_claude handles AI reasoning tasks, roll_dice performs dice rolling, and web_search conducts web searches. Each tool targets a different domain (AI assistance, gaming utilities, and information retrieval), making them easily distinguishable.
The naming conventions are inconsistent across tools: ask_specialized_claude uses a verb_object pattern, roll_dice uses a verb_noun pattern, and web_search uses a noun_verb pattern. There's no unified naming scheme, and the patterns vary significantly between tools.
With only 3 tools, the set feels thin and poorly scoped for a 'Tavily Web Search MCP Server' as named. The inclusion of dice rolling and AI calling alongside web search suggests a mismatched collection rather than a coherent server focused on web search functionality.
For a web search server, having just one search tool (web_search) is insufficient. Missing are tools for advanced search parameters, result filtering, search history, or domain-specific searches. The other two tools (AI calling and dice rolling) don't contribute to web search completeness, creating a fragmented surface.
Maintenance
Related MCP Connectors
Web search and clean-text fetch MCP server (Tavily-powered, SSRF-guarded).
Serper MCP — wraps the Serper Google Search API (serper.dev)
Web search API and MCP server for developers building AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)3MIT
- FlicenseCqualityDmaintenanceEnables web search capabilities through the Tavily API, allowing users to search the internet for information using natural language queries. Demonstrates MCP server implementation with external API integration.3-
- FlicenseAqualityDmaintenanceEnables web search capabilities through the Tavily API and serves as a demonstration platform for building custom MCP tools. Designed for educational purposes to showcase MCP server development and LangGraph integration.6-
- FlicenseCqualityDmaintenanceEnables web search capabilities through the Tavily API, allowing users to search the internet for information using natural language queries. Built as a demonstration MCP server running in stdio transport mode.3-