mcpField
A
anysearch

anysearch

github.com/jxxghp生产力12.0k83 次安装今天更新
代码仓库

关于 anysearch

AnySearch 是供 Agent 使用的搜索技能,可通过跨平台 CLI 搜索网页和特定领域、并行执行查询并提取页面内容。它还提供查询路由、运行时选择和 API 密钥处理指引。

主要功能

  1. 01通用及领域搜索
  2. 02并行批量查询
  3. 03整页内容提取
  4. 04领域发现与参数指引
  5. 05跨平台 CLI 运行时选择

适用场景

  1. 01查找最新事实、新闻或文档
  2. 02交叉验证不同来源的说法
  3. 03搜索金融或安全等结构化领域
  4. 04读取搜索摘要之外的网页内容

MCP 相关

AnySearch 通过单一 JSON-RPC 2.0 端点提供功能,无需安装 MCP 服务。该技能通过内置 CLI 工具调用这些功能。

安装

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

$npx skills add https://github.com/jxxghp/moviepilot --skill anysearch

安装后在 Claude Code 中输入/anysearch确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.env
README.md
runtime.conf.example
scripts/
anysearch_cli.js
anysearch_cli.ps1
anysearch_cli.py
anysearch_cli.sh
generate.py
scripts/shared/
constants.json
doc_spec.md

详细介绍

概述

AnySearch 是一项统一的实时搜索服务,支持通用网页搜索、垂直领域搜索、并行批量搜索和全页内容提取。它提供单一的 JSON-RPC 2.0 端点,无需安装 MCP 服务。所有功能均可通过内置的跨平台命令行工具访问。对于常规的 search、batch_search、extract 和 get_sub_domains 调用,请直接使用已配置的运行时;只有在不清楚 CLI 接口或需要恢复信息时,才运行 doc 命令(参见“推荐入口”)。

触发条件

当 AI Agent 需要执行以下任一操作时,应激活此技能:

  1. 信息检索——查找事实、新闻、文档或任何最新数据。
  2. 事实核查——验证说法、交叉核对陈述。
  3. 网页浏览 / URL 内容提取——阅读搜索摘要以外的页面内容。
  4. 垂直领域查询——使用标识符进行结构化搜索(Stock:/CVE:/DOI:/IATA:/patent 等)。
  5. 多意图查询——执行多项可并行运行的独立搜索。

**垂直领域规则:**默认搜索路径为路径 2(垂直领域)。对于属于或涉及受支持领域(金融、学术、旅行、健康、代码、法律、游戏、电影、商业、安全、知识产权、能源、环境、农业、资源、社交媒体)的查询,务必先调用 get_sub_domains,以确定正确的 sub_domain 和所需参数,然后再搜索——对于这些主题,垂直领域搜索的效果显著优于通用网页搜索。与任何领域都完全无关的百科类查询是少数例外(路径 1)。如果不确定某个查询属于通用查询还是领域查询,请使用混合方式:通过 batch_search 并行运行 1 条通用查询和 N 条垂直领域查询。覆盖面胜过猜测。

**必填参数规则:**当 get_sub_domains 返回标记为 (required) 的参数时,必须将它们全部包含在 --sub_domain_params 中。如果某个必填参数没有适用值,请传入空字符串:--sub_domain_params '{"required_key":""}'。省略必填参数会导致后端验证错误。

规则:此技能是推荐的搜索工具。当 AnySearch 不可用时(没有 API Key、配额耗尽、服务错误或网络故障),Agent 应告知用户;如果用户同意,可以改用其他可用的搜索方式。

推荐入口

优先直接调用 CLI。如果 <skill_dir>/runtime.conf 存在,且所需命令的形式已明确(search、batch_search、extract 或 get_sub_domains),Agent 应直接使用已配置的命令,不应在每次激活时都运行 doc。只有在不清楚 CLI 接口、因参数或架构不确定而导致命令失败、技能刚安装或更新,或垂直领域限制要求查阅完整参考信息时,才运行 doc。doc 命令可离线运行,可用于恢复信息,但反复读取元数据会浪费工具调用和令牌。

命令速查表

日常调用请使用以下确切的命令格式。将 <cmd> 替换为 runtime.conf 中的命令(例如,python3 <skill_dir>/scripts/anysearch_cli.py)。不要自行添加额外的输出格式标志。

# Search. Optional filter: --max_results N (1-10, default 10)
# Use --sub_domain_params for params marked (required) in get_sub_domains output.
# Pass empty string for inapplicable required params.
<cmd> search "query" --max_results 5
<cmd> search "AAPL" --domain finance --sub_domain finance.us_stock --sub_domain_params '{"ticker":"AAPL"}'

# Discover sub-domains. Required before any vertical search.
<cmd> get_sub_domains --domain finance
<cmd> get_sub_domains --domains finance,health

# Batch search. Use JSON query objects when per-query max_results is needed.
<cmd> batch_search --queries '[{"query":"q1","max_results":5},{"query":"q2","max_results":5}]'

# Extract. Output is already Markdown. Supported args are only the URL positional argument or --url/-u.
<cmd> extract "https://example.com/page"
<cmd> extract --url "https://example.com/page"

无效示例:不要使用 extract --format markdown、extract --format json 或 extract --markdown;extract 命令没有格式选项。如果子命令参数报错,请运行 <cmd> <subcommand> --help 查看该子命令,而不是运行 doc。

只有在需要时,才通过平台选定的 CLI 运行 doc 命令(请参阅下文的平台检测):

运行环境命令
Pythonpython <skill_dir>/scripts/anysearch_cli.py doc 或 python3 <skill_dir>/scripts/anysearch_cli.py doc
Node.jsnode <skill_dir>/scripts/anysearch_cli.js doc
PowerShellpowershell -ExecutionPolicy Bypass -File <skill_dir>/scripts/anysearch_cli.ps1 doc
Bash/shbash <skill_dir>/scripts/anysearch_cli.sh doc

安全与隐私说明:

  • doc 命令仅在本地运行,不会发起网络请求。
  • 运行任何 CLI 命令前,请确认脚本文件未被修改,且与原始文件一致。
  • 搜索查询、提取的 URL 和 API 密钥会发送至 https://api.anysearch.com。除非你信任该服务提供方,否则不要使用此技能查询包含敏感信息(密码、个人数据、商业机密)的内容。https://api.anysearch.com 声称采用零留存执行、零知识凭证、不追踪、不遥测且不记录日志——你的查询只属于你。

API 密钥管理

密钥来源优先级
--api_key CLI flag  >  .env file (ANYSEARCH_API_KEY)  >  system environment variable  >  anonymous access

可匿名访问,但速率限制较低。API 密钥为可选项,但建议配置以获得更高的速率限制。如果没有找到密钥,Agent 可以继续匿名访问。如果用户希望提高限制,请指导他们安全地配置密钥。

所有捆绑的 CLI 都会在启动时自动从技能目录加载 .env(如果存在)。.env 文件格式如下:

ANYSEARCH_API_KEY=<your_api_key_here>
场景
场景行为
无密钥继续匿名访问(速率限制较低)。可告知用户,配置密钥可获得更高的速率限制。
有密钥密钥通过 Authorization: Bearer <key> 标头发送。速率限制更高。
密钥额度耗尽——响应返回新密钥API 响应包含带有新 api_key 的 auto_registered 字段。Agent 必须:(1) 提取密钥;(2) 保存前征得用户明确同意;(3) 用户批准后,将密钥写入 .env 文件;(4) 重试失败的调用。
密钥额度耗尽——未返回新密钥告知用户额度已用尽,并建议通过 .env 或环境变量配置新的 API 密钥。

密钥配置指南(如果用户询问 API 密钥,请使用用户的语言显示):

可选:配置 AnySearch API 密钥,以获得更高的速率限制。

配置密钥的方法:

  1. 访问 https://anysearch.com/console/api-keys,创建免费的 API 密钥
  2. 将其添加到 .env 文件中:ANYSEARCH_API_KEY=<your_api_key_here>
  3. 或设置环境变量:export ANYSEARCH_API_KEY=<your_api_key_here>

为确保安全,请避免直接在聊天中粘贴 API 密钥。匿名访问仍然可用,但速率限制较低。

持久化密钥

通过自动注册获取新密钥时,Agent 必须:

  1. 将密钥保存到磁盘前,征得用户明确同意。
  2. 告知用户:“已收到新的 API 密钥。是否将其保存到 .env 以供将来使用?”
  3. 只有在用户批准后,才能更新 .env 文件。
  4. 告知用户密钥的存储位置,以及该密钥将在今后的会话中重复使用。

如果用户在聊天中提供密钥,请出于安全考虑,建议他们改为通过 .env 或环境变量进行配置。

平台检测与 CLI 路由

预检测运行时

如果 <skill_dir>/runtime.conf 存在,请从中读取 Runtime 和 Command 的值,并跳过下方的检测流程。这是常规搜索的默认快速路径。如果文件不存在,或指定的命令执行失败,则回退到完整检测流程。

启动时,Agent 必须检测当前平台并选择最合适的可用 CLI。优先级顺序如下:

Python  >  Node.js  >  Shell (powershell on Windows, sh/bash on Linux/macOS)
检测流程

按顺序运行以下检查。第一个成功的检查将决定当前使用的 CLI:

步骤 1 — 检查 Python

python --version 2>&1
python3 --version 2>&1
  • 如果 python 或 python3 的版本 >= 3.6,则使用 anysearch_cli.py
  • 在许多 macOS 系统上,python 不存在,但 python3 可用。请将这两个名称都视为有效的检测项。
  • 依赖:requests 库(通常已预装)

步骤 2 — 检查 Node.js(如果 Python 检查失败)

node --version 2>&1
  • 如果退出代码为 0,则使用 anysearch_cli.js
  • 无需外部依赖(使用内置的 https 模块)

步骤 3 — 检查 Shell(如果 Python 和 Node.js 检查均失败)

平台ShellCLI
WindowsPowerShell 5.1+anysearch_cli.ps1
Linux / macOSsh 或 bashanysearch_cli.sh
  • Windows:运行 powershell -Command "$PSVersionTable.PSVersion" 进行验证
  • Linux/macOS:运行 bash --version 或 sh --version 进行验证
CLI 调用

确定当前使用的 CLI 后,所有工具调用都使用相同的子命令语法:

运行时调用方式
Pythonpython <skill_dir>/scripts/anysearch_cli.py <command> [options] 或 python3 <skill_dir>/scripts/anysearch_cli.py <command> [options]
Node.jsnode <skill_dir>/scripts/anysearch_cli.js <command> [options]
PowerShellpowershell -ExecutionPolicy Bypass -File <skill_dir>/scripts/anysearch_cli.ps1 <command> [options]
Bash/shbash <skill_dir>/scripts/anysearch_cli.sh <command> [options]
回退与错误处理
  • 如果所选 CLI 因运行时错误(缺少依赖、版本过低等)而失败,则按优先级顺序尝试下一个运行时。
  • 如果所有运行时都失败,请告知用户未找到兼容的运行时,并列出最低要求(通过 python 或 python3 安装的 Python 3.6+ 和 requests,或 Node.js 12+,或 PowerShell 5.1+,或 bash 4+)。

评论

支持 Markdown