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 分