mcp_web_search
Provides web search capabilities via DuckDuckGo HTML search, returning titles, URLs, and snippets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp_web_searchsearch for MCP server best practices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp_web_search
MCP-сервер для веб-поиска, получения контента и скрапинга страниц. Работает через Model Context Protocol — подключается к Claude Desktop и другим MCP-совместимым клиентам.
Возможности
Инструмент | Описание |
| Поиск через DuckDuckGo HTML (без API-ключа). Возвращает заголовки, URL и сниппеты |
| Загрузка страницы и извлечение текстового содержимого. Опционально — список ссылок |
| Скрапинг через Playwright для динамических/JS-сайтов. Поддержка скриншотов |
| Открытие страницы в 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 # Запуск через stdiodev-режим (без сборки)
npm run devПодключение к Claude Desktop
Добавь в claude_desktop_config.json:
{
"mcpServers": {
"mcp_web_search": {
"command": "node",
"args": ["/путь/к/mcp_web_search/dist/index.js"]
}
}
}Инструменты
web_search
Поиск через 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 }Стек
TypeScript (ES2022, ESM)
@modelcontextprotocol/sdk — MCP-сервер
Playwright — headless-браузер для динамических страниц
Cheerio — парсинг HTML
Zod — валидация параметров
Скрипты
Команда | Описание |
| Компиляция TypeScript |
| Запуск скомпилированного сервера |
| Запуск через tsx (без компиляции) |
Лицензия
ISC
Available Tools
4 toolsopen_urlB
Open a URL in a headless browser and return the page title, HTTP status, and a short content preview.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to open | |
| waitForSelector | No | CSS selector to wait for before returning | |
| timeout | No | Page load timeout in ms (default 30000) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch | |
| withLinks | No | Include extracted links (default false) | |
| maxContentLength | No | Maximum content length in characters (default 10000) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to scrape | |
| waitForSelector | No | CSS selector to wait for before extracting (e.g. 'main', '.article-body') | |
| timeout | No | Page load timeout in ms (default 30000) | |
| maxContentLength | No | Maximum content length in characters (default 15000) | |
| takeScreenshot | No | Take a screenshot after loading (default false) |
TDQS
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.
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.
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.
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.
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.
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.
web_searchB
Search the web and return results with titles, URLs, and snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| maxResults | No | Maximum number of results (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It only states the output (titles, URLs, snippets) but does not disclose any behavioral traits such as rate limits, source credibility, freshness of results, or potential side effects. This is insufficient for an agent to trust the tool fully.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and to the point. It could be slightly improved with structure (e.g., bullet points for output), but it is not overly verbose and carries its weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal annotations, the description should compensate by explaining result format, pagination, error conditions, or defaults. It only mentions returning 'titles, URLs, and snippets', which is incomplete for a search tool. Context is insufficient for an agent to correctly interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'query' described as 'Search query' and 'maxResults' as 'Maximum number of results (default 10)'. The description does not add any meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the web and return results with titles, URLs, and snippets.' This is a specific verb and resource, and it distinguishes from sibling tools like open_url (opens a specific URL) and web_fetch (fetches content from a URL).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for general web search, but it does not explicitly state when to use it over alternatives (e.g., for browsing vs. fetching specific content). No when-not or alternative guidance is provided.
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.
4 tool updates
v1.0.0- First observed
open_url - First observed
web_fetch - First observed
web_scrape - First observed
web_search
TDQS
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.
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.
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.
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
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
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Fetch pages as markdown, search web and news, extract structured data. For AI agents.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables web searching through DuckDuckGo and fetching content from webpages. Provides search capabilities with configurable result limits and webpage content extraction for AI assistants.-
- AlicenseNot gradedqualityFmaintenanceEnables web search across Bing, DuckDuckGo, and Google using Playwright automation, with tools for retrieving search results and extracting page text content.25MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.13MIT
- AlicenseNot gradedqualityCmaintenanceEnables web search using Bing and DuckDuckGo combined, and fetching readable content from web pages, with no API key required.91MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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