Skip to main content
Glama
n24q02m

WET - Web Extended Toolkit

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
API_KEYSNoLLM API keys for SDK mode (format: ENV_VAR:key,...)
CACHE_DIRNoData directory for cache DB, docs DB, downloads (optional)~/.wet-mcp
LOG_LEVELNoLogging levelINFO
WET_CACHENoEnable/disable web cache (optional)true
LLM_MODELSNoLiteLLM model for media analysis (optional)gemini/gemini-3-flash-preview
LLM_API_KEYNoCustom LLM endpoint key (optional)
SEARXNG_URLNoExternal SearXNG URL (optional, when auto disabled)http://localhost:41592
SYNC_FOLDERNoRemote folder namewet-mcp
SYNC_REMOTENorclone remote namegdrive
DOCS_DB_PATHNoDocs database location (optional)~/.wet-mcp/docs.db
DOWNLOAD_DIRNoMedia download directory (optional)~/.wet-mcp/downloads
GITHUB_TOKENNoGitHub personal access token for library discovery (optional, increases rate limit from 60 to 5000 req/hr). Auto-detected from `gh auth token` if GitHub CLI is installed.
LLM_API_BASENoCustom LLM endpoint URL (optional, for SDK mode)
RERANK_MODELNoLiteLLM rerank model (auto: cohere/rerank-multilingual-v3.0 if Cohere key in API_KEYS)
RERANK_TOP_NNoReturn top N results after reranking10
SYNC_ENABLEDNoEnable rclone syncfalse
TOOL_TIMEOUTNoTool execution timeout in seconds, 0=no timeout (optional)120
SYNC_INTERVALNoAuto-sync interval in seconds (0=manual)300
SYNC_PROVIDERNorclone provider type (drive, dropbox, s3, etc.)drive
EMBEDDING_DIMSNoEmbedding dimensions (optional, default auto=768)0
RERANK_API_KEYNoCustom rerank endpoint key (optional)
RERANK_BACKENDNolitellm or local. Auto: Cohere key in API_KEYS -> litellm, else local
RERANK_ENABLEDNoEnable reranking after searchtrue
EMBEDDING_MODELNoLiteLLM embedding model (optional)
RERANK_API_BASENoCustom rerank endpoint URL (optional, for SDK mode)
SEARXNG_TIMEOUTNoSearXNG request timeout in seconds (optional)30
WET_AUTO_SEARXNGNoAuto-start embedded SearXNG subprocesstrue
WET_SEARXNG_PORTNoSearXNG port (optional)41592
EMBEDDING_API_KEYNoCustom embedding endpoint key (optional)
EMBEDDING_BACKENDNolitellm (cloud API) or local (Qwen3). Auto: API_KEYS -> litellm, else local
LITELLM_PROXY_KEYNoLiteLLM Proxy virtual key (e.g. sk-...)
LITELLM_PROXY_URLNoLiteLLM Proxy URL (e.g. http://10.0.0.20:4000). Enables proxy mode
EMBEDDING_API_BASENoCustom embedding endpoint URL (optional, for SDK mode)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
config__open_relayA

Open the relay configuration form for wet-mcp in the user's browser. Returns the relay URL, whether the browser launched, and the current status.

searchA

Find information across web, academic sources, or library docs. Returns search result listings (titles, URLs, snippets) -- NOT full page content. To read full content from a URL, use the extract tool instead.

Actions:

  • search: Web search via SearXNG. Example: search(action="search", query="python async patterns")

  • research: Academic/scientific search (Google Scholar, arXiv, PubMed). Example: search(action="research", query="transformer attention mechanism")

  • docs: Search library documentation with auto-indexing. Example: search(action="docs", query="how to create routes", library="fastapi")

  • docs_resolve: Free-form library name to ranked library_id list. Example: search(action="docs_resolve", query="react")

  • docs_query: Version-aware library docs query honoring project lock + token cap. Example: search(action="docs_query", library="react", version="latest", topic="useState", query="how to set initial state")

  • docs_lock_project: Detect project manifests (pyproject/package.json/go.mod/Cargo.toml) and lock the library set for Cabinets isolation. Example: search(action="docs_lock_project", project_path="/repo/my-app")

  • similar: Find pages similar to a URL (pass URL as query). Example: search(action="similar", query="https://example.com/article")

Key parameters:

  • query (required for all actions): Search terms or URL (for similar)

  • library (required for docs): Library name, e.g. "react", "fastapi"

  • language: Programming language for disambiguation in docs, e.g. "python", "java"

  • expand: Enable LLM query expansion for broader coverage (default: false)

  • enrich: Fetch actual page content for richer snippets (default: false, adds latency)

  • max_results: Number of results (default: 10)

  • time_range: Recency filter -- day, week, month, year

  • include_domains / exclude_domains: Domain filters

Use help tool with tool_name="search" for full parameter documentation.

extractA

Read and return full page content from URLs or local files. Use this when you have a specific URL and need its content. For finding URLs first, use the search tool instead.

Actions:

  • extract: Get clean content from URLs. Example: extract(action="extract", urls=["https://example.com/article"])

  • batch: Batch extract with per-domain rate limiting (max 50 URLs). Example: extract(action="batch", urls=["https://a.com/1", "https://b.com/2"])

  • crawl: Deep crawl following links from root URLs. Example: extract(action="crawl", urls=["https://docs.example.com"], depth=2)

  • map: Discover site URL structure without extracting content. Example: extract(action="map", urls=["https://example.com"])

  • convert: Convert local files (PDF, DOCX, PPTX, XLSX) to Markdown. Example: extract(action="convert", paths=["/home/user/report.pdf"])

  • extract_structured: Extract structured data using JSON Schema + LLM. Example: extract(action="extract_structured", urls=["https://example.com/pricing"], schema={"type": "object", "properties": {"price": {"type": "string"}}})

  • agent: Multi-step research orchestration -- search the web, extract top results, synthesize a cited Markdown answer. Example: extract(action="agent", query="latest pydantic 2 changes", max_urls=5)

  • interact: Drive a page with click/fill/submit via patchright. Example: extract(action="interact", url="https://example.com/login", actions=[{"type": "fill", "selector": "#email", "value": "x@y.com"}, {"type": "submit", "selector": "form"}])

Key parameters:

  • urls (required for extract/batch/crawl/map/extract_structured): List of URLs

  • paths (required for convert): List of local file paths

  • query (required for agent): Research question to answer

  • url (required for interact): Page URL to drive

  • actions (required for interact): List of {type, selector?, description?, value?} ops

  • max_urls (agent): Default 5, hard cap 20

  • synthesis_model (agent): Override LLM model for the synthesis step

  • token_budget (agent): Max prompt tokens (default 10000)

  • session (interact): Persistent session id; reuses browser across calls

  • screenshot (interact): Capture post-interaction screenshot

  • format: Output format -- "markdown" (default), "text", "html"

  • depth: Crawl depth (default: 2, max: 5)

  • max_pages: Max pages for crawl/map (default: 20, max: 100)

  • stealth: Enable anti-bot bypass for protected sites (default: false)

  • schema: JSON Schema dict for extract_structured

Use help tool with tool_name="extract" for full parameter documentation.

mediaA

Discover and download media files (images, videos, audio) from web pages.

Actions:

  • list: Scan a page and return media URLs with metadata. Example: media(action="list", url="https://example.com/gallery", media_type="images")

  • download: Download media files to local storage. Example: media(action="download", media_urls=["https://example.com/photo.jpg"])

Key parameters:

  • url (required for list): Page URL to scan

  • media_urls (required for download): List of media URLs to download

  • media_type: Filter for list -- "images", "videos", "audio", "files", "all" (default: "all")

  • output_dir: Download directory (default: ~/.wet-mcp/downloads)

  • prompt: Reserved -- accepted for backward compatibility, ignored

Typical workflow: list (discover) -> download (save locally). For LLM analysis (vision/audio/video), hand the downloaded path to imagine-mcp's understand action. The legacy media(action="analyze") was REMOVED in wet v2.0.0 (deprecated since v1.x.y); calling it now returns the standard unknown-action error.

Use help tool with tool_name="media" for full documentation.

helpA

Get detailed documentation for any tool. Call this when you need full parameter reference or usage examples.

Valid tool_name values: search, extract, media, config.

Quick guide -- which tool to use:

  • Need to FIND information? Use search (returns result listings with URLs)

  • Need to READ a page? Use extract (returns full page content from a URL)

  • Need media files? Use media (discover, download images/videos/audio)

  • Need server settings? Use config (status, cache, settings, warmup, sync setup)

configC

Server config and management. Actions: status|set|cache_clear|docs_reindex|warmup|setup_sync|setup_status|setup_skip|setup_reset|setup_complete. Use help tool with tool_name='config' for full docs.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/n24q02m/wet-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server