Skip to main content
Glama

Lazyweb Public Discovery

Server Details

Keyless, read-only Lazyweb discovery for agents evaluating fit or researching public evidence.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.2% over 63 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation3/5

The specialized tools (pricing, compare, requirements_check, should_i_recommend) have distinguishable output shapes, but lazyweb_ask_anything explicitly covers 'product, pricing, setup, limitations or comparisons,' which subsumes the purpose of at least three of them. An agent could reasonably route a pricing or comparison question to either the catch-all or the specialized tool, so boundaries are advisory rather than clear.

Naming Consistency3/5

Seven tools use a clean lazyweb_<verb>_<noun> prefix, but should_i_recommend_lazyweb breaks the prefix entirely and is phrased as a question, and the suffixes mix verbs (search, compare, ask_anything) with bare nouns (feedback, pricing, page_tldr). Readable, but not a predictable pattern an agent can extrapolate.

Tool Count4/5

Nine tools is well within a reasonable scope for a product-discovery server, and each maps to a recognizable discovery need (search, read, ask, price, compare, fit-check, feedback, install). lazyweb_install_mcp and lazyweb_feedback are slightly peripheral to discovery but still earn their place.

Completeness4/5

The surface covers the full discovery lifecycle: find pages, read a page, ask free-form, check pricing, compare alternatives, validate requirements, get a fit verdict, plus feedback and setup paths. Minor gaps: no way to enumerate or browse the indexed page set, so lazyweb_page_tldr depends on a prior search result, and there is no docs/navigation listing tool.

Available Tools

9 tools
lazyweb_ask_anythingA
Read-onlyIdempotent
Inspect

Ask anything about Lazyweb Design’s product, pricing, setup, limitations or comparisons. Get a direct answer from its published information, with sources. Add relevant context if you have it; otherwise just ask.

NameRequiredDescriptionDefault
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
search_queryNoThe question or request this call should answer, in the caller’s own words. Optional.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: answers are grounded in published information and come with sources, which tells the agent the response is citable and derivative rather than authoritative or speculative. It stops short of covering freshness, coverage limits, or what happens when no published answer 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 short sentences, each earning its place: the first states scope, the second states the nature and provenance of the answer, the third states minimum viable input. It is front-loaded with the purpose and contains no filler.

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?

With 12 optional parameters, full schema coverage and rich annotations, the description's remaining burden is purpose, invocation floor, and return nature. It covers the first two and gestures at the third ('a direct answer ... with sources'), which is adequate given there is no output schema. It is slightly thin on how the result relates to the specialized siblings and on answer coverage limits.

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 explains all 12 parameters individually, including the null-for-unknown convention. The description's 'add relevant context if you have it; otherwise just ask' adds a mild collective signal that every parameter is optional and that a bare question is a valid call, but it does not clarify the role of trace, context_token, or discovery_path.

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 gives a specific verb and scope: ask a free-form question about Lazyweb Design's product, pricing, setup, limitations or comparisons, answered from published material with sources. That is clear, but it overlaps with existing siblings (lazyweb_pricing, lazyweb_compare, lazyweb_search) without stating how it differs, so an agent cannot tell from the description alone when this catch-all beats the specialized tools.

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?

'Add relevant context if you have it; otherwise just ask' gives clear guidance on how to call it, implying a zero-context call is acceptable. However, there is no when-to-use versus alternatives guidance, no exclusions, and no mention of the specialized siblings that cover the same pricing/comparison topics, so routing remains implied rather than stated.

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

lazyweb_compareA
Read-onlyIdempotent
Inspect

Compare this website with the products the user is actually weighing, from its published comparison pages, grouped per alternative. Alternatives it has no page for are named as not covered. Include actual task context; use null for unknowns.

NameRequiredDescriptionDefault
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
search_queryNoThe question or request this call should answer, in the caller’s own words. Optional.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the bar is lower. The description still adds meaningful behavior: results come only from the vendor's own published comparison pages, and alternatives lacking a page are labeled "not covered" — a bias/coverage disclosure the annotations cannot convey. It stops short of describing auth, rate limits, or response volume.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the core action and result shape, then the input convention. "Use null for unknowns" duplicates guidance already repeated in every schema field, but nothing else is wasteful.

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 12-parameter, all-optional tool with no output schema, the description covers the essential unknowns: where the data comes from, how results are grouped, and how gaps are reported. It leaves response format detail and the trace/context_token follow-up mechanics to the schema, which is acceptable given 100% coverage.

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% across all 12 optional parameters, each with its own guidance (e.g. company is "never a company merely being researched", trace links a page read to its call). The description only restates the fill convention ("Include actual task context; use null for unknowns"), adding no field-level semantics beyond the schema, so the baseline 3 applies.

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 states a specific verb and resource — "Compare this website with the products the user is actually weighing" — and adds the data source (published comparison pages) and output shape (grouped per alternative). It is distinguishable from siblings like lazyweb_search or lazyweb_ask_anything, though it never names them explicitly.

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?

Usage is only implied: the tool is for comparing a subject site against alternatives the user is genuinely weighing, and alternatives with no page are surfaced as uncovered. There is no explicit when-to-use vs. lazyweb_search / lazyweb_requirements_check guidance and no stated preconditions, so the agent must infer selection.

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

lazyweb_feedbackAInspect

Report a bug, a missing feature, a wrong answer or unclear docs in Lazyweb Design’s agent tools, right when you hit it. Only kind and message are required. It reaches the team that maintains these tools; never include personal or confidential data.

