Skip to main content
Glama
expandingideas-ai

WET - Web Extended Toolkit MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LLM_MODELSNoComma-separated list of LLM models for extract agent. Empty disables LLM features.
PUBLIC_URLNoPublic URL for HTTP mode.
EXA_API_KEYNoAPI key for Exa search.
SEARXNG_URLNoURL of the SearXNG instance.http://localhost:8080
SYNC_FOLDERNoFolder name for docs sync.wet-mcp
XAI_API_KEYNoAPI key for xAI models.
SYNC_ENABLEDNoEnable cross-machine docs sync via Google Drive.true
BRAVE_API_KEYNoAPI key for Brave Search.
MCP_TRANSPORTNoTransport mode: 'stdio' or 'http'.stdio
RERANK_MODELSNoComma-separated list of reranker models. Empty uses local ONNX.
SYNC_INTERVALNoSync interval in seconds.300
COHERE_API_KEYNoAPI key for Cohere models.
GEMINI_API_KEYNoAPI key for Google Gemini models.
OPENAI_API_KEYNoAPI key for OpenAI models.
TAVILY_API_KEYNoAPI key for Tavily search.
JINA_AI_API_KEYNoAPI key for Jina AI models.
SEARCH_BACKENDSNoComma-separated list of search backends. Default is 'searxng'. Can include 'tavily', 'brave', 'exa'.searxng
EMBEDDING_MODELSNoComma-separated list of embedding models (provider/model). Empty uses local ONNX.
ANTHROPIC_API_KEYNoAPI key for Anthropic models.
CREDENTIAL_SECRETNoSecret for per-user vault key in multi-user HTTP mode.
MCP_RELAY_PASSWORDNoPassword to gate the HTTP setup form.
CONVERT_ALLOWED_DIRSNoComma-separated list of allowed directories for local file conversion.
MCP_DCR_SERVER_SECRETNoServer secret for Dynamic Client Registration in HTTP mode.
GOOGLE_DRIVE_CLIENT_IDNoGoogle Drive OAuth client ID for docs sync.

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:

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/expandingideas-ai/mcp-wet'

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