MCP
面向 AI Agent 的 MCP 联网搜索
在任何 MCP 客户端加入一个有界的联网搜索工具:search_web 查询精选中英索引,返回带来源归属和 fetched_at 的结果。非实时,非全网。
一个工具,同一套 Search 契约
annolux-mcp 只注册一个工具:search_web。它的输入与商业 REST 端点一致,每条结果都带标题、URL、可用时的摘要,以及明确的 fetched_at 抓取时间。服务器不暴露抓取、正文提取、验证或任何隐藏增强,Agent 通过 MCP 得到的操作与本页文档完全一致。
背后是精选的中英双语索引,按计划刷新。它不是实时数据流,也不声称全网覆盖;空结果是正常返回,不是错误。
安装服务器二进制
服务器是一个静态 Go 二进制。装有 Go 工具链时,一条命令即可构建并安装到 $(go env GOPATH)/bin —— 请确认该目录在 PATH 里,或在客户端配置中使用绝对路径。
go install github.com/eason4kim-rocket/annolux/cmd/annolux-mcp@latest
配置任意 MCP 客户端
所有 MCP 客户端接受同一形状的配置:一个命令加两个环境变量。密钥只存在于服务器进程环境;annolux-mcp 仅将其放入 Authorization 请求头,不会写进工具结果或模型可见参数。
{
"mcpServers": {
"annolux": {
"command": "annolux-mcp",
"env": {
"ANNOLUX_API_URL": "https://api.annolux.com",
"ANNOLUX_API_KEY": "ann_live_REPLACE_ME"
}
}
}
}
search_web 字段
- query —— 必填,最长 500 字符。
- domains —— 可选主机名白名单,最多 20 项。
- deduplicate —— 默认 true。
- limit —— 返回 1–10 条,默认 10。
- timeout —— 1–30 秒,默认 30。
- ranking —— default 或 provider。
- 不支持 freshness,发送会被明确拒绝。
响应长什么样
示例响应。请把 fetched_at 与 Agent 产出的引用放在一起,让下游读者知道页面是何时抓取的。
{
"success": true,
"query": "rust ownership",
"results": [
{
"rank": 1,
"title": "What is Ownership? - The Rust Programming Language",
"url": "https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html",
"snippet": "Ownership is a set of rules that govern how a Rust program manages memory…",
"fetched_at": "2026-08-15T09:12:44Z"
}
],
"deduplicated": 0,
"partial": false,
"timing": { "total_ms": 212, "provider_ms": 180, "enrichment_ms": 32 }
}
点数
只有成功的 2xx Search 提交 1 点。参数错误、认证失败、余额不足、限流、服务端错误和超时都不扣点。请读取响应头 X-Annolux-Credits-Used 与 X-Annolux-Credits-Remaining,而不是本地估算。新账户有 1,000 免费点数。
各客户端配置指南
以下每篇指南都是该客户端的可复制配置,包括配置文件位置和该客户端特有的坑。