Skip to main content
Glama
nilay320

Tavily Web Search MCP Server

by nilay320
README.md
<p align = "center" draggable=”false” ><img src="https://github.com/AI-Maker-Space/LLM-Dev-101/assets/37101144/d1343317-fa2f-41e1-8af1-1dbb18399719" 
     width="200px"
     height="auto"/>
</p>

## <h1 align="center" id="heading">AI Makerspace: MCP Event</h1>

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:

```bash
git clone https://github.com/AI-Maker-Space/MCP-Session-Code.git
```

After that, you can follow from Step 2. below!

## Installation

1. **Clone the repository**:
   ```bash
   git clone <repository-url>
   cd <repository-directory>
   ```

2. **Configure environment variables**:
Copy the `.env.sample` to `.env` and add your Tavily API key:
   ```
   TAVILY_API_KEY=your_api_key_here
   ```

3. 🏗️ **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.

## License

This project is licensed under the MIT License. See the LICENSE file for more details.

## Contributing

Contributions are welcome! Please open an issue or submit a pull request for any changes.

TDQS

B3.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool serves a completely distinct purpose with no overlap: QR code generation, dice rolling, scientific calculation, and web search. An agent can easily differentiate between these unrelated functionalities, eliminating any risk of misselection.

Naming Consistency4/5

Three tools follow a consistent verb_noun pattern (generate_qr_code, roll_dice, web_search), but 'scientific_calculator' deviates as a noun_noun compound. This minor inconsistency slightly reduces predictability, though the names remain clear and readable.

Tool Count3/5

With only 4 tools, the set feels thin for a server named 'Tavily Web Search MCP Server', as web search is just one component among unrelated utilities. The count is borderline—too few to fully cover a coherent domain, suggesting a miscellaneous toolkit rather than a focused service.

Completeness2/5

For a web search server, the toolset is severely incomplete, lacking essential operations like filtering results, pagination, or retrieving specific content. The inclusion of unrelated tools (QR code, dice, calculator) further dilutes the domain, creating significant gaps that will hinder agent workflows focused on search.

Maintenance

ActivityInactive
ResponsivenessNo issues