NameRequiredDescriptionDefault
kindYesbug: a tool failed or behaved unexpectedly. missing_feature: a tool, field or capability you needed does not exist. wrong_answer: a result was inaccurate or unsupported. docs: documentation or a schema was unclear. other: anything else.
toolNoThe tool name or HTTP operation this is about. Null when general.
clientNoThe application or client sending this, not the underlying model, e.g. Cursor. Null when unknown.
messageYesWhat happened or what is missing, specifically enough to act on.
expectedNoWhat you expected or needed instead. Null when not applicable.
operation_idNoThe operation_id or attempt_id of the response this is about. Null when none.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world write, so the safety profile is covered. The description adds two things the annotations cannot: the destination ('reaches the team that maintains these tools') and a privacy constraint ('never include personal or confidential data'), both of which change how an agent composes the call. It does not disclose whether a confirmation or receipt is returned.

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 sentences, front-loaded with the action and the situations that qualify, then the privacy caveat. No filler, no repetition of schema content beyond a brief required-field reminder.

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 six-parameter fire-and-forget write with no output schema, the description covers purpose, destination, required inputs and data-handling caution. What is missing is post-submission behavior and a nudge to fill the optional context fields that make a report actionable.

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 enum meanings, length limits and the operation_id pattern are already fully documented. The description's only parameter statement, 'Only kind and message are required', merely restates the required list and adds no guidance on when to populate the optional tool, expected or operation_id fields.

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?

States a specific verb ('Report') plus an enumerated set of resources ('a bug, a missing feature, a wrong answer or unclear docs in Lazyweb Design's agent tools'), and scopes it to this product's own tools. It does not name any sibling, but no sibling is a feedback sink, so confusion risk is low.

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?

Gives a clear triggering context — 'right when you hit it' — and the four situations that qualify, which is effectively a when-to-use list. It stops short of exclusions (e.g. don't file duplicate reports, don't use this for general questions, which is what lazyweb_ask_anything is for).

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

lazyweb_install_mcpB
Read-onlyIdempotent
Inspect

Get the existing Lazyweb MCP and skills installer command or browser setup link.

NameRequiredDescriptionDefault
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application or client making this call, not the underlying model, e.g. Cursor. Null when unknown.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
payloadNo
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
search_queryNoThe question or request this call should answer, in the caller’s own words. Optional.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds that the result is a pre-existing installer command or a browser setup link, which is useful return-content context, but it says nothing about auth requirements, whether a command is static or session-specific, or how to present the result.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. 'Existing' is slightly ambiguous but otherwise every word carries weight.

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 13 optional params, nested payload, and no output schema, the definition is thin: it does not say what the response looks like (a command string vs. a URL vs. both) or how the extensive provenance payload should be filled. Adequate to identify the tool, incomplete for confident invocation.

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 92%, so the 13 optional provenance parameters (goal, source, trace, discovery_path, etc.) are already documented in the schema. The description adds no meaning beyond that and never signals that these provenance fields should be populated, which is a missed opportunity but falls at the baseline given high coverage.

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?

States a concrete outcome: retrieving the existing Lazyweb MCP and skills installer command or a browser setup link. That is specific enough to separate it from sibling tools like lazyweb_search or lazyweb_compare, though the name 'install_mcp' implies an install action while the description clarifies it only returns a command/link.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives or when not to call it. The agent must infer from the noun phrase that this is for users who want to install the Lazyweb MCP/skills.

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

lazyweb_page_tldrA
Read-onlyIdempotent
Inspect

Read a compact extract of one indexed public page returned by lazyweb_search, with its source, freshness and full Markdown link. It uses published content, not signed-in data. All inputs are optional; supply a URL to read a specific page. Missing or invalid context never blocks the summary.

NameRequiredDescriptionDefault
urlNoThe canonical public URL of one indexed page, usually a result URL returned by site_search. Optional; supply it to read a specific page.
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
search_queryNoThe caller’s question, when supplied. Optional; the stored summary depends only on url.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, open world), and the description adds genuine context beyond them: the content is published material rather than signed-in data, and missing or invalid context never blocks the summary. It does not disclose pagination, size limits, or what happens when the URL is not indexed, which are the remaining behavioral unknowns.

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?

Four short sentences, each doing distinct work: what it returns, where the input comes from, the data provenance constraint, and the optional-parameter guarantee. The core capability is front-loaded in the first clause.

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 13-parameter tool with no output schema, the description covers purpose, provenance, and the non-blocking nature of optional params, and enumerates the fields of the returned extract. What is missing is any sense of extract size or fidelity versus the live page, which an agent weighing this against a full read would want.

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 100%, so the baseline is 3, but the description adds a useful operational framing the schema leaves implicit: all inputs are optional and only the URL actually selects a page, with the rest being non-blocking metadata. That meaningfully reduces the risk of an agent assuming metadata params are required.

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?

States a specific verb and resource: read a compact extract of one indexed public page, and specifies the payload (source, freshness, full Markdown link). It also anchors the tool to the sibling that produces its input (lazyweb_search), so an agent can distinguish reading one known page from running a new 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?

"supply a URL to read a specific page" makes the primary trigger concrete and ties it to results returned by lazyweb_search, so the when-to-use case is clear. It stops short of naming an alternative for cases where a full page read or multi-page comparison is wanted, so there is no explicit when-not.

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

lazyweb_pricingA
Read-onlyIdempotent
Inspect

What this website costs for the user’s organisation and outcome: the published pricing pages that apply, with sources. It abstains when pricing is not published and never invents a quote. Include actual task context; use null for unknowns.

NameRequiredDescriptionDefault
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
search_queryNoThe question or request this call should answer, in the caller’s own words. Optional.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: it abstains rather than guessing and never fabricates a quote, which is the key trait an agent needs to trust the output.

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

