Skip to content

Search Service

URL: search.irregulars.io | Source: apps/search-service/

The Search Service provides unified search across the entire IrregularChat ecosystem — wiki pages, Q&A threads, forum discussions, news articles, documentation, and web results. It also powers the MCP (Model Context Protocol) server that lets AI assistants like Claude Code query community knowledge.

Community knowledge is scattered across 14+ services, a wiki, a forum, Signal groups, and external resources. Without unified search, members have to know which service holds the answer before they can find it. The Search Service solves this by indexing everything and presenting results in one interface.

Edge-cached (D1):

  • Wiki — Irregularpedia articles
  • Q&A — Community questions with answers and confidence scores
  • RSS — Curated news with enrichment (rage score, sentiment, entity extraction)
  • TIL — “Today I Learned” summaries from Signal messages
  • Files — Archived documents with AI summaries
  • Outline — Team documentation from Outline wiki

Live callback (via Signal Bot API):

  • Chat — Message search across Signal groups with context expansion
  • Tasks — Task Exchange entries
  • Breakout — Breakout discussion groups
  • Web — External results via SearXNG + Brave fallback
TierPipelineBest For
fastKeyword only + jargon expansionQuick lookups, known-item search
allKeyword + AI orchestration + synthesisGeneral questions, how-to queries
deepAll above + query refinement roundTough questions, research topics
  1. Understand — Jargon expansion (e.g. “UAS” → “drone”) + AI orchestrator classifies question type and recommends source weights
  2. Search — Parallel fanout across all indexed and callback sources
  3. Expand — Chat context expansion for top hits (retrieves surrounding messages)
  4. Rank & Synthesize — BM25-style relevance scoring, deduplication, AI-generated answer from top sources
  • Semantic Search — Vector embeddings (OpenAI) for meaning-based matching, synced hourly from Signal bot PostgreSQL to D1
  • Public Endpoint/public/search for SearXNG-compatible queries (no auth, rate-limited 60 req/min, no AI synthesis)
  • Manipulation Detection — RSS results include rage scores, sentiment analysis, and entity tags
  • Click Analytics — Relevance feedback tracking for search quality improvement
CommandDescription
!search <query>Search across all community content
!wikiask <question> / !waAI-powered Q&A using wiki + synthesis

!wikiask uses the search service’s semantic search plus AI synthesis to answer questions directly from wiki content.

The search-mcp package (apps/search-mcp/) exposes 5 tools via Streamable HTTP transport for AI assistants:

ToolDescription
search_communityFull AI-guided search with synthesis across all sources
search_community_fastQuick keyword search without AI overhead
search_wikiSemantic search specialized for wiki (embeddings + keyword)
search_newsNews search with manipulation analysis (rage scores, sentiment)
search_questionsBrowse/search Q&A — find unanswered questions, knowledge gaps

This enables Claude Code, Cursor, and other MCP-compatible AI assistants to query community knowledge during development sessions.

Signal Bot → Search Service API (query)
Community Portal → Search Service (embedded search bar)
QA Form → Search Service (search across Q&A content)
Search Service → SearXNG (web results)
Search Service → Brave Search (fallback)
Search Service → Signal Bot API (chat archives)
search-mcp → Search Service (MCP wrapper for AI assistants)
  • Community Portal — Embedded search bar on irregulars.io
  • QA Form — Cross-references Q&A content via Search Service
  • Signal Bot — Provides !search command and archives for indexing
  • SearXNG — Self-hosted metasearch engine for privacy-respecting web results
  • search-mcp — MCP protocol bridge for AI assistants
ComponentTechnology
RuntimeCloudflare Workers
FrameworkHono
DatabaseD1 (search index)
Web SearchSearXNG (primary), Brave Search API (fallback)
AuthAPI key authentication for bot/service access