Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoEnable HTTP/SSE mode
SEARXNG_URLNoSearXNG instance URL
BRAVE_API_KEYNoBrave Search API key
OAUTH_AUDIENCENoExpected JWT audience claim
SEARCH_ROUTINGNoMulti-provider routing with automatic fallback (e.g. brave,google,serper)
SERPER_API_KEYNoSerper.dev API key
SEARCH_PROVIDERNoBackend: google, brave, serper, searxng, or searchapigoogle
OAUTH_ISSUER_URLNoJWT issuer URL for token validation
SEARCHAPI_API_KEYNoSearchAPI.io API key
GOOGLE_CUSTOM_SEARCH_IDYesProgrammable Search Engine ID
GOOGLE_CUSTOM_SEARCH_API_KEYYesGoogle API key from Google Cloud Console

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
academic_searchA

Search peer-reviewed papers across arXiv, PubMed, IEEE, Nature, Springer, and 12+ scholarly databases via site-restricted web search. Returns JSON with fields: papers (array of {title, url, source, abstract}), query, totalResults, resultCount, source. No special query syntax needed — use technical terms directly. year_from/year_to combine with source filter to narrow scope. On no matches returns resultCount: 0 with empty array; on failure returns isError with message. Subject to per-tenant rate limit (default 30 req/min) with automatic provider fallback. Use this for scientific research, literature reviews, or citations — not for general content. Use web_search for non-academic technical content, or news_search for recent scientific announcements. Set pdf_only=true when you plan to pass URLs to scrape_page for full-text extraction. Results cached 24 hours.

image_searchA

Find images by query with filters for size, type, color, and format. Returns JSON with fields: images (array of {title, link, thumbnailLink, displayLink, contextLink, width, height, fileSize}), query, resultCount. Results sorted by relevance; max 10 per call, no pagination. On no matches returns resultCount: 0 with empty array; on failure returns isError with message. Subject to per-tenant rate limit (default 30 req/min) with automatic provider fallback. Use this for visual assets or image references — not for text information. Use web_search for pages containing images, or scrape_page to extract images from a known URL. Results cached 30 min.

news_searchA

Search recent news articles by topic with time-based freshness filtering. Returns JSON with fields: articles (array of {title, url, source, publishedAt, snippet}), query, resultCount. Default freshness is 'week'; use 'hour' or 'day' for breaking news. On no matches returns resultCount: 0 with empty array; on failure returns isError with message. Subject to per-tenant rate limit (default 30 req/min) with automatic provider fallback. Coverage depends on configured search provider. Use web_search instead for evergreen/non-news content; use academic_search for peer-reviewed findings; use search_and_scrape if you need full article text beyond snippets. Results cached 15 min due to news volatility.

patent_searchA

Search Google Patents for prior art, competitive landscapes, or specific patents by number. Returns JSON with fields: patents (array of {title, url, number, abstract}), query, searchType, resultCount. Query accepts patent numbers (e.g. 'US11234567') or natural-language invention descriptions. search_type adjusts strategy: prior_art (broad technical), specific (exact lookup), landscape (competitive overview). Auto-generates assignee name variations (with/without Inc, LLC, Corp, Ltd suffixes). On no matches returns resultCount: 0 with empty array; on failure returns isError with message. Subject to per-tenant rate limit with provider fallback. Use academic_search for published research papers, or web_search for general technical content. Results cached 24 hours.

scrape_pageA

Extract readable content from a single URL. Handles web pages (HTML and JS-rendered SPAs), PDFs, DOCX, PPTX, and YouTube transcripts via auto-detected extraction with tiered fallback (markdown, stealth, HTML, headless browser). Returns JSON with fields: url, content, contentType, contentLength, truncated, estimatedTokens, sizeCategory, citation (with formatted APA/MLA), metadata ({title, author}). Content capped at max_length (default 50000 bytes); truncated=true if cut. Mode 'preview' forces max_length to 5000 bytes for quick relevance checks. Max 5 concurrent scrapes; additional calls queue. On failure returns isError with reason (e.g. blocked, timeout, invalid URL). Use search_and_scrape instead to discover and extract in one step; use web_search if you only need URLs. Results cached 1 hour.

search_and_scrapeA

Search the web and extract full content from top results in one call. Scrapes in parallel (max 5 concurrent), deduplicates content across sources, and scores each source on relevance and quality. Returns JSON with fields: query, combinedContent, sources (array of {url, title, content, contentType, scores} — included when include_sources=true), summary ({urlsSearched, urlsScraped, processingTimeMs}), sizeMetadata ({totalLength, estimatedTokens, sizeCategory}). On zero search matches returns empty combinedContent with urlsSearched: 0. Individual scrape failures are silently skipped (urlsScraped < urlsSearched indicates partial failures). num_results controls sources scraped (more = slower, typically 2-15s). Subject to per-tenant rate limit with provider fallback. Use web_search instead if you only need URLs; use scrape_page for a single known URL. Not cached (combines live search + scrape).

sequential_searchA

Track multi-step research progress with persistent sessions, branching, and knowledge gap tracking. This is a state tracker, not a search tool — pair with web_search or search_and_scrape for actual searches. Call with stepNumber=1 (omit sessionId) to start a new session. Returns JSON with fields: sessionId, currentStep, totalStepsEstimate, isComplete, steps (array of {stepNumber, description, isRevision, revisesStep, branchId, timestamp}), sources, gaps (array of {description, foundInStep}), startedAt, completedAt (only when isComplete=true). Pass sessionId for steps 2+; each call returns the full accumulated session state. Set nextStepNeeded=false on final step to mark complete. Sessions expire after 30 min of inactivity (returns 'session expired or not found' error); max 50 concurrent sessions per tenant. Use branchFromStep + branchId to explore alternative directions without losing the main thread. Not cached.

web_searchA

Search the web for URLs and metadata without fetching page content. Returns JSON with fields: urls (string array), results (array of {title, url, snippet, displayLink}), query, resultCount. lens and site are mutually exclusive (lens overrides site if both provided). On no matches returns resultCount: 0 with empty results array; on failure returns isError with message. Subject to per-tenant rate limit (default 30 req/min) with automatic provider fallback and circuit breaker recovery. Supports lenses (programming, news, tech, legal, medical, finance, science, government) for domain-restricted search. Use search_and_scrape instead when you need full page content; use news_search for time-sensitive current events; use academic_search for scholarly papers. Results cached 30 min; use time_range to constrain freshness when cache staleness is a concern.

Prompts

Interactive templates invoked by user choice

NameDescription
competitive-analysisResearch competitors in a given market
comprehensive-researchGuide an AI assistant through a multi-step research process
fact-checkVerify a claim using multiple independent sources
literature-reviewSystematic review of academic literature on a topic

Resources

Contextual data attached and managed by the client

NameDescription
Active SessionsCount of active research sessions
Tool StatisticsPer-tool execution metrics including call counts, latency, and error rates

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/zoharbabin/web-researcher-mcp'

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