NLWeb
Act NLWeb is a collection of open protocols and an accompanying open-source reference implementation for adding a conversational, natural-language question-answering interface to a website, grounded in the Schema.org and RSS structured markup that the README says over 100 million sites already publish [1]. Its central design idea is that a site's existing semi-structured markup can double as the semantic layer a natural-language interface needs, so adding a conversational endpoint does not require rebuilding a site's content model from scratch.
Overview
NLWeb solves the problem of giving both human users and AI agents a single natural-language entry point into a site's content: every NLWeb instance exposes a core ask method — as a plain endpoint and, natively, as an MCP server tool — that takes a natural-language question and returns a JSON response using Schema.org vocabulary [1]. The project's own framing is explicit: "NLWeb is to MCP/A2A what HTML is to HTTP" — i.e. it proposes to be the content layer that sits on top of the agent-to-tool and agent-to-agent transport layers, not a competitor to either [1].
NLWeb does not itself specify agent-to-agent coordination (it says A2A support is 'soon', not shipped) and it explicitly disclaims being a definitive or complete answer: the README frames the reference implementation as "proof-of-concept demonstrations showing one possible approach" and invites the community to build "diverse, innovative implementations that surpass our examples" [1]. It also does not define a standardized discovery mechanism (no well-known path is specified for locating a site's ask endpoint), and the project's canonical protocol-specification page, linked from the README as nlweb.ai/spec, did not resolve during this verification pass (2026-09-06), so the wire-level protocol details beyond "Schema.org-shaped JSON over an ask method" could not be independently confirmed from a live spec document [3].
As of this check, the reference implementation's canonical home has moved: github.com/microsoft/NLWeb now redirects to github.com/nlweb-ai/NLWeb, a separate GitHub organization, rather than staying under the microsoft org [2]. This is a governance-relevant shift the seed record's plain "Microsoft" governance label did not capture — Microsoft originated the project and still supports it (contact is an @microsoft.com address, and Microsoft's trademark guidance is referenced in the README), but the repository itself now lives under a nominally independent community org. Support spans multiple vector stores (Qdrant, Snowflake, Milvus, Azure AI Search, Elasticsearch, Postgres, Cloudflare AutoRAG) and multiple LLM providers (OpenAI, DeepSeek, Gemini, Anthropic, Inception, HuggingFace), which is a broader integration surface than a typical single-vendor prototype, but no independent count of live NLWeb deployments was found, so adoption remains unmeasured. What is unresolved: why nlweb.ai is down, whether the org move to nlweb-ai signals an intended governance change (e.g. toward a foundation or away from Microsoft) or is incidental, and what the actual ask request/response schema is now that the spec page is unreachable.
Discovery and probe
None standardized; the project's own README points to a spec page (nlweb.ai/spec) for the protocol details, but that domain does not currently resolve · none confirmed; nlweb.ai (including nlweb.ai/spec) was unreachable via curl and firecrawl in this verification pass
POST {origin}/ask
parse: a JSON response using Schema.org vocabulary answering the natural-language question in the request body proves NLWeb (or an MCP-exposed equivalent) is present; every NLWeb instance also runs as an MCP server exposing an `ask` tool/method
on absent: connection refused, 404, or a non-Schema.org JSON shape means no NLWeb endpoint is present
History
- 2026-09-05 — seeded from Exa Agent research run
- 2026-09-06 — verified against github.com/microsoft/NLWeb (redirects to github.com/nlweb-ai/NLWeb); nlweb.ai/spec confirmed unreachable via curl and firecrawl
Instances
- NLWeb reference implementation (Python) · Recorded 2026-09-06 · service
- Microsoft News (NLWeb live endpoint) · Observed 2026-06-05 · site
- TripAdvisor · Observed 2026-05-29 · business
- Shopify (Agentic Storefronts on NLWeb) · Observed 2026-03-09 · business
See also
References
- NLWeb natively supports MCP; every NLWeb instance also acts as an MCP server exposing a core `ask` method that takes a natural-language question and returns Schema.org-formatted JSON. The project describes itself as 'to MCP/A2A what HTML is to HTTP' and as a proof-of-concept the community is invited to surpass with its own implementations. — https://github.com/nlweb-ai/NLWeb (2026) VERIFIED
- github.com/microsoft/NLWeb redirects to github.com/nlweb-ai/NLWeb, i.e. the reference implementation's canonical home moved off the microsoft org to a dedicated community org between the original Microsoft announcement and this check. — https://github.com/microsoft/NLWeb (2026-09-06) VERIFIED
- nlweb.ai (the domain hosting the protocol spec referenced by the README) did not resolve/respond via curl or firecrawl_scrape on 2026-09-06, corroborating the task brief that nlweb.ai is down. — https://nlweb.ai/spec (2026-09-06) REPORTED
Disputed: The spec_url for NLWeb's actual wire protocol (nlweb.ai/spec) is unreachable, so this row's `spec_url` points to the GitHub README (which describes but does not itself specify the protocol) rather than to a canonical spec document. The protocol details (exact `ask` request/response shape beyond 'Schema.org JSON') could not be independently confirmed from a live spec in this pass.