{"adoption": {"forks": 699, "observed_at": "2026-08-28T04:09:40.990775+00:00", "stars": 6250}, "canonical_url": "https://ross.abutalabs.com/products/nlweb", "card": {"archived": false, "artifact_type": "framework", "description": "Main reference implementation for NLWeb, implemented in Python.", "domain": ["artificial-intelligence", "web-development", "chatbots", "apis"], "enriched": true, "function": ["mcp", "rag", "chatbot", "web-framework", "search-engine", "api-framework"], "health_score": 78, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["nlweb-ai/NLWeb"], "name": "nlweb-ai/NLWeb", "platform": ["python", "windows", "self-hosted"], "pushed_at": "2026-08-11T20:35:58+00:00", "repo": "nlweb-ai/NLWeb", "stars": 6250, "tags": ["schema-org", "conversational-search", "mcp-server", "natural-language-interface", "vector-search", "a2a", "ai-agents", "retrieval-augmented-generation", "linux", "macos", "web-server"], "topics": [], "urls": [], "use_cases": ["add a conversational search endpoint to my website", "let AI agents query my site via MCP", "build a natural language interface over structured site content like recipes or products", "expose Schema.org data through a chat API", "implement an MCP server for my existing site", "enable ask-a-question search over my catalog"], "what_it_is": "NLWeb is an open protocol and Python reference implementation for adding natural language conversational interfaces to websites, leveraging Schema.org and RSS markup as a semantic layer. Every NLWeb instance also acts as an MCP server, exposing an `ask` method so the same natural language APIs serve both humans and AI agents.", "when_to_avoid": ["you need a fully polished production product rather than a proof-of-concept reference implementation", "your site content has no structured or semi-structured markup to leverage", "you need deep customization beyond what the sample code demonstrates"], "when_to_choose": ["your site already has structured markup (Schema.org, RSS) you want to query in natural language", "you want one endpoint serving both human chat UIs and AI agents via MCP", "you want a vendor-neutral, platform-agnostic reference implementation with many vector store options"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nlweb", "repo": "nlweb-ai/NLWeb", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.990775+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:47:08.890161+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf3dc481d83855bcffa5961434018e5bd754e26d88b800e7fac577a5c3eea7a5", "fetched_at": "2026-08-28T04:09:40.990775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nlweb-ai/NLWeb"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 35, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 492, "days_push": 22, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}