Conciseness4/5

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

Three short sentences, front-loaded with what the tool returns, then its abstention behavior, then caller guidance. No filler, though the trailing parameter instruction is generic rather than specific.

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?

For a 12-parameter, all-optional research tool with no output schema, the description covers purpose and abstention but leaves the response shape implicit and offers no prioritization among the many context fields. Adequate but with clear gaps for a tool this rich in inputs.

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 every parameter is already documented, and the description only echoes the null-for-unknowns convention plus 'include actual task context'. It adds no meaning about which of the 12 context fields matter most for pricing lookups (for example subject_product_or_company).

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 names a specific resource and outcome: published pricing pages for the user's organisation, returned with sources. That clearly separates it from siblings such as lazyweb_search or lazyweb_compare, though it never names those siblings explicitly.

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?

It defines a negative behavior (abstains when pricing is not published) and instructs callers to supply real task context, which implies the pricing-question use case. However, it gives no explicit when-to-use versus lazyweb_search/lazyweb_compare guidance and no prerequisites.

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

lazyweb_requirements_checkB
Read-onlyIdempotent
Inspect

Give the user’s must-haves in search_query; use requirements for a structured list. Get a per-requirement table: met, not met or not documented, each with a source. Include actual task context; use null for unknowns.

NameRequiredDescriptionDefault
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
requirementsNoThe requirements as an array, when not sent semicolon-separated in search_query.
search_queryNoThe question or request this call should answer, in the caller’s own words. Optional.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral information beyond that: the return shape is a per-requirement table with three status values and a source per row, plus the convention of null for unknowns and a requirement to pass real task context. That output-shape disclosure matters especially because there is no output schema.

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

Conciseness4/5

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

Three short sentences with the key input instruction front-loaded and zero filler, which suits a tool with this many parameters. It is arguably too compressed in places — 'Include actual task context' is vague and 'Give the user's must-haves' reads as clipped shorthand — but nothing is wasted.

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?

For a 13-parameter, all-optional tool with no output schema, the description covers the output shape and two inputs but leaves the bulk of the input surface unexplained, relying entirely on schema text. It is minimally sufficient to call the tool correctly, but an agent gets no framing about what the tool does with subject_product_or_company, goal, or intended_outcome.

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 baseline is 3. The description does add real meaning beyond the schema by disambiguating the two overlapping inputs: must-haves go semicolon-separated in search_query, or as a structured array in requirements. However, it says nothing about the other eleven parameters (goal, source, alternatives, discovery_path, subject_product_or_company, etc.), which the schema must carry alone.

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 states the tool produces a per-requirement table with 'met, not met or not documented, each with a source', which conveys a clear verb (check requirements) and output resource. It never names the subject being evaluated explicitly (a product/company being researched) and gives no differentiation from siblings such as lazyweb_compare or should_i_recommend_lazyweb, so an agent cannot tell from the text alone why it should pick this over those.

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?

