EnglishEN EspañolES FrançaisFR DeutschDE ItalianoIT PortuguêsPT 中文ZH 日本語JA 한국어KO РусскийRU NederlandsNL
← Back to all articles

What Is NLWeb? A Practical Guide to the /ask Endpoint and Conversational Websites

NLWeb is an open project, announced by Microsoft in May 2025, that gives a website a natural-language query endpoint: you send a question to /ask, and the site answers with structured Schema.org data drawn from its own content. It was started by R.V. Guha, who also created RSS and Schema.org, and its stated aim is to do for conversational interfaces what HTML did for documents. Every NLWeb instance is also an MCP server, so the same endpoint serves people typing questions and agents calling tools. This guide explains the pieces, shows a request and response, and describes how we run one on this site.

Key facts

  • 2025 — Year Microsoft announced NLWeb
  • /ask — The natural-language query endpoint
  • Schema.org — The vocabulary responses are expressed in
  • MCP — Every NLWeb instance also acts as an MCP server

The idea

Websites already describe themselves to machines with Schema.org markup and RSS feeds. NLWeb builds on that: it loads a site’s structured content into a vector store, and answers natural-language questions with results expressed as Schema.org types. Because the answer is structured, an agent can use it directly instead of parsing prose. Because it is a standard endpoint, any client can call any NLWeb site the same way.

A request and a response

A query is a plain HTTP call:

GET /ask?query=how+much+does+a+custom+website+cost&streaming=0

The response is JSON whose items are Schema.org objects, for example a list of Service or BlogPosting items, each with a name, URL, description and nested data such as FAQs. NLWeb defines modes for different jobs: returning a list of matching items, summarising them, or generating an answer from them. By default responses stream as Server-Sent Events; non-streaming JSON is available.

Why it doubles as an MCP server

NLWeb exposes its query capability as an MCP tool as well as over plain HTTP. That means an assistant connected over MCP can ask the site questions in the same way a chat box on the page would. For a site that already has an MCP server, NLWeb is a complementary way in: MCP tools are precise (get_hours), while /ask is open-ended (“which of your services suit a restaurant?”). See adding an MCP server and MCP vs A2A.

What you need to run it

  • Good structured data or feeds for your content. NLWeb is only as good as the Schema.org it ingests; see our schema markup guide.
  • A vector store and an embedding model, which the reference implementation supports in several flavours.
  • A language model for the summarise and generate modes.
  • Somewhere to run it. The reference implementation is Python; the protocol is simple enough to implement in other languages.

How we run it here

This site exposes /ask: send a query by GET or POST and it returns Schema.org-typed JSON (an ItemList of Service, BlogPosting and WebPage items, with nested FAQPage data), with list, summarize and generate modes, streaming by default and streaming=0 for plain JSON. It is listed with our other machine-readable surfaces on our agent-ready page and in our llms-full.txt.

Should a small business add NLWeb?

Honestly, not first. NLWeb shines on sites with a lot of structured content: catalogues, recipe sites, publishers, documentation. A ten-page local business site gets more from the basics in the agent-readiness checklist: access, indexing, schema, llms.txt, Markdown and a small MCP server. Add NLWeb when you have enough content that people would genuinely ask it questions.

Discovery

Agents need to know /ask exists. List it in llms.txt, in your OpenAPI description and api-catalog if you publish them, and in agents.txt. See agent discovery files.

Related reading

Frequently asked questions

What is NLWeb?

An open project announced by Microsoft in May 2025 that gives a website a natural-language /ask endpoint returning Schema.org-structured answers from the site's own content.

Who created NLWeb?

It was started by R.V. Guha, who also created RSS and Schema.org.

Is NLWeb the same as MCP?

No, but every NLWeb instance also acts as an MCP server, so agents can call it over MCP as well as plain HTTP.

What does an NLWeb response look like?

JSON containing Schema.org objects such as Service, Product or BlogPosting, optionally streamed as Server-Sent Events.

Does a small business need NLWeb?

Usually not first. It is most useful for sites with a lot of structured content. Basics like indexing, schema, llms.txt and a small MCP server come first.

Want this done for your site?

Score your site on WebAgentScan, or ask us to set up the AI Indexing Pack for you.

Get a free quote