From Web Researcher
Runs locally to provide web search, data retrieval, and scraping capabilities via multiple providers (Brave, Exa, Serper, Tavily, SearchAPI, Google Custom Search, SearXNG). Supports patent, academic, and government data sources. Requires API keys for most providers.
Copy this JSON into your .mcp.json to enable this server
Add to your .mcp.json:
{
"mcpServers": {
"web-researcher": {
"command": "web-researcher-mcp",
"env": {
"CACHE_DIR": "${CACHE_DIR:-}",
"LOG_LEVEL": "${LOG_LEVEL:-info}",
"LOG_FORMAT": "${LOG_FORMAT:-}",
"CHROME_PATH": "${CHROME_PATH:-}",
"EXA_API_KEY": "${EXA_API_KEY:-}",
"SEARXNG_URL": "${SEARXNG_URL:-}",
"FRED_API_KEY": "${FRED_API_KEY:-}",
"PUBMED_EMAIL": "${PUBMED_EMAIL:-}",
"AUDIT_ENABLED": "${AUDIT_ENABLED:-true}",
"BRAVE_API_KEY": "${BRAVE_API_KEY:-}",
"IA_ACCESS_KEY": "${IA_ACCESS_KEY:-}",
"IA_SECRET_KEY": "${IA_SECRET_KEY:-}",
"STDIO_USER_ID": "${WEB_RESEARCHER_MCP_STDIO_USER_ID:-}",
"USPTO_API_KEY": "${USPTO_API_KEY:-}",
"CROSSREF_EMAIL": "${CROSSREF_EMAIL:-}",
"LENS_API_TOKEN": "${LENS_API_TOKEN:-}",
"MEMORY_ENABLED": "${WEB_RESEARCHER_MCP_MEMORY_ENABLED:-false}",
"OPENALEX_EMAIL": "${OPENALEX_EMAIL:-}",
"PUBMED_API_KEY": "${PUBMED_API_KEY:-}",
"SEARCH_ROUTING": "${SEARCH_ROUTING:-}",
"SERPER_API_KEY": "${SERPER_API_KEY:-}",
"TAVILY_API_KEY": "${TAVILY_API_KEY:-}",
"ALLOWED_DOMAINS": "${ALLOWED_DOMAINS:-}",
"SEARCH_PROVIDER": "${SEARCH_PROVIDER:-google}",
"SEARXNG_HEADERS": "${SEARXNG_HEADERS:-}",
"UNPAYWALL_EMAIL": "${UNPAYWALL_EMAIL:-}",
"SESSION_DATA_DIR": "${SESSION_DATA_DIR:-}",
"ALLOW_PRIVATE_IPS": "${ALLOW_PRIVATE_IPS:-false}",
"AUDIT_OUTPUT_PATH": "${AUDIT_OUTPUT_PATH:-}",
"SEARCHAPI_API_KEY": "${SEARCHAPI_API_KEY:-}",
"SESSION_MAX_STEPS": "${SESSION_MAX_STEPS:-}",
"CUSTOM_LENSES_PATH": "${CUSTOM_LENSES_PATH:-}",
"SEARXNG_BASIC_AUTH": "${SEARXNG_BASIC_AUTH:-}",
"WORKSPACES_ENABLED": "${WEB_RESEARCHER_MCP_WORKSPACES_ENABLED:-false}",
"CACHE_MAX_MEMORY_MB": "${CACHE_MAX_MEMORY_MB:-}",
"EDGAR_CONTACT_EMAIL": "${EDGAR_CONTACT_EMAIL:-}",
"CACHE_ENCRYPTION_KEY": "${CACHE_ENCRYPTION_KEY:-}",
"EPO_OPS_CONSUMER_KEY": "${EPO_OPS_CONSUMER_KEY:-}",
"GENERATIVE_UI_ENABLED": "${WEB_RESEARCHER_MCP_GENERATIVE_UI_ENABLED:-false}",
"MAX_SCRAPE_CONCURRENCY": "${MAX_SCRAPE_CONCURRENCY:-5}",
"SOURCE_RECOMMENDATIONS": "${WEB_RESEARCHER_MCP_SOURCE_RECOMMENDATIONS:-false}",
"USER_ANALYTICS_ENABLED": "${WEB_RESEARCHER_MCP_USER_ANALYTICS_ENABLED:-false}",
"COURTLISTENER_API_TOKEN": "${COURTLISTENER_API_TOKEN:-}",
"EPO_OPS_CONSUMER_SECRET": "${EPO_OPS_CONSUMER_SECRET:-}",
"GOOGLE_CUSTOM_SEARCH_ID": "${GOOGLE_CUSTOM_SEARCH_ID:-}",
"SEMANTIC_SCHOLAR_API_KEY": "${SEMANTIC_SCHOLAR_API_KEY:-}",
"GOOGLE_CUSTOM_SEARCH_API_KEY": "${GOOGLE_CUSTOM_SEARCH_API_KEY:-}"
}
}
}
}Replace placeholder values for: GOOGLE_CUSTOM_SEARCH_API_KEY, BRAVE_API_KEY, SERPER_API_KEY
Review these signals before enabling this server
This MCP server needs API keys or credentials. Configure them in your environment before use.
Server configuration and connection parameters
web-researcher-mcpEnvironment variables set when the server starts
CACHE_DIR=${CACHE_DIR:-}LOG_LEVEL=${LOG_LEVEL:-info}LOG_FORMAT=${LOG_FORMAT:-}CHROME_PATH=${CHROME_PATH:-}EXA_API_KEY=${EXA_API_KEY:-}SEARXNG_URL=${SEARXNG_URL:-}FRED_API_KEY=${FRED_API_KEY:-}PUBMED_EMAIL=${PUBMED_EMAIL:-}AUDIT_ENABLED=${AUDIT_ENABLED:-true}BRAVE_API_KEY=${BRAVE_API_KEY:-}IA_ACCESS_KEY=${IA_ACCESS_KEY:-}IA_SECRET_KEY=${IA_SECRET_KEY:-}STDIO_USER_ID=${WEB_RESEARCHER_MCP_STDIO_USER_ID:-}USPTO_API_KEY=${USPTO_API_KEY:-}CROSSREF_EMAIL=${CROSSREF_EMAIL:-}LENS_API_TOKEN=${LENS_API_TOKEN:-}MEMORY_ENABLED=${WEB_RESEARCHER_MCP_MEMORY_ENABLED:-false}OPENALEX_EMAIL=${OPENALEX_EMAIL:-}PUBMED_API_KEY=${PUBMED_API_KEY:-}SEARCH_ROUTING=${SEARCH_ROUTING:-}SERPER_API_KEY=${SERPER_API_KEY:-}TAVILY_API_KEY=${TAVILY_API_KEY:-}ALLOWED_DOMAINS=${ALLOWED_DOMAINS:-}SEARCH_PROVIDER=${SEARCH_PROVIDER:-google}SEARXNG_HEADERS=${SEARXNG_HEADERS:-}UNPAYWALL_EMAIL=${UNPAYWALL_EMAIL:-}SESSION_DATA_DIR=${SESSION_DATA_DIR:-}ALLOW_PRIVATE_IPS=${ALLOW_PRIVATE_IPS:-false}AUDIT_OUTPUT_PATH=${AUDIT_OUTPUT_PATH:-}SEARCHAPI_API_KEY=${SEARCHAPI_API_KEY:-}SESSION_MAX_STEPS=${SESSION_MAX_STEPS:-}CUSTOM_LENSES_PATH=${CUSTOM_LENSES_PATH:-}SEARXNG_BASIC_AUTH=${SEARXNG_BASIC_AUTH:-}WORKSPACES_ENABLED=${WEB_RESEARCHER_MCP_WORKSPACES_ENABLED:-false}CACHE_MAX_MEMORY_MB=${CACHE_MAX_MEMORY_MB:-}EDGAR_CONTACT_EMAIL=${EDGAR_CONTACT_EMAIL:-}CACHE_ENCRYPTION_KEY=${CACHE_ENCRYPTION_KEY:-}EPO_OPS_CONSUMER_KEY=${EPO_OPS_CONSUMER_KEY:-}GENERATIVE_UI_ENABLED=${WEB_RESEARCHER_MCP_GENERATIVE_UI_ENABLED:-false}MAX_SCRAPE_CONCURRENCY=${MAX_SCRAPE_CONCURRENCY:-5}SOURCE_RECOMMENDATIONS=${WEB_RESEARCHER_MCP_SOURCE_RECOMMENDATIONS:-false}USER_ANALYTICS_ENABLED=${WEB_RESEARCHER_MCP_USER_ANALYTICS_ENABLED:-false}COURTLISTENER_API_TOKEN=${COURTLISTENER_API_TOKEN:-}EPO_OPS_CONSUMER_SECRET=${EPO_OPS_CONSUMER_SECRET:-}GOOGLE_CUSTOM_SEARCH_ID=${GOOGLE_CUSTOM_SEARCH_ID:-}SEMANTIC_SCHOLAR_API_KEY=${SEMANTIC_SCHOLAR_API_KEY:-}GOOGLE_CUSTOM_SEARCH_API_KEY=${GOOGLE_CUSTOM_SEARCH_API_KEY:-}Sensitive values you must provide — never committed to source control
npx claudepluginhub zoharbabin/web-researcher-mcp