Enables AI assistants to perform up-to-date web searches through the Tavily API, providing comprehensive search results with AI-generated summaries.
A Model Context Protocol (MCP) server that provides AI-powered search capabilities using the Tavily API. This server enables AI assistants to perform comprehensive web searches and retrieve relevant, up-to-date information.
git clone https://github.com/it-beard/tavily-server.git cd tavily-mcp-server
npm install
npm run build
This server can be used with any MCP client. Below are configuration instructions for popular clients:
If you're using Cline (the VSCode extension for Claude), create or modify the MCP settings file at:
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
~/.config/Cursor/User/globalStorage/saoudrizwan.claude-dev\settings\cline_mcp_settings.json
Add the following configuration (replace paths and API key with your own):
{ "mcpServers": { "tavily": { "command": "node", "args": ["/path/to/tavily-server/build/index.js"], "env": { "TAVILY_API_KEY": "your-api-key-here" } } } }
If you're using the Claude Desktop app, modify the configuration file at:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
Use the same configuration format as shown above.
For other MCP clients, consult their documentation for the correct configuration file location and format. The server configuration should include:
node
)The server provides a single tool named search
with the following parameters:
query
(string): The search query to executesearch_depth
(string): Either "basic" (faster) or "advanced" (more comprehensive)// Example using the MCP SDK const result = await mcpClient.callTool("tavily", "search", { query: "latest developments in artificial intelligence", search_depth: "basic" });
The server provides both static and dynamic resources for flexible data access:
tavily://last-search/result
: Returns the results of the most recent search query
tavily://search/{query}
: Access search results for any query
tavily://search/artificial%20intelligence
Resources in MCP provide an alternative way to access data compared to tools:
interface SearchResponse { query: string; answer: string; results: Array; response_time: number; }
The server implements comprehensive persistent storage for search results:
data
directorydata/searches.json
contains all historical search resultstavily-server/
├── src/
│ └── index.ts # Main server implementation
├── data/ # Persistent storage directory
│ └── searches.json # Search history and cache storage
├── build/ # Compiled JavaScript files
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
npm run build
: Compile TypeScript and make the output executablenpm run start
: Start the MCP server (after building)npm run dev
: Run the server in development modeThe server provides detailed error messages for common issues:
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!