The Tavily MCP connector routes your AI agent's tool calls to Tavily's own MCP server through Scalekit. Each user signs in to Tavily once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 5 tools.
- Tools
- 5
- What they doRead · write · destructive
- 5 · 0 · 05 read0 write0 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
What you can do
- Search the web: find current information and return snippets with their source URLs
- Extract page content: pull the content of one or more URLs as markdown or plain text
- Crawl and map sites: crawl a website from a starting URL and map its URL structure
- Research a topic: run multi-source research on a question or topic
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Tavily MCP connection
In AgentKit > Connections, create a Tavily MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Tavily MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'tavilymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Tavily MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'tavilymcp_tavily_crawl',toolInput: { url: 'https://example.com/url' },})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "tavilymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Tavily MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"url":"https://example.com/url"},tool_name="tavilymcp_tavily_crawl",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooltavilymcp_tavily_crawlCrawl a website from a starting URL and extract page content with configurable depth and breadth.Read-onlyTavily Crawl
Crawl a website from a starting URL and extract page content with configurable depth and breadth.
Inputs
urlstringrequired- The root URL to begin the crawl
allow_externalboolean- Whether to return external links in the final responsedefault
true extract_depthstring- Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latencyone of
basicadvanceddefaultbasic formatstring- The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.one of
markdowntextdefaultmarkdown include_faviconboolean- Whether to include the favicon URL for each resultdefault
false instructionsstring- Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return.default
limitinteger- Total number of links the crawler will process before stoppingdefault
50 max_breadthinteger- Max number of links to follow per level of the tree (i.e., per page)default
20 max_depthinteger- Max depth of the crawl. Defines how far from the base URL the crawler can explore.default
1 select_domainsarray- Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\.example\.com$)
select_pathsarray- Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)
tavilymcp_tavily_extractExtract raw content from one or more URLs in markdown or plain text format.Read-onlyTavily Extract
Extract raw content from one or more URLs in markdown or plain text format.
Inputs
urlsarrayrequired- List of URLs to extract content from
extract_depthstring- Use 'advanced' for LinkedIn, protected sites, or tables/embedded contentone of
basicadvanceddefaultbasic formatstring- Output formatone of
markdowntextdefaultmarkdown include_faviconboolean- Include favicon URLsdefault
false include_imagesboolean- Include images from pagesdefault
false querystring- Query to rerank content chunks by relevancedefault
tavilymcp_tavily_mapMap a website's URL structure starting from a base URL.Read-onlyTavily Map
Map a website's URL structure starting from a base URL.
Inputs
urlstringrequired- The root URL to begin the mapping
allow_externalboolean- Whether to return external links in the final responsedefault
true instructionsstring- Natural language instructions for the crawlerdefault
limitinteger- Total number of links the crawler will process before stoppingdefault
50 max_breadthinteger- Max number of links to follow per level of the tree (i.e., per page)default
20 max_depthinteger- Max depth of the mapping. Defines how far from the base URL the crawler can exploredefault
1 select_domainsarray- Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\.example\.com$)
select_pathsarray- Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)
tavilymcp_tavily_researchRun comprehensive multi-source research on a topic or question.Read-onlyTavily Research
Run comprehensive multi-source research on a topic or question.
Inputs
inputstringrequired- A comprehensive description of the research task
modelstring- Defines the degree of depth of the research. 'mini' is good for narrow tasks with few subtopics. 'pro' is good for broad tasks with many subtopicsone of
miniproautodefaultauto
tavilymcp_tavily_searchSearch the web for current information and return snippets with source URLs.Read-onlyTavily Search
Search the web for current information and return snippets with source URLs.
Inputs
querystringrequired- Search query
countrystring- Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.default
end_datestring- Will return all results before the specified end date. Required to be written in the format YYYY-MM-DDdefault
exact_matchstring- Only return results containing the exact phrase(s) in quotes in your query
exclude_domainsarray- List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site
include_domainsarray- A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site
include_faviconboolean- Whether to include the favicon URL for each resultdefault
false include_image_descriptionsboolean- Include a list of query-related images and their descriptions in the responsedefault
false include_imagesboolean- Include a list of query-related images in the responsedefault
false include_raw_contentboolean- Include the cleaned and parsed HTML content of each search resultdefault
false max_resultsinteger- The maximum number of search results to returndefault
5 search_depthstring- The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all elseone of
basicadvancedfastultra-fastdefaultbasic start_datestring- Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.default
time_rangestring- The time range back from the current date to include in the search results
topicstring- Search category. Use 'general' for almost all searches, including current events and requests that combine news with other information. Use 'news' only when the user explicitly asks for news, headlines, or news coverage.one of
generalnewsdefaultgeneral
No tools match.