Web Research Agent
Server Details
Company profiles, site audits and page-to-JSON extraction for AI agents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- elaysuu/web-research-agent-mcp
- GitHub Stars
- 0
- Server Listing
- Web Research Agent MCP
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes: email_check, page_diff, and sitemap_urls are unambiguous. company_profile, page_to_json, and site_audit all fetch web pages but produce different outputs (company summary, structured page data, audit report), though an agent could briefly confuse company_profile with page_to_json when extracting company details from a page.
All names use snake_case and follow a resource-oriented pattern, making them readable and predictable. However, the pattern is not strictly consistent (noun_noun like company_profile, noun_verb like email_check, noun_to_noun like page_to_json), and no verb-first convention is used.
Six tools is well-scoped for a web research agent, with each tool earning its place by covering a distinct operation (company profiling, email validation, page monitoring, structured extraction, site auditing, sitemap discovery). There is no obvious redundancy or missing tool count issue.
The surface covers core URL-based research workflows: company profiling, page extraction, diff monitoring, site auditing, sitemap discovery, and email validation. A notable gap is the lack of a general web search or multi-page crawl tool, but agents can work around this by supplying known URLs or using sitemap_urls for site discovery.
Available Tools
6 toolscompany_profileAInspect
Research a company from its website: name, description, socials, emails, key pages, pricing mentions, tech stack.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Company website, e.g. stripe.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does disclose the scope of what is extracted, which is genuinely useful, but says nothing about crawl depth, number of pages fetched, cost/latency, or failure behavior for unreachable sites.
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?
One sentence, front-loaded with the action, then a compact enumeration of outputs. No filler, no repetition of the tool name.
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 one-parameter read tool with no annotations and no output schema, the field enumeration effectively serves as return-value documentation. Minor gaps around depth and handling of unreachable sites keep it from a 5.
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?
A single parameter with 100% schema description coverage ('Company website, e.g. stripe.com'), so the schema does the work. The description reinforces that the input is a website rather than a name, but adds no format or normalization detail 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?
States a specific verb and resource ('Research a company from its website') and enumerates exactly what is extracted (name, description, socials, emails, key pages, pricing, tech stack). That enumeration implicitly separates it from siblings like site_audit and sitemap_urls, though no sibling is named explicitly.
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 'Research a company from its website' implies the use case (company profiling from a single domain), but there is no explicit when-to-use versus site_audit, page_to_json, or sitemap_urls, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_checkAInspect
Validate an email address or domain via live DNS: syntax, MX/null-MX, SPF, DMARC policy, disposable/free/role flags, deliverability verdict and 0-100 score. No SMTP probe.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email address to check | ||
| domain | No | Or a domain, e.g. stripe.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it discloses that checks are live DNS lookups (external network dependency), that no SMTP probe is performed, and that output includes a deliverability verdict plus a 0-100 score. It omits latency/error behavior and does not say what happens if both optional parameters are omitted.
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?
A single dense sentence, front-loaded with the action and scope, followed by the enumerated checks and a trailing caveat. Every clause carries distinct information and nothing is repeated from the schema or title.
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 two-parameter, no-annotation tool with no output schema, the description covers input modes, the check list, the returned verdict and score, and the SMTP limitation. The one real gap is the zero-required-parameter schema: nothing tells the agent that a call with neither field is meaningless.
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% and both parameters are already documented (email address, or a domain such as stripe.com). The description corroborates the either/or intent by saying "email address or domain," but adds no format details, no precedence rule when both are supplied, and no note that at least one of the two zero-required parameters must be provided.
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?
Names a specific verb (Validate) and resource (an email address or domain) and enumerates the exact checks performed: syntax, MX/null-MX, SPF, DMARC, disposal/free/role flags, verdict, score. An agent knows precisely what this tool returns without opening the schema, and the sibling list (company_profile, site_audit, sitemap_urls) contains nothing that could be confused with it.
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?
"Validate an email address or domain via live DNS" establishes the call context, and "No SMTP probe" sets an explicit boundary on what the verdict does and does not prove (no mailbox-existence check). There is no named alternative tool to route to and no exclusion beyond the SMTP note, so it stops short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_diffAInspect
Monitor a page for changes: returns normalized text + SHA-256 content_hash; pass previous_text (or previous_hash) from an earlier call to get changed flag and added/removed lines.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| selector | No | Optional #id to limit to one element | |
| previous_hash | No | ||
| previous_text | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the load: it discloses that the tool fetches a live page, normalizes the text, and hashes it, which is meaningful behavioral context. It says nothing about network/auth requirements, rate limits, JS-rendered content, or failure modes, leaving real gaps for a fetching tool.
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?
A single dense sentence that front-loads the purpose and then the return/usage contract. Every clause carries information; only the parenthetical alternative could be tightened.
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?
With no output schema, the description usefully names the return fields (text, hash, changed, added/removed lines). However, it omits what the first call returns when no baseline exists, and how url/selector interact, which an agent needs to call it 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?
Schema coverage is only 25% (only selector is documented), so the description must compensate: it does explain the purpose of previous_text and previous_hash and that either may be used. It does not clarify mutual exclusivity, precedence, the 250,000-char cap on previous_text, or how url is scoped.
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?
States a specific verb and resource ("Monitor a page for changes") and immediately describes what the call returns (normalized text + SHA-256 content_hash). It is distinguishable from page_to_json and site_audit by the change-detection framing, though no sibling is named explicitly.
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?
Explains the two-phase workflow clearly: call first, then re-call with previous_text or previous_hash from an earlier call to obtain the changed flag and added/removed lines. It does not say when to prefer this over page_to_json or site_audit, so no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_to_jsonBInspect
Fetch a web page and return structured JSON: meta, Open Graph, JSON-LD, headings, links, images, clean text.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_text | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and it only covers the output contents. It says nothing about network behavior: redirects, timeouts, rate limits, robots.txt/paywall handling, or what happens when a page fails to load or yields no JSON-LD.
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?
One front-loaded sentence listing the payload components with zero filler. Efficient, though the density leaves no room for the operational caveats the tool actually needs.
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?
The enumeration of returned fields usefully substitutes for the missing output schema, which is a real strength. But for a zero-annotation network tool with an undocumented second parameter, the definition omits failure modes and the truncation control, leaving gaps an agent will hit in practice.
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 0%, so the description must compensate, but it never mentions either parameter. In particular 'max_text' — which clearly caps the 'clean text' field — is left entirely unexplained, so an agent must guess its meaning and units.
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?
States a specific verb and resource ('Fetch a web page') plus the exact shape of the return value (meta, Open Graph, JSON-LD, headings, links, images, clean text). That cleanly separates it from siblings like site_audit, page_diff, and sitemap_urls, though the description never names those alternatives explicitly.
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 purpose implies when to use it (you need structured data from a single page), but there is no explicit 'use this instead of page_diff / site_audit' routing and no prerequisites (public vs authenticated pages, JS-rendered content) discussed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_auditBInspect
Audit a web page: SEO, performance hints, security headers, broken internal links; returns score 0-100 and issues.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_links | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It does disclose the return shape ("score 0-100 and issues"), which is genuine behavioral value, but it omits operational traits: whether the page is fetched live over the network, expected latency or timeouts, and whether repeated calls are throttled. For an audit tool with zero annotation coverage those gaps matter.
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?
A single sentence, front-loaded with the verb and resource, then the checked categories, then the return value. Nothing is wasted and nothing important is buried.
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 two-parameter, no-output-schema tool, the description does cover what the tool inspects and roughly what comes back, which is the bulk of what an agent needs. It falls short on the undocumented max_links parameter and on any indication of network behavior or scope limits (single page vs. site).
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 0% and neither parameter is documented. The description never mentions 'url' at all, and 'max_links' (bounded 0-25) is left completely opaque even though it clearly governs the broken-internal-link crawl depth — the one place where the description could have compensated for the empty 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 pairs a specific verb ("Audit") with a specific resource ("a web page") and enumerates the exact dimensions checked: SEO, performance hints, security headers, broken internal links. That is far more concrete than a generic "analyze page," though it never contrasts itself with the near-siblings page_to_json or page_diff, so an agent must infer the boundary.
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?
There is no statement of when to use this versus page_diff, page_to_json, or sitemap_urls, and no prerequisites given (does it need a publicly reachable URL? a single page only, not a site?). A caller can guess it is for one-page health checks, but nothing in the text confirms or excludes that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sitemap_urlsBInspect
List a site's URLs from its sitemaps (robots.txt Sitemap: lines, nested indexes, text sitemaps) with lastmod/changefreq/priority; optional since date filter.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Site or sitemap URL | |
| limit | No | ||
| since | No | ISO date; only URLs with lastmod >= since | |
| max_sitemaps | No |
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 usefully discloses where URLs come from and what metadata accompanies them (lastmod/changefreq/priority), but says nothing about network fetching, behavior when robots.txt is missing or a sitemap is unreachable, or whether results are truncated by the limits.
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?
A single dense sentence with the resource and its sources front-loaded and the optional filter trailing. Every clause (robots.txt lines, nested indexes, text sitemaps, returned fields) carries distinct information.
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?
Good coverage of what is listed and what fields come back, which partly substitutes for the absent output schema. However, for a 4-parameter network-fetching tool with no annotations, the missing semantics for limit/max_sitemaps and the lack of failure/truncation behavior leave real gaps.
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 50%: url and since are documented in the schema, and the description only restates the 'since' filter. The two undocumented parameters, limit (max 5000) and max_sitemaps (max 10), get no explanation anywhere — an agent cannot tell whether limit truncates per sitemap or overall, or how nested index traversal is capped.
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?
States a specific verb and resource ('List a site's URLs from its sitemaps') and even enumerates the discovery sources it follows (robots.txt Sitemap: lines, nested indexes, text sitemaps). An agent can tell this apart from page_to_json or site_audit, but the description never names those siblings to make the distinction explicit.
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?
Usage is only implied by the resource scope: use this when you want URLs discovered via sitemaps. There is no guidance on when to prefer site_audit or a crawl, and no stated preconditions (e.g. site must publish a robots.txt or sitemap).
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.
6 tool updates
- First observed
company_profile - First observed
email_check - First observed
page_diff - First observed
page_to_json - First observed
site_audit - First observed
sitemap_urls
Related MCP Connectors
Turn the web into structured, reliable, actionable enterprise data for AI Agents
Website intelligence for AI agents: landing page audits, business contact details, tracking checks.
Pages, crawls and URL batches as clean Markdown and JSON for AI agents, with an Evidence Record.
Data and tools for your AI agent: company, people, SEO, social and EU register data. Pay per call.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides real-time website audits, lead scoring, tech-stack detection, and local-business search for AI agents doing sales outreach and competitor research.MIT
- AlicenseNot gradedqualityBmaintenanceEnables targeted company discovery, real-time DNS MX deliverability diagnostics, and clean web Markdown extraction for AI agents.MIT

Anakinofficial
AlicenseAqualityCmaintenanceWeb data for AI agents: scrape, crawl, search, deep research, site monitoring, browser automation2242 npm3Apache 2.0- AlicenseAqualityBmaintenanceDomain and company intelligence for AI agents. Enables vetting companies, qualifying leads, and mapping targets from free public data without API keys.64 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.