Mr-remon219/search-boost ↗★ 28
search-boost
Multi-engine web search for coding agents — one SearchBoost core (fused search, fetch, X) with MCP (Cursor, Codex, Claude Code, Grok Build, Antigravity), pi extension, and DeepSeek Harness bundle adapters 适合使用Cursor、Claude Code等工具并需要增强并行搜索与网页抓取的用户。
インストール
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Mr-remon219/search-boostドキュメント
README 全文を読む ↗Tool Suite & Usage Guide
When integrated, agents automatically receive standard tool definitions and autonomously determine when to call them.
Tool Responsibilities & Boundaries
| Tool | Best Used For | Boundary / Non-Goals |
|---|---|---|
fused_search | Parallel multi-engine querying, deduplication, and diversity re-ranking | A single search step; follow-up decisions remain with the parent agent |
fetch_page | Reading clean content from public URLs with optional keyword focus | Not a browser with login state; cannot access internal/private networks |
x_search | Retrieving public X posts, author timelines, or discussion threads | Does not guarantee exhaustive comment threads or total sentiment sampling |
adaptive_search | Experimental: intent-guided search selection and keyword continuation | Worth-reading URLs and extractive descriptions; not verified answers |
search_stats | Reading engine status, memory cache hits, and recent diagnostic stats | Read-only; configuration readiness does not guarantee active external network reachability |
search_layer | Viewing or switching compatibility search layer in MCP | show is read-only; changing layers mutates persistent configuration on disk |
1. fused_search Multi-Engine Search
Dispatches queries across engines concurrently, normalizes URLs, strips redirects, and applies diversity filters.
Tool Arguments Example (JSON):
{
"query": "Node.js 22 built-in WebSocket API guide",
"include_domains": ["nodejs.org", "developer.mozilla.org"],
"engine_pool": "free",
"ranking": "balanced",
"complexity": "simple",
"max_results": 5
}
engine_pool:free(keyless Bing, DuckDuckGo, Yahoo, Exa-free),api(configured paid engines only), orhybrid(all available engines).ranking: Scoring presets:balanced(default),research(favors authoritative/documentation sources), orfresh(favors recent publications).complexity:simple(1 query variant),medium(up to 2 variants),complex(up to 3 deep variants).community: Boolean (falseby default). Set totrueto blend real-time X developer discussions into the final result quota.
2. fetch_page Smart Content Reader
Reads webpage content from search URLs. Reads and cleans the origin first; curl handles transport compatibility when installed, and Jina Reader is the backup.
Tool Arguments Example:
{
"url": "https://nodejs.org/api/globals.html",
"focus": "AbortSignal.any"
}
focus(Optional): Filters and retains paragraphs matching the target keywords.[!TIP] A
focusmiss does not prove the information is absent from the page. If in doubt, re-fetch withoutfocusto inspect the full context.
3. x_search X (Twitter) Intelligence
Designed for real-time technical tracking and first-party developer updates. Supports keyword search, author timelines, and thread conversations.
Tool Arguments Example:
{
"query": "Claude 3.7 Sonnet hybrid reasoning from:AnthropicAI",
"mode": "keyword",
"max_results": 5
}
- Precise Timestamps: When platform timestamps are missing or inconsistent, recovers true UTC creation times from 64-bit Snowflake IDs.
- Native Operators: Full support for
from:username,since:YYYY-MM-DD, anduntil:YYYY-MM-DD.
4. adaptive_search Jev Intent-Guided Search (Experimental)
Vercel support: in TUI → Jev credentials, enter https://ai-gateway.vercel.sh/v1 and a Vercel AI Gateway key. SearchBoost selects the official SDK evaluation model typesafe-ai/jev, not chat completions. The default TypeSafe /systemone path remains supported. Both paths use only the canonical user Jev credential, not environment keys, and respect server rate-limit delays.
The caller supplies questions, bound keywords and optional intent explaining useful search directions. Jev judges relevance, reading value and direction match (helpfulness, not agreement), then chooses continue/satisfied/exhausted per keyword; code handles unknown/pending decisions and finite budgets. Pointers and partial information can qualify. The score rewards strong results, new supplied topics and diminishing supplementary results; it is advisory, not answer completeness. Legacy facts are optional search topics, not mandatory acceptance conditions. See the implementation contract.
{
"intent": "Prefer migration guides and concrete incompatibilities; include counterexamples.",
"tasks": [{
"context": "ExampleDB 4.2 upgrade impact",
"targets": [{
"id": "migration",
"keywords": ["migration guide", "upgrade guide"],
"question": "What migration steps are required from 4.1 to 4.2?"
}]
}],
"page_size": 20
}
- Up to 6 tasks, 4 targets per task, 12 total targets; legacy
questionsinput remains supported. resultscontains{url, title, description, valueScore, directionMatch, kind}; descriptions are extractive, scores are uncalibrated heuristics, and rejected/unassessed material is excluded.- Read more with
{"cursor":""}: no new search or Jev call. Pages default to 20 results (max 50) and have a byte budget, but cumulative approved results have no fixed count cap. - Inspect
retrievalSufficient,keywordProgress,pendingAssessmentsand warnings.coverageCompleteis deprecated and always false in schemaVersion 3: answer completeness is not assessed. Search satisfaction, end of pagination and model approval do not establish truth or exhaustiveness. - Results are process-local, retained for up to 30 minutes / 32 recent result sets; expiry, eviction or restart invalidates cursors.
- Optional task
time_rangedistinguishes publication dates from event dates; unknown dates cannot qualify as today's evidence.
See the adaptive-search contract and limitations.
Engine Pools & Scoring Presets
engine_pool selects engines, ranking selects shared cross-pool weights, and complexity controls only budget. AnySearch is one logical engine: anonymous in free, key-required in api, and key-preferred in hybrid. Configure ANYSEARCH_API_KEY or config keys --set anysearch=KEY.
| Engine | balanced | research | fresh |
|---|---|---|---|
| bing | 0.957 | 0.927 | 1.020 |
| ddg | 0.981 | 0.903 | 0.927 |
| yahoo | 0.957 | 0.877 | 0.902 |
| exa-free | 1.004 | 1.085 | 0.951 |
| tavily | 1.049 | 1.105 | 1.084 |
| brave | 1.004 | 0.951 | 1.125 |
| exa | 1.049 | 1.146 | 1.063 |
| anysearch | 1.004 | 1.042 | 0.951 |
These are uncalibrated cold-start priors, not measured quality rankings. consensus-v2.1 combines original ranks, related-provider discounts and max+log consensus, with metadata adjustments capped at 20%. Quality and list-selection scores stay separate; zero-weight sources cannot vote. Recalibrate old min_score thresholds. See scoring and migration and pool routing.
----------------- Configuration Management -----------------
search-boost config keys # Manage API keys from CLI search-boost config keys --set anysearch=KEY # Configure the AnySearch key (ANYSEARCH_API_KEY) search-boost config layer # Switch default layer (free / api) search-boost config x --import-grok # Import X credentials from local Grok login search-boost config jev # Configure Jev endpoint and token