Annolux Search について
Annolux Search は、AI エージェントや RAG システム向けの英中バイリンガル技術検索サービスです。読み取り専用の単一ツールで検索でき、結果には取得時刻と出典情報が付きます。
主な機能
- 01英中バイリンガル技術インデックス
- 02検索結果の取得時刻表示
- 03ドメインによる結果の絞り込み
- 04単一の読み取り専用検索ツール
活用シーン
- 01技術文書や研究資料の検索
- 02公式ドメインに限定したコーディング検索
- 03出典付き検索結果の RAG への提供
MCP 対応
MCP クライアントからバイリンガルインデックスを検索できる、読み取り専用の `search_web` ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e ANNOLUX_API_URL -e ANNOLUX_API_KEY ghcr.io/eason4kim-rocket/annolux-mcp:0.1.2ANNOLUX_API_URLAnnolux API origin.ANNOLUX_API_KEYシークレットAnnolux API key created in the account dashboard.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/eason4kim-rocket/annolux-mcp:0.1.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
⚡ Annolux
AI エージェントと RAG システム向けの厳選された英語・中国語検索 API と MCP
検索の根拠を確認できます。すべての検索結果に、明示的な fetched_at タイムスタンプと出典情報が付与されます。
🌐 ウェブサイト • 📖 API ドキュメント • ⚡ MCP クイックスタート • 📊 固定ベンチマーク • 📁 例 • 🇨🇳 中国語ドキュメント
💡 Annolux を選ぶ理由
現在の AI エージェント向けウェブ検索 API には、致命的な欠点が 3 つあります。
- 入力が粗悪なら、出力も粗悪です:商用検索エンジンは、LLM のコンテキストウィンドウを汚染する SEO 目的のサイト、スクレイピングされたスパム、自動生成されたノイズを何百万件もインデックスしています。
- 時間情報と出典情報が欠けています:検索 API が正確なスナップショットのタイムスタンプ(
fetched_at)を省略するため、LLM は現在の状態について幻覚を起こします。 - 不公平な課金です:失敗したリクエスト、空の出力、レート制限による再試行にも全額が請求されます。
Annolux は、エージェントを第一に考えた厳選アプローチでこれらの問題を解決します。
- 🛡️ 厳選されたバイリンガル技術インデックス:関連性の高い英語・中国語のコーパス(Rust、Go、Python、AI/ML、公式ドキュメント、RFC、GitHub、arXiv)。
- 🕒 明示的な
fetched_atタイムスタンプ:ランク付けされたすべての検索結果に、取り込まれた正確な秒単位の時刻が表示され、根拠に基づく引用や時間的推論が可能になります。 - 🎯 予測可能な台帳方式の課金:成功した 2xx レスポンス 1 件につき、クレジットをちょうど 1 消費します。エラー、タイムアウト(504)、レート制限(429)、不正なリクエストの消費クレジットは 0 です。
- 🧩 ネイティブの Model Context Protocol(MCP):Claude Code、Cursor、Windsurf、Cline、Zed、Claude Desktop でセットアップは不要です。
- 🚀 毎月 1,000 クレジットを無料提供:annolux.com で GitHub または Google を使ってサインインすれば、30 秒で検索を開始できます。
🥊 比較:Annolux と汎用検索 API
| 機能/指標 | Annolux | Exa(Metaphor) | Tavily | Serper / Google |
|---|---|---|---|---|
| インデックス品質 | 厳選されたテクノロジーとナレッジ(EN/ZH) | ウェブ全体を対象としたニューラル検索 | ウェブ全体を対象としたアグリゲーター | ウェブ全体(SEO のノイズあり) |
| 中国語(ZH)のテクノロジーコーパス | ネイティブのバイリンガル全文検索を第一級でサポート | 中程度 | 弱い/翻訳ベース | コンテンツファームが混在 |
| 明示的なスナップショットのタイムスタンプ | ✅ すべての結果に fetched_at | ❌ 一貫性なし | ❌ 省略 | ❌ スニペットからの概算のみ |
| 課金保証 | ✅ 2xx 成功時のみ 1 クレジット | リクエストごと | リクエストごと | リクエストごと |
| 失敗/タイムアウトしたクエリ | 🆓 0 クレジット | ❌ 課金対象 | ❌ 課金対象 | ❌ 課金対象 |
| MCP ツール構成 | シンプルな単一の search_web(トークンの無駄を最小限に) | 複数の大規模なツール | 複数ステップのツール | カスタムブリッジが必要 |
| ドメイン制限 | ✅ ホスト名の完全一致フィルタリング(domains) | ✅ 対応 | ✅ 対応 | site: クエリによる限定的な対応 |
| 無料スタータープラン | 月 1,000 クレジット | 限定トライアル | 月 1,000 | 初回のみ 2,500 |
📦 クイックインストール
必要なのは Node.js 18 以降のみです。アカウントや API キーが不要な、設定不要のサンドボックスで始められます。
npx -y annolux-mcp
月間の利用枠をすべて利用するには、annolux.comで無料のキーを作成し、プロセス環境を通じて渡してください。
ANNOLUX_API_KEY=ann_live_YOUR_API_KEY npx -y annolux-mcp
🔌 MCP 統合
Annolux は、単一の高効率ツール search_web を備え、公式のモデルコンテキストプロトコル(MCP)仕様を実装しています。
⚡ ワンクリックインストール(Cursor と Smithery)
- Cursor:
をクリックすると、ディープリンクからネイティブにインストールできます。
- Smithery CLI:
npx -y @smithery/cli install annolux-mcp --client claude npx -y @smithery/cli install annolux-mcp --client cursor - Glama オンラインプレイグラウンド: Glama.aiで、ローカル環境を設定せずにクエリをすぐにテストできます。
1. Claude Code
claude mcp add annolux -- npx -y annolux-mcp
これによりサンドボックスモードで起動します。アカウントキーを使用するには、-- の前に -e ANNOLUX_API_KEY=ann_live_YOUR_API_KEY を追加してください。
2. Cursor / Windsurf
プロジェクトの .cursor/mcp.json またはグローバル設定に追加します。
{
"mcpServers": {
"annolux": {
"command": "npx",
"args": ["-y", "annolux-mcp"],
"env": {
"ANNOLUX_API_KEY": "ann_live_YOUR_API_KEY"
}
}
}
}
3. Claude Desktop
claude_desktop_config.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 クイックスタート
標準検索エンドポイント
POST https://api.annolux.com/api/v1/search
Authorization: Bearer ann_live_YOUR_API_KEY
Content-Type: application/json
{
"query": "tokio async runtime memory model",
"domains": ["tokio.rs", "docs.rs", "github.com"],
"deduplicate": true,
"limit": 5,
"timeout": 10,
"ranking": "default"
}
Python
import os
import 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
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
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 .
🏛️ アーキテクチャと仕組み
┌─────────────────────────────────────────────────────────────┐
│ 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 ]
📊 検索品質と固定ベンチマーク
Annolux は、複雑なバイリンガルクエリ 40 件からなる、変更されない固定のブラインドセットを使用して、検索取得性能を評価します。ランキングの重みをテストセットで調整することはありません。
| 指標 | 第 1 ゲートのベースライン | リリース前検証ゲート |
|---|---|---|
| Hit@1 | 72.5% | 72.5% |
| Hit@3 | 82.5% | 82.5% |
| Hit@10 | 85.0% | 85.0% |
| MRR@10 | 0.78125 | 0.78125 |
| P95 レイテンシ | 532 ms | 356 ms |
| 5xx エラー率 | 0.00% | 0.00% |
すべてのベンチマークは、同時実行数の上限まで負荷をかけ、クライアント側で評価されています。
💳 透明性の高い料金体系
| プラン | 価格 | クレジット | レート制限 | 課金ルール |
|---|---|---|---|---|
| Free | $0 | 月 1,000 | 5 RPS / バースト 10 | 永久無料、クレジットカード不要 |
| Pro | 月額 $29 | 月 20,000 | 5 RPS / バースト 10 | 成功 1 回につき 1 クレジット、翌月への繰り越しなし |
| Scale | 月額 $99 | 月 100,000 | 5 RPS / バースト 10 | 成功 1 回につき 1 クレジット、翌月への繰り越しなし |
- 超過料金はありません。
- エラー、レート制限、タイムアウトはすべて無料です(クレジット消費は 0)。
- アカウントごとに最大 3 個の API キーを有効にできます。
📁 サンプルとレシピ
本番環境ですぐに使えるスターターについては、examples/ ディレクトリをご確認ください。
01-claude-code-literature-research: タイムスタンプ付きの引用を含む、技術調査を自動化するエージェントです。02-cursor-authority-domain-refactor: 検索対象を公式ドキュメントのドメイン(react.dev、go.dev)に限定し、ハルシネーションのないリファクタリングを実現します。03-production-rag-temporal-pipeline: フォールバック検索を備えた、本番環境向けの RAG ハイブリッド検索パイプラインです。04-n8n-ai-research-agent: コミュニティノード(n8n-nodes-annolux)と時系列に沿った引用を含む、すぐにインポートできる n8n AI エージェントのワークフローです。
🤝 コミュニティとサポート
- バグ報告や機能リクエストは、GitHub Issues からお寄せください。
- 脆弱性を非公開で報告する方法については、SECURITY.md をご確認ください。
- 公開 OpenAPI 仕様:annolux.com/openapi.json。
📄 ライセンス
Annolux は、Apache License, Version 2.0 の下でライセンスされるオープンソースソフトウェアです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。