tavily-anet-mcp
A Rust implementation of the Model Control Protocol (MCP) server that integrates Tavily's powerful search and web content extraction capabilities. This server enables AI agents and LLM systems to perform real-time web searches and extract content from URLs via a standardized JSON-RPC interface, making it ideal for building AI tools.
Documentation
Tavily-Anet-MCP Server
A Rust implementation of the Model Control Protocol (MCP) server that provides Tavily search and content extraction capabilities via a standardized protocol.
This server integrates the powerful Tavily API with the Anet MCP framework, enabling AI agents to perform web searches and extract content from URLs. It is designed for developers building AI agent systems, LLM-based tools, or research automation that requires up-to-date web information.
Features
- ✅ Tavily Search integration with comprehensive parameters
- 📄 Tavily Extract for content retrieval from URLs
- 🔄 NATS transport layer for message passing
- 🛠️ JSON-RPC 2.0 compatible API
- ⚡ Asynchronous request handling with Tokio
- 🔍 Advanced search capabilities including domain filtering, time ranges, and topic selection
Requirements
- Rust 1.70+
- NATS server running locally or accessible via network
- Tavily API Key (get one from Tavily's website)
Installation
Clone the repository and build the server:
git clone https://github.com/yourusername/tavily-anet-mcp.git
cd tavily-anet-mcpAdd your Tavily API key to a `.env` file:
TAVILY_API_KEY=your_api_key_here
NATS_URL=nats://localhost:4222
MCP_SUBJECT=mcp.requestsGetting Started
Running the Server
# Start a NATS server in another terminal or ensure one is already running
# Example:
nats-server
# Run the Tavily MCP server
cargo runTesting the Server
You can test the server using the included test client:
cargo run --example test_clientThis will send various requests to the server (initialize, listTools, search, extract) and print the responses.
Available Tools
1. Tavily Search
A powerful web search tool that provides comprehensive, real-time results using Tavily's AI search engine.
Parameters:
- `query` (required): Search query string
- `search_depth`: "basic" or "advanced" (default: "basic")
- `topic`: "general" or "news" (default: "general")
- `days`: Number of days back for results (for news topic)
- `time_range`: "day", "week", "month", "year"
- `max_results`: 5-20 (default: 10)
- `include_images`: Boolean
- `include_raw_content`: Boolean
- `include_domains`: Array of domains to include
- `exclude_domains`: Array of domains to exclude
Example:
{
"name": "tavily-search",
"arguments": {
"query": "Latest developments in AI",
"max_results": 5,
"topic": "news",
"days": 7
}
}2. Tavily Extract
A tool for extracting raw content from web pages.
Parameters:
- `urls` (required): Array of URLs to extract content from
- `extract_depth`: "basic" or "advanced" (default: "basic")
- `include_images`: Boolean (default: false)
Example:
{
"name": "tavily-extract",
"arguments": {
"urls": ["https://www.rust-lang.org/"],
"extract_depth": "advanced",
"include_images": true
}
}Architecture
The server follows a modular design:
- tools – Tavily Search and Extract implementations
- models – Tavily API response structures
- utils – Formatting and helper functions
- transport – NATS message transport layer
Development
Adding New Features
To extend the server with additional Tavily capabilities:
1. Define response structures in `src/models/tavily.rs`
2. Implement the tool in `src/tools/` following the Tool trait
3. Add formatting functions in `src/utils/formatter.rs`
4. Register the tool in `src/main.rs`
Troubleshooting
- Ensure your Tavily API key is valid and correctly set in the environment variables
- Check that the NATS server is running and accessible
- Verify the request format matches the expected input schema for each tool
License
MIT License
Acknowledgements
This project is built on top of the Anet MCP Server framework and integrates with the Tavily API.
Frequently asked questions
What is tavily-anet-mcp?
tavily-anet-mcp is A Rust implementation of the Model Control Protocol (MCP) server that integrates Tavily's powerful search and web content extraction capabilities. This server enables AI agents and LLM systems to perform real-time web searches and extract content from URLs via a standardized JSON-RPC interface, making it ideal for building AI tools.
How do I install tavily-anet-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is tavily-anet-mcp open source?
Yes — it is hosted on GitHub at https://github.com/marekkucak/tavily-anet-mcp.
Related MCP tools
An open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM for the Model Context Protocol. Enhance AI
The official Rust SDK for the Model Context Protocol Trusted by 2500+ developers. Trusted by 2500+ developers. Trusted by 2500+ developers.
🌍 Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage and operate Terraform environments.
Search infrastructure for AI
🙌 OpenHands: Code Less, Make More for the Model Context Protocol. Enhance AI assistants with powerful integrations. Python-based implementation.
The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP