Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

NLWeb

No security coverage Under active development

NLWeb lets AI assistants and other applications search your Drupal website's public content through a standard interface and receive structured results with links to the original pages.

You choose which content is available. Applications send a search question to your site and receive page titles, links, language information and optional descriptions. This helps connect public websites, documentation and knowledge bases to applications that support the NLWeb protocol.

Features

  • NLWeb search endpoint: provides POST /ask using the NLWeb 0.55 stateless, non-streaming list profile.
  • Structured results: returns Schema.org WebPage metadata with canonical links to the original content.
  • Content selection: configure allowed content types and languages, optional descriptions, and boolean fields that exclude content from results.
  • Current access checks: checks publication status, anonymous access, field access and the current content before returning each result. Logged-in administrators receive the same public-content view.
  • Search API integration: use a selected index containing local Drupal content through the included NLWeb Search API submodule.
  • Optional MCP integration: expose the same search operation as an ask tool through MCP Server.
  • Operational controls: disabled by default, with configurable request limits, result limits and shared rate limits.
  • Extension interfaces: developers can add retrieval providers, content eligibility rules and custom result mappings.

Use NLWeb when another application needs a standard way to search your site's public information. Search relevance comes from your configured backend: a keyword index remains keyword-based. The module does not add a chat widget or generate AI answers.

Post-Installation

  1. Enable NLWeb and, for the bundled search integration, NLWeb Search API.
  2. Create and populate a Search API index containing the public content you want to expose. Use an index dedicated to the current site and review its access and exclusion settings.
  3. Select the index at /admin/config/services/nlweb/search-api.
  4. Open /admin/config/services/nlweb. Choose the search provider, allowed content types and languages, and your site's canonical HTTPS origin. Configure descriptions and exclusion fields if needed.
  5. Confirm that you have reviewed the public content selection, then enable queries.
  6. Grant Query public content through NLWeb to the intended roles. Grant it to the anonymous role if the endpoint should be public. Anonymous visitors must also be allowed to view the underlying content.
  7. Test POST /ask with the request examples in the README or a compatible client.

The module uses existing content; it does not create a content type or require changes to text formats. Changing the selected Search API index clears the public-content confirmation and requires another review.

For MCP access, enable NLWeb MCP, configure MCP Server and grant its separate transport permission to the intended callers. Review the other tools available through that server before making it public.

Sites using password gates, subscriptions or other protection outside Drupal's entity access system need an additional eligibility integration before exposing affected content.

Additional Requirements

  • Drupal: Drupal 10.3 or later within the 10.x series, or Drupal 11, with a compatible PHP version.
  • A retrieval provider: the included adapter requires Search API 1.40 or later within the 1.x series and a configured backend. Developers can supply another provider through the module's retrieval interface.
  • Optional MCP support: requires PHP 8.3 or later and MCP Server. The adapter is tested with MCP Server 2.0.0-beta6 and its SDK dependency 0.8.1. Follow the README's installation instructions for the tested version.

No LLM, vector database or paid AI service is required for the database search setup. Other search backends may introduce their own services, credentials and costs.

Search API Database Search, included with Search API, is a practical starting point for evaluation and smaller sites. Enable its Ignore case processor for ordinary case-insensitive searches and rebuild the index after changing processors. See https://www.drupal.org/project/search_api.

MCP Server adds access for compatible MCP clients through the optional NLWeb MCP submodule. See https://www.drupal.org/project/mcp_server.

Similar projects

Search API provides indexing and search infrastructure. NLWeb builds on that infrastructure to expose public search results in the NLWeb protocol.

MCP Server provides a general framework for exposing Drupal tools through MCP. NLWeb adds a specific public-content search tool that shares its implementation with the HTTP endpoint.

Drupal core's JSON:API module exposes Drupal content entities through a resource-oriented API. NLWeb provides a search operation returning selected public page metadata. See https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module.

Initial release scope

This initial implementation supports the NLWeb 0.55 list profile. Generated answers, streaming responses, stored conversations, pagination and external Search API datasources are outside its current scope. MCP support uses a prerelease dependency; check the documented compatibility before upgrading it.

Ask your assistant about NLWeb

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
1
Tracked since
Oct 2026
Latest release
1 hour ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Core PHP Release date
1.0.x-dev Dev 10–11 PHP ^8.1 Oct 20, 2026