MCP Web Tools
MCP Web Tools
Мощный MCP-сервер (Model Context Protocol), который даёт AI-агентам веб-суперспособности. Извлекайте контент, ищите в интернете, отслеживайте сайты и конвертируйте HTML в Markdown — всё через чистый интерфейс инструментов.
Инструменты
Инструмент | Описание |
| Извлекает структурированный контент с любого URL (заголовок, заголовки, абзацы, ссылки, изображения, метаданные) |
| Поиск в интернете через DuckDuckGo — API-ключ не нужен |
| Проверяет, работает ли сайт, измеряет время ответа, получает HTTP-заголовки |
| Конвертирует любой URL или HTML в чистый Markdown |
| Извлекает контент с нескольких URL параллельно |
Related MCP server: markfetch-mcp
Установка
Для Claude Code
Добавьте в настройки MCP для Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"web-tools": {
"command": "npx",
"args": ["@rog0x/mcp-web-tools"]
}
}
}Для Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"web-tools": {
"command": "npx",
"args": ["@rog0x/mcp-web-tools"]
}
}
}Ручная установка
npm install -g @rog0x/mcp-web-tools
mcp-web-toolsПримеры использования
Извлечение контента с веб-страницы
Use web_extract to get the main content from https://example.comПоиск в интернете
Use web_search to find "best TypeScript frameworks 2026"Мониторинг сайта
Use web_monitor to check if https://api.example.com is respondingКонвертация страницы в Markdown
Use html_to_markdown to convert https://docs.example.com/guide to readable markdownПакетное извлечение
Use web_multi_extract to get content from these URLs: [url1, url2, url3]Возможности
API-ключи не требуются — используется DuckDuckGo для поиска, прямой HTTP для всего остального
Быстро — параллельное извлечение, таймаут 15 секунд на запрос
Чистый вывод — удаляет скрипты, стили, рекламу; извлекает значимый контент
Лёгкий — минимальные зависимости, не нужен headless-браузер
Готов к продакшену — правильная обработка ошибок, таймауты, валидация входных данных
Требования
Node.js 18+
Лицензия
MIT — rog0x
Available Tools
5 toolshtml_to_markdownA
Convert HTML content or a URL to clean, readable markdown. Removes scripts, styles, and navigation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to fetch and convert | |
| html | No | Raw HTML to convert (use instead of url) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself. It does mention that it fetches URLs, removes scripts/styles/navigation, and produces clean markdown. However, it omits information about rate limits, error handling, whether dynamic content is supported, or the exact format of the returned markdown. It provides some useful context but is not comprehensive.
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, tightly written sentence that front-loads the primary action and includes all essential information without any filler. Every word contributes to understanding the tool's purpose.
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?
For a simple tool with only two optional parameters and no output schema, the description covers the core functionality well. It explains the input types, the conversion process, and the cleaning behavior. The absence of a statement of return value is minor since 'convert to markdown' implies the output is markdown. However, given the sibling web tools, a brief note on when to use this specific tool would improve completeness, but it is largely adequate.
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 both parameters having clear descriptions ('URL to fetch and convert' and 'Raw HTML to convert (use instead of url)'). The description adds no new meaning beyond this—it merely restates that it accepts HTML or a URL. The mutual exclusivity is already conveyed in the schema via 'use instead of url', so no additional value is added.
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 states a specific verb ('Convert') plus the resource ('HTML content or a URL') and the output ('clean, readable markdown'). It also specifies what is removed (scripts, styles, navigation), making it clearly distinct from sibling web extraction tools which would not produce markdown.
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 the tool is used when you have HTML or a URL and want markdown, but it does not explicitly contrast with sibling tools like web_extract or web_multi_extract. No guidance on when not to use it or which alternative is better for other purposes is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_extractB
Extract structured content from a URL: title, headings, paragraphs, links, images, and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to extract content from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It does not mention whether the tool handles JavaScript-rendered pages, follows redirects, requires authentication, or what the structured output format looks like. For an extraction tool, these are significant gaps that could affect invocation expectations.
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, efficient sentence that lists the exact content types extracted. It is front-loaded with the action and resource, with zero filler words, making it easy to parse quickly.
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 that there is no output schema and no annotations, the description should explain what the return value looks like or any limitations (e.g., dynamic content handling, robots.txt restrictions). It merely lists extracted elements without indicating the structure or format, leaving the agent underinformed about the tool's actual behavior.
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?
The schema covers the single parameter 'url' with a description ('URL to extract content from'), so schema coverage is 100%. The description adds no additional semantic detail beyond what the schema already gives, so the 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 uses a specific verb 'extract' with a clear resource 'URL' and enumerates the content types (title, headings, paragraphs, links, images, metadata). This makes the tool's purpose unambiguous and differentiates it from siblings like web_search (searching) and html_to_markdown (format conversion), even without naming them.
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 is given on when to use this tool versus alternatives such as web_multi_extract or web_search. The description states what the tool does but not in which scenarios it should be chosen, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_monitorA
Check if a website is up, measure response time, and get HTTP details
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to monitor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions checking up, measuring response time, and getting HTTP details, but does not specify what constitutes 'HTTP details' (e.g., status code, headers, response time units) or any side effects. It is clear but superficial, lacking depth.
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, efficiently worded sentence that front-loads the primary purpose ('Check if a website is up') followed by secondary details. Every phrase earns its place with no redundancy or filler.
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 (one parameter) and no output schema, the description is adequate but incomplete. It does not explain what the output looks like (e.g., response time in milliseconds, HTTP status code) or clarify the meaning of 'HTTP details', which are crucial for an agent to interpret the result correctly.
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?
The input schema already describes the 'url' parameter as 'URL to monitor' with 100% coverage. The description adds 'website' context but no additional semantic meaning about format or constraints. This meets the baseline for high schema coverage but does not exceed it.
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 states specific verbs ('check', 'measure', 'get') and a clear resource ('website', 'HTTP details'), which unambiguously defines the tool's purpose. It is easily distinguishable from siblings like web_extract (content extraction) and web_search (searching).
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 when to use this tool (for uptime monitoring, response time, HTTP details) but provides no explicit guidance on when not to use it or alternatives. It lacks statements like 'use web_extract for content' or 'use web_search for search queries', leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_multi_extractA
Extract content from multiple URLs in parallel. Returns results for each URL.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Array of URLs to extract content from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions parallel execution, which is a meaningful trait, but omits other important behaviors such as error handling per URL, rate limits, authentication requirements, and the exact format of the returned results. The description is skeletal for a tool that could fail partially.
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 two short sentences with no redundant words. The core action and differentiator are front-loaded, and every sentence adds value. It is highly concise and well-structured.
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?
Despite being a batch operation, the description lacks crucial details: how failures are represented, whether output is raw HTML or extracted text, and any limits on parallelism or URL count. With no output schema and no annotations, the agent has little guidance on expected behavior beyond 'returns results,' leaving significant ambiguity.
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?
The input schema fully describes the only parameter ('Array of URLs to extract content from') with 100% coverage. The description adds no additional meaning beyond what the schema provides, so the baseline 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 states a specific verb ('Extract'), a resource ('content from multiple URLs'), and a distinguishing trait ('in parallel'). This clearly differentiates it from the sibling web_extract, which likely handles a single URL. The purpose is unambiguous.
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 phrase 'from multiple URLs' establishes clear context for when to use this tool (i.e., when there is more than one URL). However, it does not explicitly name the alternative web_extract for single-URL cases, nor provide explicit 'when not to use' guidance. It implies the use case well but stops short of explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchA
Search the web using DuckDuckGo and return structured results with titles, URLs, and snippets
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| num_results | No | Number of results (default: 10, max: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It discloses that the tool returns structured output (titles, URLs, snippets) but does not discuss potential limitations such as rate limiting, pagination, error handling, or whether results respect user preferences. For a read-only search operation, this is acceptable but not thorough.
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, straightforward sentence with no filler. It front-loads the core action and provides essential output details without 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?
For a simple search tool with fully documented parameters and no output schema, the description is sufficient. It gives the agent an understanding of what it does and what it returns. The lack of any caveats about rate limits or usage constraints is a minor gap, but the tool's simplicity makes it largely 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?
Schema description coverage is 100%, so both parameters (query and num_results) are already documented with types and descriptions. The description adds no additional meaning beyond the schema for these parameters, only an overview of the output. Since the schema handles parameter semantics adequately, a baseline 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 the action ('Search the web'), specifies the engine (DuckDuckGo), and describes the output format (structured results with titles, URLs, and snippets). It is easily distinguishable from sibling tools like web_extract or web_monitor, which have different purposes.
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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention situations where a different sibling tool (e.g., web_extract for page content, web_monitor for changes) would be more appropriate. Usage context is only implied by the name and purpose.
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.
5 tool updates
v1.0.0- First observed
html_to_markdown - First observed
web_extract - First observed
web_monitor - First observed
web_multi_extract - First observed
web_search
TDQS
web_extract and web_multi_extract are clearly related, with the latter being just a parallel variant, and html_to_markdown overlaps with web_extract for URL-to-content conversion. Search and monitor are clearly distinct, but the extraction/convert boundary could cause misselection.
Most tools follow web_<action>, but html_to_markdown breaks the prefix pattern and uses a different target_to_target style. The pair web_extract/web_multi_extract is consistent, but overall naming conventions are mixed.
Five tools is a well-scoped size for a web utility server, covering search, monitoring, extraction, and conversion without unnecessary bloat. Each tool earns its place, though the single vs. multi extract duplication is minor.
The toolkit covers core web operations: search, availability/response checking, single-URL and multi-URL extraction, and HTML-to-markdown conversion. Minor gaps exist (e.g., no URL validation or site traversal), but agents can accomplish common web tasks without dead ends.
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
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
Web data tools for AI agents: pages as markdown, search, maps, commerce, jobs, AI answers.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Fetch pages as markdown, search web and news, extract structured data. For AI agents.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search the web via DuckDuckGo and fetch relevant webpage content using an LLM, without requiring an API key.-
- AlicenseAqualityCmaintenanceEnables AI agents to fetch any web page as clean markdown or screenshot it, turning URLs into LLM-ready context.211MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to perform web searches, extract webpage content, and conduct end-to-end search-and-extract operations using multiple search providers and content extraction methods.-
- AlicenseAqualityAmaintenanceEnables AI agents to perform web searches, fetch and extract page content, and crawl sites with caching, rate limiting, and robots.txt compliance, all without needing API keys.11MIT
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/rog0x/mcp-web-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server