Annolux Search

io.github.eason4kim-rocket由 GitHub 帳號 eason4kim-rocket 發布v0.1.2更新於 Oct 24, 2026

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

概覽

AI 產生的概覽

Annolux Search 為助理提供一個唯讀網頁搜尋工具,檢索精選的中英文技術索引,每筆結果都附時間戳。

可以做什麼
透過一個唯讀搜尋工具檢索精選的中英文技術索引,可依精確主機名稱限定範圍並去重,回傳排序結果,每筆命中都帶有明確的 fetched_at 時間戳與來源資訊。
適用情境
適合助理需要可引用、有憑據的中英文技術來源時使用,例如官方文件、RFC、GitHub 或 arXiv;也適合把搜尋限定在特定網域以降低幻覺。
執行需求
以 stdio 在本機執行,通常透過 npx 啟動,需要 Node.js 18 或更新版本,也可使用已發布的容器映像。使用完整每月額度需要在 ANNOLUX_API_KEY 中提供 Annolux 帳戶 API 金鑰;未提供時以沙箱模式啟動。ANNOLUX_API_URL 為選用,用於設定 API 位址。需要能連線至 Annolux API 的網路。
安裝前請注意
查詢內容會傳送給第三方 Annolux 搜尋 API。ANNOLUX_API_KEY 金鑰透過行程環境變數傳入。搜尋會消耗帳戶額度:README 稱每次成功回應扣 1 個額度,錯誤、逾時與限流不扣費,並列出付費方案。此工具被描述為唯讀。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Annolux Search,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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.

來源:README.md,提交 d29bba0

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分