mcpField
9
9router-web-search

9router-web-search

github.com/decolua生产力31.6k194 次安装今天更新
代码仓库

关于 9router-web-search

9router-web-search 是通过已配置的 9Router 网关执行网页和 X 搜索的技能,支持提供方专属选项、结果数量限制及可用时的游标分页。

主要功能

  1. 01通过已配置提供方搜索
  2. 02网页、新闻和 X 搜索类型
  3. 03提供方专属搜索选项
  4. 04Xquik 游标分页

适用场景

  1. 01通过 9Router 搜索网页结果
  2. 02按国家或域名筛选结果
  3. 03继续分页获取 Xquik 搜索结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/decolua/9router --skill 9router-web-search

安装后在 Claude Code 中输入/9router-web-search确认已加载。

详细介绍

9Router — 网页搜索

需要设置 NINEROUTER_URL(如果启用了鉴权,还需设置 NINEROUTER_KEY)。设置方法参见 https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md。

发现

curl $NINEROUTER_URL/v1/models/web | jq '.data[] | select(.kind=="webSearch") | .id'
# Per-provider params (searchTypes, maxResults, required options like cx for google-pse)
curl "$NINEROUTER_URL/v1/models/info?id=tavily/search"

ID 以 /search 结尾(例如 tavily/search)。组合(owned_by:"combo")会串联多个服务商并自动回退。

端点

POST $NINEROUTER_URL/v1/search

字段是否必填说明
model(或 provider)是来自 /v1/models/web(例如 tavily 或 brave)
query是搜索查询词
max_results否默认为 5
search_type否web(默认)/ news / x(Xquik 专用)
country、language、time_range、domain_filter否取决于服务商

示例

curl -X POST $NINEROUTER_URL/v1/search \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"tavily","query":"9Router open source","max_results":5}'

JS:

const r = await fetch(`${process.env.NINEROUTER_URL}/v1/search`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ model: "search-combo", query: "latest LLM benchmarks", max_results: 10 }),
});
console.log(await r.json());

使用 Xquik 进行 X 搜索:

curl -X POST $NINEROUTER_URL/v1/search \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"xquik","query":"from:github release","max_results":10,"provider_options":{"queryType":"Latest"}}'

请在 9Router 的服务商设置中添加 Xquik API 密钥。Xquik 每返回一条帖子收取 1 积分。若要继续搜索,请将 pagination.next_cursor 作为 provider_options.cursor 传入。

Xquik 的响应包含服务商分页和积分用量信息:

{
  "pagination": { "has_more": true, "next_cursor": "cursor-2" },
  "usage": { "queries_used": 1, "search_cost_usd": null, "provider_credits_used": 10 }
}

响应结构

{
  "provider": "tavily",
  "query": "9Router open source",
  "results": [
    {
      "title": "...", "url": "https://...", "display_url": "github.com/...",
      "snippet": "...", "position": 1, "score": 0.92,
      "published_at": null, "favicon_url": null, "content": null,
      "metadata": { "author": null, "language": null, "source_type": null, "image_url": null },
      "citation": { "provider": "tavily", "retrieved_at": "2026-...", "rank": 1 }
    }
  ],
  "answer": null,
  "usage": { "queries_used": 1, "search_cost_usd": 0.008 },
  "metrics": { "response_time_ms": 850, "upstream_latency_ms": 700, "total_results_available": 12 },
  "errors": []
}

服务商差异

所有服务商都接受 query 和 max_results。其他可选字段因服务商而异:

服务商支持的参数必需的额外参数
tavilycountry、domain_filter、新闻主题—
exadomain_filter(包含/排除)、新闻分类—
brave-searchcountry、language—
serpercountry、language、新闻端点—
perplexitycountry、language、domain_filter—
linkupdomain_filter、time_rangedepth: fast/standard/deep(可选)
google-psecountry、language、time_range、offset必须提供 cx(providerOptions)
searchapicountry、language、分页—
youcomcountry、language、time_range、domain_filter、full_page—
searxnglanguage、time_range可自托管,noAuth
xquikX/Twitter 搜索运算符、language、游标分页queryType: Latest/Top、cursor(选项)

Provider 即 model,即 "provider":"tavily" ≡ "model":"tavily"。

评论

支持 Markdown