Skip to main content
Glama
theriskus
by theriskus

mcp_web_search

MCP-сервер для веб-поиска, получения контента и скрапинга страниц. Работает через Model Context Protocol — подключается к Claude Desktop и другим MCP-совместимым клиентам.

Возможности

Инструмент

Описание

web_search

Поиск через DuckDuckGo HTML (без API-ключа). Возвращает заголовки, URL и сниппеты

web_fetch

Загрузка страницы и извлечение текстового содержимого. Опционально — список ссылок

web_scrape

Скрапинг через Playwright для динамических/JS-сайтов. Поддержка скриншотов

open_url

Открытие страницы в headless-браузере: заголовок, HTTP-статус, превью контента

Защита от блокировок

  • Случайные User-Agent, Accept-Language, Sec-Ch-Ua и другие заголовки

  • Случайные задержки между запросами

  • Разные профили браузера при каждом запуске Playwright

Related MCP server: MCP MyZ Search

Установка

git clone <repo-url> mcp_web_search
cd mcp_web_search
npm install
npm run build

Для Playwright необходимо установить Chromium:

npx playwright install chromium

Использование

Ручной запуск

npm run build   # Сборка TypeScript → dist/
npm start       # Запуск через stdio

dev-режим (без сборки)

npm run dev

Подключение к Claude Desktop

Добавь в claude_desktop_config.json:

{
  "mcpServers": {
    "mcp_web_search": {
      "command": "node",
      "args": ["/путь/к/mcp_web_search/dist/index.js"]
    }
  }
}

Инструменты

Поиск через DuckDuckGo HTML. Не требует API-ключа.

{ "query": "TypeScript MCP server", "maxResults": 10 }

web_fetch

Загрузка страницы и извлечение текста. Быстрее, чем web_scrape, но без поддержки JavaScript.

{ "url": "https://example.com", "withLinks": true, "maxContentLength": 5000 }

web_scrape

Полноценный браузерный скрапинг через Playwright Chromium. Для сайтов, которые рендерят контент на клиенте (React, Vue и т.д.).

{
  "url": "https://example.com",
  "waitForSelector": ".article-body",
  "timeout": 30000,
  "maxContentLength": 15000,
  "takeScreenshot": false
}

open_url

Лёгкое открытие страницы — возвращает заголовок, HTTP-статус и краткое превью.

{ "url": "https://example.com", "timeout": 15000 }

Стек

Скрипты

Команда

Описание

npm run build

Компиляция TypeScript

npm start

Запуск скомпилированного сервера

npm run dev

Запуск через tsx (без компиляции)

Лицензия

ISC

Available Tools

4 tools
open_urlB

Open a URL in a headless browser and return the page title, HTTP status, and a short content preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to open
waitForSelectorNoCSS selector to wait for before returning
timeoutNoPage load timeout in ms (default 30000)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It mentions headless browser and returns, but omits side effects, authentication needs, rate limits, or whether it's read-only. Insufficient behavioral detail.

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?

Single sentence with verb, resource, and output list. Front-loaded, no waste.

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

Completeness3/5

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

Tool has 3 params and no output schema. Description explains return values vaguely but lacks details on output structure (e.g., preview format). Adequate but not fully complete.

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?

All parameters have schema descriptions (100% coverage). Description adds no extra meaning beyond what schema already provides, meeting baseline.

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

Purpose4/5

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

Description clearly states action (open URL in headless browser) and outputs (title, status, preview). Distinguishes from sibling tools by implying browser rendering, but does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like web_fetch, web_scrape, or web_search. Lacks context for appropriate usage scenarios.

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

web_fetchB

Fetch a URL and return its parsed HTML content as text, optionally with extracted links.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch
withLinksNoInclude extracted links (default false)
maxContentLengthNoMaximum content length in characters (default 10000)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the output (parsed HTML text, optional links) but omits error handling, authentication needs, rate limits, or any side effects. For a read-only operation, this is insufficient.

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?

Single sentence with no redundancy. Front-loaded with core action and outcome. Every word is earned.

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

Completeness3/5

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

Given the tool's simplicity (3 params, no output schema), the description covers basic functionality but lacks behavioral details and usage context. Minimal but adequate for a straightforward fetch operation.

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% with descriptions for all three parameters. The description adds context that the output is text and links are optional, but does not significantly enhance understanding beyond the schema.

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

Purpose4/5

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

The description clearly states the tool fetches a URL and returns parsed HTML text with optional links. It distinguishes from siblings like web_scrape by focusing on basic fetch and parse, but does not explicitly contrast with open_url or web_search.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (open_url, web_scrape, web_search). The description implies usage for simple retrieval but lacks explicit context or exclusions.

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

web_scrapeA

Use Playwright (browser) to load a page with JavaScript support and extract content. Best for dynamic/SPA sites.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to scrape
waitForSelectorNoCSS selector to wait for before extracting (e.g. 'main', '.article-body')
timeoutNoPage load timeout in ms (default 30000)
maxContentLengthNoMaximum content length in characters (default 15000)
takeScreenshotNoTake a screenshot after loading (default false)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions using Playwright (browser) and extracting content, but omits details like resource intensiveness, potential script execution, or what specific content is extracted (e.g., text vs. markup). Somewhat transparent but not fully detailed.

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?

Two concise sentences that front-load the core purpose and application. Every word adds value with no redundancy.

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

Completeness3/5

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

Given the absence of an output schema and annotations, the description should clarify what 'extract content' means (e.g., returns text, links, or HTML). It also does not mention potential pitfalls like timeouts or content limitations, leaving the agent somewhat under-informed.

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?

All 5 parameters have descriptions in the schema (100% coverage), so the description adds no extra meaning. Baseline score of 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 clearly states it uses a browser to load pages with JavaScript support and extract content, specifically calling out dynamic/SPA sites, which distinguishes it from siblings like web_fetch (no JS) and web_search.

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 explicitly recommends it 'Best for dynamic/SPA sites,' implying when to use, but does not explicitly state when not to use or suggest alternatives. Still, it provides clear context for selection.

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. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedopen_url
    • First observedweb_fetch
    • First observedweb_scrape
    • First observedweb_search

TDQS

A3.5/5.0
Disambiguation4/5

Tools are mostly distinct: web_search for search results, web_fetch for static content, web_scrape for dynamic pages, open_url for a quick preview. However, open_url and web_fetch have overlapping functionality (both fetch a URL), which could cause slight confusion if descriptions are not carefully read.

Naming Consistency3/5

Three tools use the 'web_' prefix (web_fetch, web_scrape, web_search), but open_url breaks the pattern. Verbs are inconsistent (open, fetch, scrape, search). A uniform naming convention like 'web_search', 'web_fetch', 'web_scrape', 'web_preview' would be clearer.

Tool Count5/5

Four tools is an appropriate number for a web search MCP server. Each tool serves a distinct purpose (search, static fetch, dynamic scrape, quick preview), and no tool feels unnecessary. The count is well-scoped.

Completeness4/5

The tool surface covers the main workflows: searching the web, retrieving content from static pages, and handling dynamic pages. A minor gap is the lack of a dedicated tool for metadata extraction or advanced search filtering, but the core functionality is complete for typical usage.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables web search across Bing, DuckDuckGo, and Google using Playwright automation, with tools for retrieving search results and extracting page text content.
    25
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.
    13
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables web search using Bing and DuckDuckGo combined, and fetching readable content from web pages, with no API key required.
    9
    1
    MIT

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/theriskus/mcp-web-browser'

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