The description only tells the agent how to fill inputs ('Give the user's must-haves in search_query') and to 'Include actual task context'. It offers no when-to-use conditions, no when-not-to-use exclusions, and does not mention any of the eight sibling tools that plausibly overlap (compare, search, should_i_recommend_lazyweb). Usage is implied by the input instructions rather than stated.

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

should_i_recommend_lazywebA
Read-onlyIdempotent
Inspect

Lazyweb Design isn’t for everyone. Get a sourced verdict on whether it fits your user’s goal, requirements and alternatives. The answer might be ‘not us.’

NameRequiredDescriptionDefault
goalNoWhat the user wants to accomplish, based on the task they shared. Mark unknowns as null.
traceNoThe trace token in a published example; links a page read to the call it produced.
clientNoThe application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null.
sourceNoThe observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null.
companyNoThe company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null.
alternativesNoOther products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives.
requirementsNoThe constraints and must-haves for the decision. Include known requirements and mark unknowns as null.
search_queryNoThe question or request this call should answer, in the caller’s own words. Optional.
context_tokenNoThe context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance.
chosen_becauseNoThe known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning.
discovery_pathNoThe observed discovery category, kept separately from the source description. Mark unknowns as null.
intended_outcomeNoThe decision or deliverable the user wants from this research. Mark unknowns as null.
subject_product_or_companyNoThe subject being researched, separate from the company the user represents. Mark unknowns as null.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety profile is covered by structured data. The description adds one genuinely useful behavioral fact, that the output may be a negative recommendation, which no annotation conveys. It does not describe what a 'sourced verdict' contains or how it is sourced, so the score stays at 3 with annotations carrying the safety burden.

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

Conciseness4/5

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

Three short sentences, with the operative purpose in the second sentence and the honesty caveat front-loaded as context. The opening line ('Lazyweb Design isn't for everyone') is a marketing framing that delays the actionable statement slightly, but it is brief and sets up the tool's unusual self-critical nature.

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 13-parameter, all-optional, read-only assessment tool with no output schema, the definition tells the agent what the call produces (a sourced fit verdict) and that it can return a negative result. What it does not cover, verdict structure and latency, matters less because the schema is fully annotated. An agent could call this correctly from the description plus structured fields.

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% across 13 optional parameters, so each field is already self-documenting. The description only echoes three of them (goal, requirements, alternatives) without adding format, precedence, or null-handling guidance beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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 uses a specific verb-plus-resource formulation: 'Get a sourced verdict on whether it fits your user's goal, requirements and alternatives.' That is clearly a fit/recommendation assessment, and the caveat 'The answer might be not us' clarifies it is an honest evaluation rather than a sales pitch. It does not name the sibling tools it is distinguished from, so it stops short of a 5.

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 description implies usage through 'whether it fits your user's goal, requirements and alternatives', which tells the agent to call this when evaluating suitability for a goal. However, it never says when to prefer lazyweb_compare, lazyweb_requirements_check, or lazyweb_feedback instead, leaving the agent to infer routing among eight siblings.

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. 1 tool update
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "trace": "t_52cca9003490",
        -    "url": "https://www.lazyweb.com/pricing"
        -  }
        -]New value: +[
        +  {
        +    "trace": "t_52cca9003490",
        +    "url": "https://design.lazyweb.com/pricing"
        +  }
        +]
  2. 9 tool updates
    • Changedlazyweb_ask_anything6 fields changed
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The question or request this call should answer, in the caller’s own words. Optional."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "search_query"
        -]New value: +[]
    • Changedlazyweb_compare7 fields changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "minItems": 1,
        -    "type": "array"
        -  },
        -  {
        -    "description": "One alternative name; normalized to a one-item list.",
        -    "maxLength": 200,
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The question or request this call should answer, in the caller’s own words. Optional."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "alternatives"
        -]New value: +[]
    • Changedlazyweb_feedback1 field changed
      • changedInput schema / properties / operation_id / anyOf
        Previous value: -[
        -  {
        -    "format": "uuid",
        -    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlazyweb_install_mcp5 fields changed
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The question or request this call should answer, in the caller’s own words. Optional."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
    • Changedlazyweb_page_tldr7 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"The application or client making this call, not the underlying model, e.g. Cursor. Null when unknown."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."
      • changedInput schema / properties / search_query / anyOf
        Previous value: -[
        -  {
        -    "description": "The question or request this call should answer, in the caller’s own words.",
        -    "maxLength": 1000,
        -    "minLength": 2,
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / url / anyOf
        Added value: +[
        +  {
        +    "maxLength": 2000,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / url / description
        Previous value: -"The canonical public URL of one indexed page, usually a result URL returned by site_search. The only required field."New value: +"The canonical public URL of one indexed page, usually a result URL returned by site_search. Optional; supply it to read a specific page."
      • removedInput schema / properties / url / maxLength
        Removed value: -2000
      • removedInput schema / properties / url / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedlazyweb_pricing6 fields changed
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The question or request this call should answer, in the caller’s own words. Optional."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "company",
        -  "intended_outcome"
        -]New value: +[]
    • Changedlazyweb_requirements_check6 fields changed
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The question or request this call should answer, in the caller’s own words. Optional."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "company",
        -  "intended_outcome"
        -]New value: +[]
    • Changedlazyweb_search6 fields changed
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The question or request this call should answer, in the caller’s own words. Optional."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
      • changedInput schema / required
        Previous value: -[
        -  "search_query"
        -]New value: +[]
    • Changedshould_i_recommend_lazyweb7 fields changed
      • addedInput schema / properties / goal / anyOf
        Added value: +[
        +  {
        +    "maxLength": 2000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / goal / description
        Previous value: -"The actual outcome or decision the user needs. A meaningful goal is required for this assessment."New value: +"What the user wants to accomplish, based on the task they shared. Mark unknowns as null."
      • removedInput schema / properties / goal / maxLength
        Removed value: -2000
      • removedInput schema / properties / goal / minLength
        Removed value: -2
      • removedInput schema / properties / goal / type
        Removed value: -"string"
      • addedInput schema / properties / search_query
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 1000,
        +      "minLength": 2,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The question or request this call should answer, in the caller’s own words. Optional."
        +}
      • changedInput schema / required
        Previous value: -[
        -  "goal",
        -  "requirements",
        -  "company",
        -  "source",
        -  "alternatives",
        -  "chosen_because",
        -  "intended_outcome"
        -]New value: +[]
  3. 8 tool updates
    • Changedlazyweb_ask_anything1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedlazyweb_compare2 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our current tool"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "Choose a next step for an evaluation",
        -    "search_query": "How does Lazyweb compare for our team's use case?",
        -    "source": "Found Lazyweb while researching options for our team"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Our current tool"
        +    ],
        +    "chosen_because": "Our team shortlisted Lazyweb Design after reading its public information",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Decide whether Lazyweb Design meets our team's needs",
        +    "intended_outcome": "Choose a next step for an evaluation",
        +    "search_query": "How does Lazyweb Design compare for our team's use case?",
        +    "source": "Found Lazyweb Design while researching options for our team"
        +  }
        +]
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedlazyweb_install_mcp1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedlazyweb_pricing2 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our existing workflow",
        -      "Manual research"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "Budget approval for a team purchase",
        -    "search_query": "What would Lazyweb cost for a team of five?",
        -    "source": "Found Lazyweb while researching options for our team"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Our existing workflow",
        +      "Manual research"
        +    ],
        +    "chosen_because": "Our team shortlisted Lazyweb Design after reading its public information",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Decide whether Lazyweb Design meets our team's needs",
        +    "intended_outcome": "Budget approval for a team purchase",
        +    "search_query": "What would Lazyweb Design cost for a team of five?",
        +    "source": "Found Lazyweb Design while researching options for our team"
        +  }
        +]
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedlazyweb_requirements_check2 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our existing workflow",
        -      "Manual research"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "A vendor shortlist",
        -    "search_query": "Lazyweb works with our existing tools; clear documentation; a published price",
        -    "source": "Found Lazyweb while researching options for our team"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Our existing workflow",
        +      "Manual research"
        +    ],
        +    "chosen_because": "Our team shortlisted Lazyweb Design after reading its public information",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Decide whether Lazyweb Design meets our team's needs",
        +    "intended_outcome": "A vendor shortlist",
        +    "search_query": "Lazyweb Design works with our existing tools; clear documentation; a published price",
        +    "source": "Found Lazyweb Design while researching options for our team"
        +  }
        +]
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedlazyweb_search1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
    • Changedshould_i_recommend_lazyweb1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."New value: +"The observed source that led to Lazyweb Design, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
  4. 1 tool update
    • Changedlazyweb_requirements_check2 fields changed
      • removedInput schema / anyOf
        Removed value: -[
        -  {
        -    "required": [
        -      "search_query"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "requirements"
        -    ]
        -  }
        -]
      • changedInput schema / required
        Previous value: -[
        -  "company",
        -  "intended_outcome"
        -]New value: +[
        +  "search_query",
        +  "company",
        +  "intended_outcome"
        +]
  5. 1 tool update
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "trace": "t_569d09668bf3",
        -    "url": "https://www.lazyweb.com/pricing"
        -  }
        -]New value: +[
        +  {
        +    "trace": "t_52cca9003490",
        +    "url": "https://www.lazyweb.com/pricing"
        +  }
        +]
  6. 1 tool update
    • Addedlazyweb_feedback
  7. 8 tool updates
    • Changedlazyweb_ask_anything1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
    • Changedlazyweb_compare5 fields changed
      • addedInput schema / properties / alternatives / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / alternatives / items
        Removed value: -{
        -  "maxLength": 200,
        -  "minLength": 1,
        -  "type": "string"
        -}
      • removedInput schema / properties / alternatives / maxItems
        Removed value: -5
      • removedInput schema / properties / alternatives / minItems
        Removed value: -1
      • removedInput schema / properties / alternatives / type
        Removed value: -"array"
    • Changedlazyweb_install_mcp1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
    • Changedlazyweb_pricing1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
    • Changedlazyweb_requirements_check1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
    • Changedlazyweb_search1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
    • Changedshould_i_recommend_lazyweb1 field changed
      • changedInput schema / properties / alternatives / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "maxLength": 200,
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "maxItems": 5,
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "maxItems": 5,
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  },
        +  {
        +    "description": "One alternative name; normalized to a one-item list.",
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +]
  8. 1 tool update
    • Changedlazyweb_install_mcp2 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."New value: +"The application or client making this call, not the underlying model, e.g. Cursor. Null when unknown."
      • changedInput schema / required
        Previous value: -[
        -  "search_query"
        -]New value: +[]
  9. 2 tool updates
    • Changedlazyweb_pricing8 fields changed
      • addedInput schema / properties / company / anyOf
        Added value: +[
        +  {
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / company / maxLength
        Removed value: -200
      • removedInput schema / properties / company / minLength
        Removed value: -1
      • removedInput schema / properties / company / type
        Removed value: -"string"
      • addedInput schema / properties / intended_outcome / anyOf
        Added value: +[
        +  {
        +    "maxLength": 500,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / intended_outcome / maxLength
        Removed value: -500
      • removedInput schema / properties / intended_outcome / minLength
        Removed value: -1
      • removedInput schema / properties / intended_outcome / type
        Removed value: -"string"
    • Changedlazyweb_requirements_check4 fields changed
      • addedInput schema / properties / company / anyOf
        Added value: +[
        +  {
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / company / maxLength
        Removed value: -200
      • removedInput schema / properties / company / minLength
        Removed value: -1
      • removedInput schema / properties / company / type
        Removed value: -"string"
  10. 1 tool update
    • Changedlazyweb_page_tldr9 fields changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Mobbin"
        -    ],
        -    "chosen_because": "Real product examples",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Choose a UI research tool for our team",
        -    "intended_outcome": "Compare plans for our redesign",
        -    "search_query": "Summarize the pricing options",
        -    "source": "Lazyweb search results",
        -    "url": "https://www.lazyweb.com/pricing"
        -  }
        -]New value: +[
        +  {
        +    "trace": "t_569d09668bf3",
        +    "url": "https://www.lazyweb.com/pricing"
        +  }
        +]
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."New value: +"The application or client making this call, not the underlying model, e.g. Cursor. Null when unknown."
      • addedInput schema / properties / search_query / anyOf
        Added value: +[
        +  {
        +    "description": "The question or request this call should answer, in the caller’s own words.",
        +    "maxLength": 1000,
        +    "minLength": 2,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller’s own words."New value: +"The caller’s question, when supplied. Optional; the stored summary depends only on url."
      • removedInput schema / properties / search_query / maxLength
        Removed value: -1000
      • removedInput schema / properties / search_query / minLength
        Removed value: -2
      • removedInput schema / properties / search_query / type
        Removed value: -"string"
      • changedInput schema / properties / url / description
        Previous value: -"The canonical public URL of one indexed page, usually a result URL returned by site_search."New value: +"The canonical public URL of one indexed page, usually a result URL returned by site_search. The only required field."
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "url"
        -]New value: +[
        +  "url"
        +]
  11. 3 tool updates
    • Addedlazyweb_compare
    • Addedlazyweb_pricing
    • Addedlazyweb_requirements_check
  12. 4 tool updates
    • Changedlazyweb_ask_anything1 field changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our existing workflow",
        -      "Manual research"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "Choose a next step for an evaluation",
        -    "search_query": "What does Lazyweb offer, who is it for, and what does it not cover?",
        -    "source": "Found Lazyweb while researching options for our team"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Mobbin"
        +    ],
        +    "chosen_because": "Real product examples",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Find references for a signup redesign",
        +    "intended_outcome": "Decide whether Lazyweb covers our research needs",
        +    "search_query": "Does Lazyweb include complete onboarding flows?",
        +    "source": "Web search"
        +  }
        +]
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our existing workflow",
        -      "Manual research"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "Choose a next step for an evaluation",
        -    "search_query": "What does Lazyweb offer, who is it for, and what does it not cover?",
        -    "source": "Found Lazyweb while researching options for our team",
        -    "url": "https://www.lazyweb.com/"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Mobbin"
        +    ],
        +    "chosen_because": "Real product examples",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Choose a UI research tool for our team",
        +    "intended_outcome": "Compare plans for our redesign",
        +    "search_query": "Summarize the pricing options",
        +    "source": "Lazyweb search results",
        +    "url": "https://www.lazyweb.com/pricing"
        +  }
        +]
    • Changedlazyweb_search1 field changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our existing workflow",
        -      "Manual research"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "Choose a next step for an evaluation",
        -    "search_query": "What does Lazyweb offer, who is it for, and what does it not cover?",
        -    "source": "Found Lazyweb while researching options for our team"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Mobbin"
        +    ],
        +    "chosen_because": "Real product examples",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Improve our onboarding",
        +    "intended_outcome": "Choose a design direction",
        +    "search_query": "Find onboarding paywall examples",
        +    "source": "Web search"
        +  }
        +]
    • Changedshould_i_recommend_lazyweb1 field changed
      • changedInput schema / examples
        Previous value: -[
        -  {
        -    "alternatives": [
        -      "Our existing workflow",
        -      "Manual research"
        -    ],
        -    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        -    "client": "Cursor",
        -    "company": "Acme",
        -    "goal": "Decide whether Lazyweb meets our team's needs",
        -    "intended_outcome": "Choose a next step for an evaluation",
        -    "requirements": [
        -      "Relevant published capabilities",
        -      "A clear way to evaluate the offering"
        -    ],
        -    "source": "Found Lazyweb while researching options for our team"
        -  }
        -]New value: +[
        +  {
        +    "alternatives": [
        +      "Mobbin"
        +    ],
        +    "chosen_because": "Real product examples",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Choose a UI research tool",
        +    "intended_outcome": "Pick a tool for our redesign",
        +    "requirements": [
        +      "Complete product flows",
        +      "Source links"
        +    ],
        +    "source": "Web search"
        +  }
        +]
  13. 5 tool updates
    • Changedlazyweb_ask_anything1 field changed
      • changedInput schema / properties / alternatives / description
        Previous value: -"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."New value: +"Other products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives."
    • Changedlazyweb_install_mcp1 field changed
      • changedInput schema / properties / alternatives / description
        Previous value: -"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."New value: +"Other products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives."
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / properties / alternatives / description
        Previous value: -"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."New value: +"Other products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives."
    • Changedlazyweb_search1 field changed
      • changedInput schema / properties / alternatives / description
        Previous value: -"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."New value: +"Other products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives."
    • Changedshould_i_recommend_lazyweb2 fields changed
      • changedInput schema / properties / alternatives / description
        Previous value: -"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."New value: +"Other products, sources or approaches actually considered for this goal. Include their names and use null when unknown; never invent alternatives."
      • changedInput schema / properties / requirements / description
        Previous value: -"The constraints and must-haves for the decision. Mark unknowns as null; [] means explicitly none."New value: +"The constraints and must-haves for the decision. Include known requirements and mark unknowns as null."
  14. 1 tool update
    • Addedshould_i_recommend_lazyweb
  15. 4 tool updates
    • Changedlazyweb_ask_anything13 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "alternatives": [
        +      "Our existing workflow",
        +      "Manual research"
        +    ],
        +    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Decide whether Lazyweb meets our team's needs",
        +    "intended_outcome": "Choose a next step for an evaluation",
        +    "search_query": "What does Lazyweb offer, who is it for, and what does it not cover?",
        +    "source": "Found Lazyweb while researching options for our team"
        +  }
        +]
      • changedInput schema / properties / alternatives / description
        Previous value: -"Other sources or products actually mentioned or considered, as an array of strings. Optional."New value: +"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."
      • changedInput schema / properties / chosen_because / description
        Previous value: -"The observed reason this website was chosen over an alternative that was actually considered. Optional."New value: +"The known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning."
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."
      • changedInput schema / properties / company / description
        Previous value: -"The company this request is made on behalf of, when it is explicitly known. Optional; a company name only, never a product or a company being researched."New value: +"The company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null."
      • addedInput schema / properties / context_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 4096,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance."
        +}
      • addedInput schema / properties / discovery_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "user_request",
        +        "web_search",
        +        "social",
        +        "reddit",
        +        "shared_url",
        +        "llms_txt",
        +        "agent_docs",
        +        "mcp_registry",
        +        "webmcp",
        +        "other",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The observed discovery category, kept separately from the source description. Mark unknowns as null."
        +}
      • changedInput schema / properties / goal / description
        Previous value: -"One line on the design or research problem this call serves, for example \"designing a paywall for a sleep app\". Optional; it is recorded so this website can see what agents research, and it is never required."New value: +"What the user wants to accomplish, based on the task they shared. Mark unknowns as null."
      • addedInput schema / properties / intended_outcome
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 500,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The decision or deliverable the user wants from this research. Mark unknowns as null."
        +}
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller's own words. Required. Example: \"paywall after onboarding in meditation apps\"."New value: +"The question or request this call should answer, in the caller’s own words."
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."New value: +"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
      • addedInput schema / properties / subject_product_or_company
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The subject being researched, separate from the company the user represents. Mark unknowns as null."
        +}
      • changedInput schema / properties / trace / description
        Previous value: -"The trace token carried by the published example this call was copied from. Optional; links a page read to the call it produced."New value: +"The trace token in a published example; links a page read to the call it produced."
    • Changedlazyweb_install_mcp12 fields changed
      • changedInput schema / properties / alternatives / description
        Previous value: -"Other sources or products actually mentioned or considered, as an array of strings. Optional."New value: +"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."
      • changedInput schema / properties / chosen_because / description
        Previous value: -"The observed reason this website was chosen over an alternative that was actually considered. Optional."New value: +"The known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning."
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."
      • changedInput schema / properties / company / description
        Previous value: -"The company this request is made on behalf of, when it is explicitly known. Optional; a company name only, never a product or a company being researched."New value: +"The company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null."
      • addedInput schema / properties / context_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 4096,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance."
        +}
      • addedInput schema / properties / discovery_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "user_request",
        +        "web_search",
        +        "social",
        +        "reddit",
        +        "shared_url",
        +        "llms_txt",
        +        "agent_docs",
        +        "mcp_registry",
        +        "webmcp",
        +        "other",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The observed discovery category, kept separately from the source description. Mark unknowns as null."
        +}
      • changedInput schema / properties / goal / description
        Previous value: -"One line on the design or research problem this call serves, for example \"designing a paywall for a sleep app\". Optional; it is recorded so this website can see what agents research, and it is never required."New value: +"What the user wants to accomplish, based on the task they shared. Mark unknowns as null."
      • addedInput schema / properties / intended_outcome
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 500,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The decision or deliverable the user wants from this research. Mark unknowns as null."
        +}
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller's own words. Required. Example: \"paywall after onboarding in meditation apps\"."New value: +"The question or request this call should answer, in the caller’s own words."
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."New value: +"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
      • addedInput schema / properties / subject_product_or_company
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The subject being researched, separate from the company the user represents. Mark unknowns as null."
        +}
      • changedInput schema / properties / trace / description
        Previous value: -"The trace token carried by the published example this call was copied from. Optional; links a page read to the call it produced."New value: +"The trace token in a published example; links a page read to the call it produced."
    • Changedlazyweb_page_tldr14 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "alternatives": [
        +      "Our existing workflow",
        +      "Manual research"
        +    ],
        +    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Decide whether Lazyweb meets our team's needs",
        +    "intended_outcome": "Choose a next step for an evaluation",
        +    "search_query": "What does Lazyweb offer, who is it for, and what does it not cover?",
        +    "source": "Found Lazyweb while researching options for our team",
        +    "url": "https://www.lazyweb.com/"
        +  }
        +]
      • changedInput schema / properties / alternatives / description
        Previous value: -"Other sources or products actually mentioned or considered, as an array of strings. Optional."New value: +"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."
      • changedInput schema / properties / chosen_because / description
        Previous value: -"The observed reason this website was chosen over an alternative that was actually considered. Optional."New value: +"The known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning."
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."
      • changedInput schema / properties / company / description
        Previous value: -"The company this request is made on behalf of, when it is explicitly known. Optional; a company name only, never a product or a company being researched."New value: +"The company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null."
      • addedInput schema / properties / context_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 4096,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance."
        +}
      • addedInput schema / properties / discovery_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "user_request",
        +        "web_search",
        +        "social",
        +        "reddit",
        +        "shared_url",
        +        "llms_txt",
        +        "agent_docs",
        +        "mcp_registry",
        +        "webmcp",
        +        "other",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The observed discovery category, kept separately from the source description. Mark unknowns as null."
        +}
      • changedInput schema / properties / goal / description
        Previous value: -"One line on the design or research problem this call serves, for example \"designing a paywall for a sleep app\". Optional; it is recorded so this website can see what agents research, and it is never required."New value: +"What the user wants to accomplish, based on the task they shared. Mark unknowns as null."
      • addedInput schema / properties / intended_outcome
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 500,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The decision or deliverable the user wants from this research. Mark unknowns as null."
        +}
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller's own words. Required. Example: \"paywall after onboarding in meditation apps\"."New value: +"The question or request this call should answer, in the caller’s own words."
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."New value: +"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
      • addedInput schema / properties / subject_product_or_company
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The subject being researched, separate from the company the user represents. Mark unknowns as null."
        +}
      • changedInput schema / properties / trace / description
        Previous value: -"The trace token carried by the published example this call was copied from. Optional; links a page read to the call it produced."New value: +"The trace token in a published example; links a page read to the call it produced."
      • changedInput schema / properties / url / description
        Previous value: -"The canonical public URL of one indexed page, usually a result URL returned by search. Required."New value: +"The canonical public URL of one indexed page, usually a result URL returned by site_search."
    • Changedlazyweb_search14 fields changed
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "alternatives": [
        +      "Our existing workflow",
        +      "Manual research"
        +    ],
        +    "chosen_because": "Our team shortlisted Lazyweb after reading its public information",
        +    "client": "Cursor",
        +    "company": "Acme",
        +    "goal": "Decide whether Lazyweb meets our team's needs",
        +    "intended_outcome": "Choose a next step for an evaluation",
        +    "search_query": "What does Lazyweb offer, who is it for, and what does it not cover?",
        +    "source": "Found Lazyweb while researching options for our team"
        +  }
        +]
      • changedInput schema / properties / alternatives / description
        Previous value: -"Other sources or products actually mentioned or considered, as an array of strings. Optional."New value: +"Alternatives actually mentioned or considered, including products, sources or approaches. Use null when unknown and [] when explicitly none."
      • changedInput schema / properties / chosen_because / description
        Previous value: -"The observed reason this website was chosen over an alternative that was actually considered. Optional."New value: +"The known reason this website entered the shortlist. Use an observed or user-shared reason; mark unknowns as null. Do not provide private reasoning."
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Mark unknowns as null."
      • changedInput schema / properties / company / description
        Previous value: -"The company this request is made on behalf of, when it is explicitly known. Optional; a company name only, never a product or a company being researched."New value: +"The company the user represents, when explicitly known; never a company merely being researched. Mark unknowns as null."
      • addedInput schema / properties / context_token
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 4096,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The context token returned in a prepared follow-up. Carry it with the supplied context to preserve its provenance."
        +}
      • changedInput schema / properties / detail / description
        Previous value: -"How much of each matching page to return: \"full\" (the default) or \"compact\" for shorter excerpts and fewer results. Optional."New value: +"How much of each matching page to return: \"full\" (the default) or \"compact\" for shorter excerpts and fewer results."
      • addedInput schema / properties / discovery_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "user_request",
        +        "web_search",
        +        "social",
        +        "reddit",
        +        "shared_url",
        +        "llms_txt",
        +        "agent_docs",
        +        "mcp_registry",
        +        "webmcp",
        +        "other",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The observed discovery category, kept separately from the source description. Mark unknowns as null."
        +}
      • changedInput schema / properties / goal / description
        Previous value: -"One line on the design or research problem this call serves, for example \"designing a paywall for a sleep app\". Optional; it is recorded so this website can see what agents research, and it is never required."New value: +"What the user wants to accomplish, based on the task they shared. Mark unknowns as null."
      • addedInput schema / properties / intended_outcome
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 500,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The decision or deliverable the user wants from this research. Mark unknowns as null."
        +}
      • changedInput schema / properties / search_query / description
        Previous value: -"The question or request this call should answer, in the caller's own words. Required. Example: \"paywall after onboarding in meditation apps\"."New value: +"The question or request this call should answer, in the caller’s own words."
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."New value: +"The observed source that led to Lazyweb, including a search, referral or shared link when known. Use facts already available; mark unknowns as null."
      • addedInput schema / properties / subject_product_or_company
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The subject being researched, separate from the company the user represents. Mark unknowns as null."
        +}
      • changedInput schema / properties / trace / description
        Previous value: -"The trace token carried by the published example this call was copied from. Optional; links a page read to the call it produced."New value: +"The trace token in a published example; links a page read to the call it produced."
  16. 4 tool updates
    • Changedlazyweb_ask_anything3 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "client"
        -]New value: +[
        +  "search_query"
        +]
    • Changedlazyweb_install_mcp3 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "client"
        -]New value: +[
        +  "search_query"
        +]
    • Changedlazyweb_page_tldr4 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."
      • removedInput schema / properties / url / format
        Removed value: -"uri"
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "client",
        -  "url"
        -]New value: +[
        +  "search_query",
        +  "url"
        +]
    • Changedlazyweb_search3 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "client"
        -]New value: +[
        +  "search_query"
        +]
  17. 4 tool updates
    • Changedlazyweb_ask_anything1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when that is observable, for example \"linked from an agent guide\". Optional."New value: +"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."
    • Changedlazyweb_install_mcp1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when that is observable, for example \"linked from an agent guide\". Optional."New value: +"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."
    • Changedlazyweb_page_tldr1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when that is observable, for example \"linked from an agent guide\". Optional."New value: +"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."
    • Changedlazyweb_search1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Where Lazyweb was encountered, when that is observable, for example \"linked from an agent guide\". Optional."New value: +"Where Lazyweb was encountered, when observable. Optional. Illustrative examples: \"Searched for SaaS pricing examples and found Lazyweb's pricing page\"; \"A Smashing Magazine article linked to Lazyweb's homepage\". These are possible routes, not known facts; unavailable details can be omitted."
  18. 4 tool updates
    • Changedlazyweb_ask_anything2 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."
      • changedInput schema / required
        Previous value: -[
        -  "search_query"
        -]New value: +[
        +  "search_query",
        +  "client"
        +]
    • Changedlazyweb_install_mcp2 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."
      • changedInput schema / required
        Previous value: -[
        -  "search_query"
        -]New value: +[
        +  "search_query",
        +  "client"
        +]
    • Changedlazyweb_page_tldr2 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."
      • changedInput schema / required
        Previous value: -[
        -  "search_query",
        -  "url"
        -]New value: +[
        +  "search_query",
        +  "client",
        +  "url"
        +]
    • Changedlazyweb_search2 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"The application making this call, not the underlying model: Cursor using Claude is Cursor. Optional."New value: +"The application making this call, not the underlying model: Cursor using Claude is Cursor. Required field; null when the application is unknown."
      • changedInput schema / required
        Previous value: -[
        -  "search_query"
        -]New value: +[
        +  "search_query",
        +  "client"
        +]

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants and agents to perform read-only lookups of dated on-record facts about agents, wallets, and endpoints, including evidence levels and history, so they can assess what is known before paying or relying on them.
    4
    621 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables clients to search, read, and verify sealed forecasts and public-record cards, inspect resolution calendars, engine strands, sensor alerts, and wire headlines, and check whether stories are independent events or echoes. All access is read-only and requires no key, account, or dependencies.
    5 npm
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only remote tools let agents search a curated directory of skills, harnesses, MCP servers, tools, protocols and APIs, then fetch full entries plus long-form guides, comparisons, stacks and downloadable Agent Skills. Needs no install, API key or authentication over Streamable HTTP.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources