Skip to main content
Glama
litescrape

litescrape-mcp-server

Official

Litescrape MCP Server

Google Search, Bing, DuckDuckGo and Google Maps results for any MCP client, free and without an API key. Add a key for Google AI Mode, Google AI Overview and Google Shopping, and to lift every limit.

Results come straight from the search engines' own pages as structured JSON, through the Litescrape API. Links are real destinations, never redirects, and nothing is cached: every call runs fresh.

Quick start

No account, no key, one line.

Claude Code

claude mcp add litescrape -- npx -y litescrape-mcp-server

Cursor, Windsurf, Claude Desktop, Codex, Gemini CLI and most other clients (mcp.json, claude_desktop_config.json, or the client's MCP settings)

{
	"mcpServers": {
		"litescrape": {
			"command": "npx",
			"args": ["-y", "litescrape-mcp-server"]
		}
	}
}

VS Code

code --add-mcp '{"name":"litescrape","command":"npx","args":["-y","litescrape-mcp-server"]}'

Codex CLI

codex mcp add litescrape -- npx -y litescrape-mcp-server

Gemini CLI

gemini mcp add litescrape npx -y litescrape-mcp-server

Requires Node.js 20 or newer.

Related MCP server: web-browser-mcp

What you get without a key

Tool

Returns

Free calls per network per UTC day

search

Google organic results in fast mode (title, link, snippet); shares the google_search allowance

25

google_search

The full Google results page: organic results, Knowledge Graph, AI Overview, ads, related questions and every other module Google served

25

bing_search

Bing organic results, answer boxes, Knowledge Graph, Copilot answer and more

50

duckduckgo_search

DuckDuckGo organic results with region, safety and date filters

50

google_maps

Google Maps places (name, address, rating, hours, phone, website, coordinates) or one exact place

50

One call runs at a time per network, and failed calls never count. When a limit is reached, the tool result says so and tells the model exactly how to add a key, so the agent can relay it to you.

Add an API key

A key unlocks google_ai_mode, google_ai_overview and google_shopping, removes the daily limits and allows concurrent calls. Get one at litescrape.com, then set LITESCRAPE_API_KEY in the server's environment:

{
	"mcpServers": {
		"litescrape": {
			"command": "npx",
			"args": ["-y", "litescrape-mcp-server"],
			"env": {
				"LITESCRAPE_API_KEY": "ls_live_..."
			}
		}
	}
}

With Claude Code: claude mcp add litescrape -e LITESCRAPE_API_KEY=ls_live_... -- npx -y litescrape-mcp-server

Tools

Tool

Key needed

What it does

search

No

Web search through Google, organic results only. Parameters: q, gl, hl, location, num, start

google_search

No

Full Google Search page. Localization (gl, hl, location, uule, lat/lon), verticals (tbm: news, videos, local, shopping, patents), date filters (tbs, as_qdr), site restriction (as_sitesearch), pagination (start, num), device, fast_mode

bing_search

No

Bing web search with mkt/cc, location, lat/lon, first, safeSearch, filters, device

duckduckgo_search

No

DuckDuckGo web search with kl, safe, df, start, m

google_maps

No

Places by query inside a viewport (ll, location, lat/lon with z or m) with price, rating and opening-hours filters, or one exact place by place_id, data_cid or data

google_ai_overview

Yes

Only the AI Overview for a Google search, or null when Google shows none

google_ai_mode

Yes

Google AI Mode's generated answer with its cited sources; continuable returns a follow-up token, image_url adds a picture to the question

google_shopping

Yes

The Google Shopping product grid, category blocks, sponsored listings and refinement chips; price, sale, shipping and small-business refinements, sort_by, pagination

Parameter names and accepted values follow the Litescrape API reference.

Every tool accepts result_groups, a list of top-level groups to keep (for example ["organic_results", "knowledge_graph"]) so the model's context stays small. search_metadata is always included.

Results

A tool result is one text block: a one-line summary, a blank line, then the API's JSON response unchanged.

Google Search for "espresso machine": 10 organic results; also knowledge_graph, related_questions, ai_overview. Free allowance: 24 of 25 google_search calls left today (no API key set).

{"search_metadata":{...},"search_parameters":{...},"organic_results":[...],...}

The same JSON is also returned as structuredContent for clients that read it.

Limits and errors

What happened

Tool result

Daily allowance for that tool is used up

Error text naming the tool and the limit, when it resets (00:00 UTC), and how to add a key

A keyless call is already in flight

The server waits for the API's Retry-After (a few seconds) and retries up to twice before reporting the limit

A key-only tool was called without a key

Error text naming the tool and the free alternatives, and how to add a key; no request is made

The upstream page could not be fetched

Error text with the API's error_code, HTTP status and request_id; retryable failures are retried twice, and failed calls are not charged

Invalid arguments

Rejected by the tool schema before any request

Requests time out after 120 seconds by default (the API's own deadline is 90 seconds). AI Mode is the slowest tool.

Configuration

Environment variable

Default

Meaning

LITESCRAPE_API_KEY

unset

Bearer key; unset means the free keyless allowance

LITESCRAPE_API_URL

https://api.litescrape.com

API origin, for self-hosted or staging deployments

LITESCRAPE_TIMEOUT_MS

120000

Per-request timeout in milliseconds

Every request identifies itself with X-Litescrape-Client: mcp/<version> and a litescrape-mcp-server/<version> user agent. The server writes protocol messages to stdout and its logs to stderr.

Development

npm install
npm run lint       # prettier + tsc
npm test           # vitest, including a real stdio round trip
npm run build      # tsc -> dist/
npm run inspector  # MCP Inspector against dist/index.js

npm run dev runs the server from source with tsx. Releases are tagged with the package version (for example 0.1.0); the publish workflow builds and publishes to npm with provenance.

License

MIT

Available Tools

8 tools
google_ai_modeGoogle AI ModeA
Read-only
Inspect

Ask Google AI Mode a question and return its generated answer (ordered text_blocks: paragraphs, headings, lists, tables, code) with the sources it cited (references). Set continuable to get a token for follow-up questions; image_url adds a picture to the prompt. Slow: answers are generated per request. Requires an API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe question to ask
glNoTwo-letter country for localization, e.g. "us"
hlNoLanguage code such as "en" or "en-GB"; default en
uuleNoPre-encoded Google location token; conflicts with location
deviceNoLayout to request; default desktop
locationNoNamed search origin such as "Austin, Texas"; conflicts with uule and lat/lon
image_urlNoPublic http(s) image to include in the prompt; cannot combine with a token
continuableNoReturn a subsequent_request_token so the conversation can continue
google_domainNoGoogle domain such as google.co.uk; default google.com
result_groupsNoReturn only these top-level result groups, e.g. ["organic_results", "knowledge_graph"]; omit for the complete response. search_metadata is always kept
subsequent_request_tokenNoToken from a previous continuable answer; send with a new q. Expires after 30 minutes; cannot combine with image_url

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, so the agent already knows this is a safe read operation. The description adds valuable behavioral context beyond the annotations: it warns that the tool is slow (answers generated per request), explains the continuable token mechanism and its 30-minute expiry, and notes that image_url cannot combine with a token. These are exactly the kind of behavioral traits an agent needs to know. It doesn't describe rate limits or failure modes, but the annotations already cover the safety profile, so a 4 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with zero waste. The first sentence front-loads the core purpose and output format, the second explains the two most important optional parameters, and the third delivers the critical behavioral warning (slow) and the auth requirement. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 11 parameters, 100% schema coverage, and no output schema, the description is quite complete. It covers the core purpose, output structure, the continuable follow-up mechanism, the image_url constraint, the slowness warning, and the API key requirement. The only gaps are minor: it doesn't explain what happens with result_groups filtering or the uule/location conflict, but those are documented in the schema. The description is complete enough for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters. The description adds meaning for a few key parameters: continuable (get a token for follow-up questions), image_url (adds a picture to the prompt), and subsequent_request_token (implied by the follow-up explanation). However, it doesn't add much beyond the schema for parameters like gl, hl, uule, device, location, google_domain, or result_groups. Since the schema does the heavy lifting, the baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Ask'), a specific resource ('Google AI Mode'), and the exact output shape (ordered text_blocks with sources). It also names the sibling tool google_ai_overview implicitly by distinguishing AI Mode from a plain search, and the sibling list confirms this is the AI-powered Q&A tool rather than a generic search. The description is unambiguous about what this tool does and how it differs from the other search siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: when you want a generated answer with cited sources, and it explicitly warns that it is slow because answers are generated per request. It also explains the continuable token mechanism for follow-up questions, which is a key usage pattern. However, it does not explicitly name alternatives or state when NOT to use this tool (e.g., when you need fast results, use google_search instead). The sibling list provides context but the description itself doesn't draw the contrast.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

google_ai_overviewGoogle AI OverviewA
Read-only
Inspect

Return only the AI Overview Google generates for a search (ai_overview with ordered text_blocks and cited references), or null when Google shows none. Accepts the google_search parameters. Requires an API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query; required unless ludocid or kgmid is supplied
crNoCountry restrict such as countryUS|countryCA
glNoTwo-letter country for localization, e.g. "us"
hlNoLanguage code such as "en" or "en-GB"; default en
lrNoLanguage restrict such as lang_en|lang_fr
latNoLatitude; supply together with lon
lonNoLongitude; supply together with lat
numNoRequested result count, 1-100; Google may return fewer
tbmNoVertical: lcl local, vid videos, nws news, shop shopping, pts patents
tbsNoGoogle search-filter string, e.g. qdr:w for the past week
nfprNo1 disables spelling auto-correction
safeNoSafeSearch
uuleNoPre-encoded Google location token; conflicts with location
kgmidNoKnowledge Graph machine ID such as /m/0k8z
startNoResult offset for pagination
as_qdrNoDate range: d, w, m or y with an optional count, e.g. d7 for the past week
deviceNoLayout to request; default desktop
filterNo0 disables duplicate-content filtering
radiusNoRadius in meters around the location or coordinates
ludocidNoGoogle CID of a local entity, for a targeted lookup
locationNoNamed search origin such as "Austin, Texas"; conflicts with uule and lat/lon
as_sitesearchNoRestrict results to this hostname
google_domainNoGoogle domain such as google.co.uk; default google.com
result_groupsNoReturn only these top-level result groups, e.g. ["organic_results", "knowledge_graph"]; omit for the complete response. search_metadata is always kept

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, the description adds the crucial null-when-absent behavior, the structure of the returned ai_overview object, and an API-key auth requirement. It could add rate-limit or failure-mode details, but the existing additions go well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the primary behavior and return contract, and then adds the parameter family and auth requirement. No sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 24-parameter tool with no output schema, the description covers the key contextual gaps: what is returned, when it returns null, and that an API key is required. The schema handles the parameter details, so the description is sufficiently complete, though it could mention limitations such as AI Overview availability by vertical or domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents all 24 parameters. The description only adds the high-level statement that it 'accepts the google_search parameters', which orients the agent but does not add per-parameter semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise operation ('Return only the AI Overview Google generates for a search'), specifies the output shape (ai_overview with ordered text_blocks and cited references), and states the null case. It also signals its relationship to the general search tools by saying it accepts the google_search parameters, which helps distinguish it from siblings like google_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose statement implies when to use the tool (when the AI Overview answer is needed), but it never states when not to use it or points to an alternative such as google_search or google_ai_mode. The guidance is inferred from the description rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

google_mapsGoogle MapsA
Read-only
Inspect

Search Google Maps for places (local_results with name, address, rating, reviews, hours, phone, website, coordinates) or fetch one exact place (place_results) by place_id, data_cid or data sequence. Filter by price, rating and opening hours. Free without an API key: 50 calls per network per day.

ParametersJSON Schema
NameRequiredDescriptionDefault
mNoRadius in meters; use with location or lat/lon
qNoSearch text; required for type=search
zNoZoom 3-30; use with location or lat/lon
glNoTwo-letter country for localization, e.g. "us"
hlNoLanguage code such as "en" or "en-GB"; default en
llNoViewport as @lat,lon,14z or @lat,lon,5000m
latNoLatitude; supply together with lon
lonNoLongitude; supply together with lat
dataNoExact place by Google Maps data sequence
typeNosearch (default) for a query, or place for one exact place identified by place_id, data_cid or data
startNoNative Maps result offset
nearbyNoRestrict results to places near the viewport
data_cidNoExact place by decimal Google CID
locationNoNamed search origin such as "Austin, Texas"; conflicts with uule and lat/lon
place_idNoExact place by Google place ID
max_priceNoPrice level upper bound
min_priceNoPrice level lower bound
min_ratingNoMinimum rating preference
open_stateNoOpen now, or open 24 hours; cannot combine with open_on_day
open_on_dayNo
open_at_hourNoHour 0-23; requires open_on_day
google_domainNoGoogle domain such as google.co.uk; default google.com
result_groupsNoReturn only these top-level result groups, e.g. ["organic_results", "knowledge_graph"]; omit for the complete response. search_metadata is always kept

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already label it read-only and open-world; the description adds valuable operational context: no API key required, a concrete daily rate limit, and the output groups returned (local_results vs place_results with fields). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action and modes, then filters, then usage limits. No filler or redundant restatement of schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 23 parameters and no output schema, the combination of the high-coverage schema and description (mode selection, filters, return groups, rate limit) gives an agent what it needs to call the tool correctly. It could add a usage example or note on response size, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 96% schema coverage, the schema carries the parameter detail. The description still adds value by grouping the many parameters into modes and filter categories (price, rating, opening hours) and by naming the three identifier alternatives for exact-place lookup. This is more than baseline repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action ('Search Google Maps for places') and explicitly distinguishes two modes: broad search returning local_results and exact place fetch via place_id, data_cid, or data sequence. This makes its scope clear relative to generic web-search siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states clear use cases—searching for places with optional filters or retrieving a single place by identifier—and notes the free-tier constraint (50 calls/network/day). It doesn't explicitly name sibling alternatives or exclusion conditions, but the described scenarios are unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

google_shoppingGoogle ShoppingA
Read-only
Inspect

Search Google Shopping and return the product grid (shopping_results with title, price, source, rating, thumbnail), category blocks, sponsored listings and the refinement chips Google renders (filters). Price bounds, sale, shipping and small business refinements are mutually exclusive; sort_by combines with one of them. Requires an API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoProduct query; required unless shoprs is supplied
glNoTwo-letter country for localization, e.g. "us"
hlNoLanguage code such as "en" or "en-GB"; default en
numNoProduct count, 1-100
uuleNoPre-encoded Google location token; conflicts with location
startNoResult offset
deviceNoLayout to request; default desktop
shoprsNoRefinement token from a previous response's filters
on_saleNo
sort_byNo1 price low to high, 2 price high to low, 3 rating, 4 relevance
locationNoNamed search origin such as "Austin, Texas"; conflicts with uule and lat/lon
max_priceNoUpper price bound
min_priceNoLower price bound
free_shippingNo
google_domainNoGoogle domain such as google.co.uk; default google.com
result_groupsNoReturn only these top-level result groups, e.g. ["organic_results", "knowledge_graph"]; omit for the complete response. search_metadata is always kept
small_businessNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint and openWorldHint already present, the bar is lower, but the description adds value by disclosing the response composition (shopping_results fields, category blocks, sponsored listings, refinement chips) and the API key requirement. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The first sentence front-loads the tool's purpose and output, the second captures the key parameter constraint, and the third states the operational prerequisite. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter tool with no output schema, the description supplies the essential output shape and the most important parameter-combination constraint, while the schema covers individual parameter details. It could be more complete by explicitly routing the agent to this tool only for shopping queries versus generic search, but the core invocation knowledge is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 82%, so the schema already describes most parameters. The description adds crucial cross-parameter semantics not visible in the schema: the mutual exclusivity of price/sale/shipping/small_business refinements and the rule that sort_by combines with one refinement. This meaningfully improves correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Search Google Shopping'. It then enumerates the concrete return components (product grid, category blocks, sponsored listings, refinement chips), which clearly distinguishes this tool from generic siblings like google_search, bing_search, and google_maps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical usage guidance: it states the API key prerequisite and explains that price bounds, sale, shipping, and small business refinements are mutually exclusive while sort_by can combine with one of them. It does not explicitly say 'for general web results use google_search', so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.1
    • First observedbing_search
    • First observedduckduckgo_search
    • First observedgoogle_ai_mode
    • First observedgoogle_ai_overview
    • First observedgoogle_maps
    • First observedgoogle_search
    • First observedgoogle_shopping
    • First observedsearch

TDQS

A4/5.0

Scored across 8 tools

Disambiguation3/5

Most tools are distinguishable by engine or domain, but 'search' and 'google_search' both return Google organic results (differing only by modules), and 'google_ai_overview' vs 'google_ai_mode' both produce AI-generated text with references, creating potential misselection. Bing and DuckDuckGo are clearly distinct, but the AI and Google search siblings blur boundaries.

Naming Consistency3/5

The pattern is partially consistent with google_search, bing_search, and duckduckgo_search following an engine_search convention. However, the bare 'search' tool breaks the pattern, and google_maps, google_shopping, google_ai_overview, and google_ai_mode use a mixed domain/feature style rather than a uniform verb_noun structure.

Tool Count5/5

Eight tools is a well-scoped set for a web research and scraping server, covering multiple search engines, maps, shopping, and AI-assisted search. Each tool adds a meaningful capability without bloat or redundancy.

Completeness4/5

The server covers core research needs: multiple engines, maps, shopping, and AI summaries. Minor gaps exist (e.g., no general URL fetcher, no dedicated news tool), but google_search's verticals and filters mitigate these, and no obvious dead-end workflow is present.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers