Annolux Search

io.github.eason4kim-rocketPublished by GitHub account eason4kim-rocketv0.1.2Updated Oct 24, 2026

Search a curated English and Chinese web index through one read-only MCP tool.

Overview

AI-generated overview

Annolux Search gives an assistant one read-only web search tool over a curated English and Chinese technical index, with a timestamp on every result.

What you can do
Search a curated English and Chinese technical index with a single read-only search tool, optionally restricted to exact hostnames and deduplicated, returning ranked results with an explicit fetched_at timestamp and provenance for each hit.
When to use it
Useful when an assistant needs grounded, citable technical sources in English or Chinese, such as official docs, RFCs, GitHub or arXiv, and when you want to limit searches to specific domains for lower-hallucination answers.
Requirements
Runs locally over stdio, typically via npx with Node.js 18 or later, or from the published container image. An Annolux account API key in ANNOLUX_API_KEY is needed for the full monthly allowance; without it the server starts in a sandbox mode. ANNOLUX_API_URL optionally sets the API origin. Network access to the Annolux API is required.
Before you install
Queries are sent to the Annolux search API, a third party. The ANNOLUX_API_KEY secret is passed through the process environment. Searches consume account credits: the README states one credit per successful response, with errors, timeouts and rate limits free, and paid plans are listed. The tool is described as read-only.

Installation

In SourceWeft

  1. Open Annolux Search in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

⚡ Annolux

Curated English & Chinese Search API and MCP for AI Agents & RAG Systems

Search that can show its work. Every result carries an explicit fetched_at timestamp and provenance.

[Go Version] [NPM Version] [Smithery Badge] [Glama MCP] [Add to Cursor] [MCP Protocol] [License] [Free Tier]

🌐 Website • 📖 API Docs • ⚡ MCP Quickstart • 📊 Frozen Benchmarks • 📁 Examples • 🇨🇳 中文文档


💡 Why Annolux?

Current web search APIs for AI agents suffer from three fatal flaws:

  1. Garbage in, garbage out: Commercial search engines index millions of SEO farms, scraped spam, and auto-generated noise that pollute LLM context windows.
  2. Missing time-provenance: LLMs hallucinate current state because search APIs omit the exact snapshot timestamp (fetched_at).
  3. Predatory billing: Paying full price for failed requests, empty outputs, or rate-limited retries.

Annolux solves this with an agent-first curated approach:

  • 🛡️ Curated Bilingual Technical Index: High-signal English & Chinese corpus (Rust, Go, Python, AI/ML, Official Docs, RFCs, GitHub, arXiv).
  • 🕒 Explicit fetched_at Timestamp: Every ranked hit reveals the exact second it was ingested—enabling grounded citations and temporal reasoning.
  • 🎯 Predictable Ledger Billing: Exactly 1 credit per successful 2xx response. Errors, timeouts (504), rate limits (429), and bad requests cost 0 credits.
  • 🧩 Native Model Context Protocol (MCP): Zero setup across Claude Code, Cursor, Windsurf, Cline, Zed, and Claude Desktop.
  • 🚀 1,000 Free Credits Every Month: Sign in with GitHub or Google at annolux.com and start querying in 30 seconds.

🥊 Comparison: Annolux vs. Generic Search APIs

Feature / MetricAnnoluxExa (Metaphor)TavilySerper / Google
Index QualityCurated Tech & Knowledge (EN/ZH)Web-wide neuralWeb-wide aggregatorEntire Web (noisy SEO)
Chinese (ZH) Tech CorpusFirst-class native bilingual FTSModerateWeak / TranslatedMixed with content farms
Explicit Snapshot Timestamp✅ fetched_at on every result❌ Inconsistent❌ Omitted❌ Snippet approximate only
Billing Guarantee✅ 1 credit only on 2xx successRequest-basedRequest-basedRequest-based
Failed / Timeout Queries🆓 0 Credits charged❌ Billed❌ Billed❌ Billed
MCP Tool SurfaceSingle lean search_web (Minimal token waste)Multiple bulky toolsMulti-step toolsNeeds custom bridge
Domain Restriction✅ Exact hostname filtering (domains)✅ Supported✅ SupportedLimited site: query
Free Starter Tier1,000 credits / monthLimited trial1,000 / mo2,500 one-time

📦 Quick Installation

Node.js 18+ is the only prerequisite. Start in the zero-config sandbox—no account or API key is required:

bash
npx -y annolux-mcp

For the full monthly allowance, create a free key at annolux.com and pass it through the process environment:

bash
ANNOLUX_API_KEY=ann_live_YOUR_API_KEY npx -y annolux-mcp

🔌 MCP Integration

Annolux implements the official Model Context Protocol (MCP) specification with a single, high-efficiency tool: search_web.

⚡ 1-Click Installation (Cursor & Smithery)

  • Cursor: Click [Add to Cursor] to install natively via deep link.
  • Smithery CLI:
    bash
    npx -y @smithery/cli install annolux-mcp --client claudenpx -y @smithery/cli install annolux-mcp --client cursor
  • Glama Online Playground: Test queries instantly without local setup on Glama.ai.

1. Claude Code

bash
claude mcp add annolux -- npx -y annolux-mcp

This starts in sandbox mode. To use an account key, add it with -e ANNOLUX_API_KEY=ann_live_YOUR_API_KEY before --.

2. Cursor / Windsurf

Add to your project .cursor/mcp.json or global configuration:

json
{  "mcpServers": {    "annolux": {      "command": "npx",      "args": ["-y", "annolux-mcp"],      "env": {        "ANNOLUX_API_KEY": "ann_live_YOUR_API_KEY"      }    }  }}

3. Claude Desktop

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "annolux": {      "command": "npx",      "args": ["-y", "annolux-mcp"],      "env": {        "ANNOLUX_API_URL": "https://api.annolux.com",        "ANNOLUX_API_KEY": "ann_live_YOUR_API_KEY"      }    }  }}

🚀 HTTP API Quickstart

Standard Search Endpoint

http
POST https://api.annolux.com/api/v1/searchAuthorization: Bearer ann_live_YOUR_API_KEYContent-Type: application/json
json
{  "query": "tokio async runtime memory model",  "domains": ["tokio.rs", "docs.rs", "github.com"],  "deduplicate": true,  "limit": 5,  "timeout": 10,  "ranking": "default"}

Python

python
import osimport requests
response = requests.post(    "https://api.annolux.com/api/v1/search",    headers={"Authorization": f"Bearer {os.environ.get('ANNOLUX_API_KEY')}"},    json={        "query": "DeepSeek R1 architecture reinforcement learning",        "limit": 5,        "deduplicate": True    },    timeout=15)
data = response.json()for result in data.get("results", []):    print(f"[{result['fetched_at']}] {result['title']} -> {result['url']}")

TypeScript / Node.js

typescript
const res = await fetch("https://api.annolux.com/api/v1/search", {  method: "POST",  headers: {    "Authorization": `Bearer ${process.env.ANNOLUX_API_KEY}`,    "Content-Type": "application/json"  },  body: JSON.stringify({    query: "vLLM PagedAttention implementation details",    limit: 5,    deduplicate: true  })});
const data = await res.json();console.log(`Credits Remaining: ${res.headers.get("X-Annolux-Credits-Remaining")}`);console.log(data.results);

cURL

bash
curl -s -X POST https://api.annolux.com/api/v1/search \  -H "Authorization: Bearer ann_live_YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "query": "Go sync.Pool benchmark best practices",    "limit": 3  }' | jq .

🏛️ Architecture & Mechanics

┌─────────────────────────────────────────────────────────────┐│                 AI Agent / RAG Application                  ││       (Claude Code / Cursor / LangChain / Custom LLM)       │└──────────────────────────────┬──────────────────────────────┘                               │               Stdio MCP / HTTPS REST Request                               │                               ▼┌─────────────────────────────────────────────────────────────┐│                  Annolux Gateway API Engine                 ││  ┌─────────────────────────┐     ┌───────────────────────┐  ││  │ 1. Account & Rate Limit │ ──► │ Reserve 1 Credit      │  ││  │    (5 RPS, Burst 10)    │     │ in /data/accounts.db  │  ││  └─────────────────────────┘     └───────────────────────┘  ││                                              │              ││                                              ▼              ││  ┌───────────────────────────────────────────────────────┐  ││  │ 2. Bilingual FTS Ranker (/data/index.db)              │  ││  │    • Curated English & Chinese Corpus                 │  ││  │    • SimHash Content-Deduplication Engine             │  ││  │    • Domain Filter & Exact Substring Match            │  ││  └───────────────────────────────────────────────────────┘  ││                                              │              ││                                              ▼              ││  ┌───────────────────────────────────────────────────────┐  ││  │ 3. Atomic Response & Ledger Settlement                │  ││  │    • 2xx Success ──► Commit 1 Credit & Attach Timing  │  ││  │    • 4xx/5xx Err ──► Release Reservation (0 Cost)     │  ││  └───────────────────────────────────────────────────────┘  │└──────────────────────────────┬──────────────────────────────┘                               │          JSON with exact `fetched_at` & verified URL                               │                               ▼                     [ Grounded LLM Response ]

📊 Search Quality & Frozen Benchmarks

Annolux evaluates search retrieval performance against an immutable, frozen blind set of 40 complex bilingual queries. The ranking weights are never tuned on the test set.

MetricFirst Gate BaselinePrelaunch Verification Gate
Hit@172.5%72.5%
Hit@382.5%82.5%
Hit@1085.0%85.0%
MRR@100.781250.78125
P95 Latency532 ms356 ms
5xx Error Rate0.00%0.00%

All benchmarks are evaluated client-side under full concurrency load.


💳 Transparent Pricing

PlanPriceCreditsRate LimitsBilling Rules
Free$01,000 / month5 RPS / Burst 10Free forever, no credit card required
Pro$29 / mo20,000 / mo5 RPS / Burst 101 success = 1 credit, no rollover
Scale$99 / mo100,000 / mo5 RPS / Burst 101 success = 1 credit, no rollover
  • No overage charges.
  • Errors, rate-limits, and timeouts are 100% free (0 credit charged).
  • Up to 3 active API keys per account.

📁 Examples & Recipes

Check the examples/ directory for production-ready starters:


🤝 Community & Support


📄 License

Annolux is open-source software licensed under the Apache License, Version 2.0.

Source: README.md at commit d29bba0

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts