search-boost-mcp
search-boost-mcp is an MCP server that gives coding agents fast, multi-engine web search and research tools.
fused_search: Run multi-engine web searches (Bing, DuckDuckGo, Yahoo, Exa-free, and optional Tavily/Brave/Exa/Antigravity) with deduplication, cross-ranking, recency filters, domain filters, and engine overrides.
fetch_page: Fetch readable page text from URLs, with optional focus terms to reduce token usage.
deep_research: Perform iterative research rounds with coverage analysis, gaps, and suggested follow-up queries, then synthesize results with citations.
x_search: Search X/Twitter by keyword, semantic query, username, or thread; works without credentials or uses official auth via Grok login/XAI key.
search_layer: Switch or check the search layer between free (keyless) and api (keyed engines).
search_stats: View diagnostics like cache hits, engine availability, tier counts, and recent searches.
CLI/agent integration: Install and wire the server into Cursor, Cursor CLI, Codex, Claude Code, Grok Build, and Antigravity; manage keys, run health checks, and configure permissions/auto-approval.
Integrates Brave Search via API key, adding it to the parallel search engine pool for web searches.
Provides DuckDuckGo search support for general web searches and domain-restricted queries in the API layer.
Integrates Google News as a free-layer search engine, returning news-oriented results in multi-engine searches.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@search-boost-mcpsearch the web for MCP server security vulnerabilities"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
search-boost-mcp
Multi-engine web search MCP server for coding agents. One CLI install wires it into Cursor, Cursor CLI, Codex, Claude Code, Grok Build, and Antigravity.
search-boost family
Project
For
Link
search-boost (this repo)
Cursor · Codex · Claude · Grok · Antigravity via MCP
you are here
DeepSeek Harness bundle plugin
pi extension
Search engines are vendored in lib/search/ (originally from dsh-search-boost): on the free layer, Bing, DuckDuckGo, Yahoo, and Exa-free run in parallel; the api layer adds Antigravity CLI (when available) and whichever keyed Tavily / Brave / Exa engines you configure (one key is enough; all three recommended for best fusion). Also included: X/Twitter fallback, Jina page fetch, and deep-research rounds.
中文文档 → README_zh.md
Install (recommended)
Requires Node ≥ 22.13.
npm install -g search-boost-mcp
search-boost setup # interactive: keys → layer → agents
# or non-interactive:
search-boost install -y # all detected agentsRestart each agent after install so MCP reloads.
Upgrade
Already using search-boost-mcp? Update the global CLI, then refresh agent configs (keys/layer under ~/.search-boost/ are kept):
npm install -g search-boost-mcp@latest
search-boost install -y # all detected agents
# or pick targets, e.g. Grok one-step (plugin + config when grok on PATH):
search-boost install -t grok -y --auto-allow
search-boost doctorRestart each agent after reinstall. Config lazy-migrates from older flat ~/.search-boost-*.json paths on first write.
One-liners by agent
search-boost install -t cursor -y
search-boost install -t codex,claude -y --auto-allow
search-boost install -t grok -y --auto-allow # plugin + config when grok CLI on PATH
search-boost install -t antigravity --workspace --auto-allow -yPreview without writing: search-boost install --dry-run -y
Verify install
search-boost doctor # health checks (offline, pass/warn/fail)
search-boost doctor --json # machine-readable report for CI/scripts
search-boost status # install dashboard (keys, layer, agents)Exit codes: 0 healthy · 1 failure (or warnings with --strict) · 2 warnings only.
Optional: search-boost doctor --probe adds live search smoke (needs network; Phase 2).
Then confirm in your agent:
Agent | Quick check |
Cursor | Settings → MCP → |
Cursor CLI | Same MCP entry in |
Codex |
|
Claude Code | MCP panel shows |
Grok Build |
|
Antigravity | MCP config includes |
If tools appear but calls fail, run search-boost serve in a terminal to see startup errors.
Install flags (quick reference)
Flag | Effect |
| Which agent(s) to wire ( |
| Non-interactive: skips keys/layer wizard, uses |
| Still non-interactive for that target and still replaces native search by default — but does not imply |
| Pre-approve search-boost MCP tools in agent config (Cursor CLI allowlist, Codex |
| Disable or keep built-in web search where the agent supports a switch (Codex |
| Grok only: user ( |
| Grok only: skip bundled |
| Print actions without writing files |
For full onboarding (API keys + layer choice), run search-boost setup or search-boost install without -y.
Uninstall
search-boost uninstall -t codex -y
search-boost uninstall -t cursor,codex,claude -yUninstall removes only search-boost-owned blocks (marked MCP entries, skills, hooks, permission rules). Where the agent supports it, native web search is restored (Codex top-level web_search, Claude WebSearch deny) unless you used --keep-native at install time or had pre-existing unmarked settings. Config files created solely for search-boost are unlinked when empty after cleanup. For Grok, plugin removal via grok plugin uninstall is best-effort (warns and continues if the CLI is missing or uninstall fails). Preview: --dry-run.
Related MCP server: gemini-search-mcp
What you get
MCP tool | Purpose |
| Multi-engine parallel search, dedupe, cross-ranking |
| Full page text (Jina + HTML fallback, optional |
| X/Twitter keyword / user / thread |
| One round per call — repeat with |
| Show or set |
| Cache hits, engine availability, diagnostics |
Also: resource search-boost://policy · prompt search_routing
Layers
free — Bing + DuckDuckGo + Yahoo + Exa-free; no API keys.
api — free-layer engines plus Antigravity CLI (when available) and any of Tavily / Brave / Exa that you configure (one key works; all three recommended for best cross-engine fusion)
Keys: search-boost config keys → ~/.search-boost/config/keys.json (flat ~/.search-boost-keys.json and legacy ~/.dsh-search-boost-keys.json still read; or env TAVILY_API_KEY, BRAVE_API_KEY, EXA_API_KEY). Optional routing: enabledEngines: ["exa"] or "engines": { "brave": { "enabled": false } } in the keys file.
Config layout: runtime data lives under ~/.search-boost/ — config/ (keys, layer, xauth), cache/ (xguest token), state/ (Antigravity workspace registry). First write lazy-migrates from flat ~/.search-boost-*.json and legacy ~/.dsh-* files (old copies kept). Override base: SEARCH_BOOST_HOME; per-file: SEARCH_BOOST_*_FILE.
Obtain keys: Tavily · Brave Search API · Exa
X/Twitter auth (optional): improves official x_search when credentials are present. Stored at ~/.search-boost/config/xauth.json (flat/legacy paths still read) or via XAI_API_KEY. Configure with search-boost config x (see CLI cheat sheet). MCP /x-login and search-boost config x write the same local copy. Override file path: SEARCH_BOOST_XAUTH_FILE.
search-boost config x --show # xauth status
search-boost config x --import-grok # import grok CLI login
search-boost config x --set-xai-key KEY # store XAI API key
search-boost config x --logout # remove local copyConfig file overrides: SEARCH_BOOST_KEYS_FILE, SEARCH_BOOST_LAYER_FILE, SEARCH_BOOST_XAUTH_FILE (optional env vars pointing at custom paths).
CLI cheat sheet
Command | What it does |
| Interactive TUI |
| Onboarding (keys + layer + install) |
| Wire MCP + prompts into agents |
| Run MCP stdio server (used by agents) |
| Keys, layer, X credentials, per-agent configured state |
| Config/agents/engine health checks with pass/warn/fail |
| Keys, default layer, X auth, native-search replace |
| Print MCP snippet without writing |
| Machine-readable agent list |
Install flags: -t cursor,codex,…|auto|all · -y (non-interactive; implies --auto-allow + --replace-native) · --dry-run · --auto-allow (pre-approve MCP tools — see table above) · --replace-native / --keep-native · --scope user|project|all (Grok) · --skip-grok-plugin (Grok) · --workspace (Antigravity .agents/)
Supported agents
Agent | MCP config | Also installs |
Cursor IDE |
| hook, skill |
Cursor CLI |
| hook, skill (CLI variant), optional CLI auto-allow |
Codex CLI |
| AGENTS.md, skill |
Claude Code |
| CLAUDE.md, skill, permissions |
Grok Build |
| rule, skill, bundled grok-plugin (when |
Antigravity |
| AGENTS.md, GEMINI.md, skill, optional workspace |
Prompts use model-discretion wording (search when you choose — not forced every turn). See agents/ for per-agent templates.
Native web search: With --replace-native (default when non-interactive), Codex gets a marked top-level web_search = "disabled" in config.toml (never inside [mcp_servers.*]); Claude gets an ownership-marked WebSearch deny in settings.json. Uninstall removes only search-boost-owned entries and restores native search when safe. Cursor / Antigravity rely on skill + hook preference only. Grok native browse is left on.
Cursor + Cursor CLI: Both targets share one ~/.cursor/ surface. Installing -t cursor,cursor-cli merges IDE + CLI prompts into a single write; uninstall clears the shared surface.
Antigravity + agy CLI: On the api layer, the optional Antigravity CLI engine (agy on PATH) joins medium and complex fused_search tiers only — not simple lookups. It depends on local sign-in and platform quota; timeouts are ~45s.
Grok Build: search-boost install -t grok -y --auto-allow runs grok plugin install <bundled grok-plugin> --trust when the Grok CLI is on PATH, then writes config.toml, rule, and skill. If grok is not on PATH, the plugin step is skipped with a warning and the config install still proceeds. Use --skip-grok-plugin for config/rule/skill only. Re-install is idempotent for [permission] blocks (marked or legacy); uninstall strips search-boost-owned permission lines. If [ui] permission_mode = "always-approve", --auto-allow skips injecting [permission]. The plugin's .mcp.json uses portable npx; config.toml uses resolveMcpLaunch() (local node when developing from a clone) — both can coexist. Manual plugin install: grok plugin install ./grok-plugin --trust (advanced) → grok-plugin/README.md.
Troubleshooting
Symptom | What to try |
Is search-boost healthy? |
|
Install fails immediately | Node ≥ 22.13 ( |
MCP server missing in agent | Re-run install, restart the agent, check |
Tool calls blocked / approval every turn | Re-install with |
No results / empty engines |
|
Network/proxy issues | Phase 2: |
MCP won't start |
|
Grok plugin MCP won't start |
|
| Duplicate |
Antigravity | Requires api layer, |
Timeouts / fetch errors | Corporate proxy or firewall may block Bing/DDG/Jina; try |
Development
git clone https://github.com/Mr-remon219/search-boost.git
cd search-boost && npm install
npm run check && npm run test:install && npm run smoke
node cli.mjs install --dry-run -yLocal clone installs write node /path/to/cli.mjs serve (not npx). No sibling checkout or SEARCH_BOOST_DSH_ROOT is required.
License
MIT
Links: Issues · dsh-search-boost · pi-search-boost
Friendly link: LINUX DO 社区
Available Tools
6 toolsdeep_researchDeep Research (one round)ARead-only
One research round: complex fused search + coverage analysis + gaps + suggested follow-up queries. Call repeatedly with suggested_queries until gaps is empty, then synthesize with citations.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| query | Yes | ||
| round | No | Research round number (auto-increments when omitted) | |
| queries | No | ||
| recency | No | ||
| max_sources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | Yes | |
| query | Yes | |
| round | Yes | |
| tookMs | Yes | |
| sources | Yes | |
| suggested_queries | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnly/openWorld/not destructive, and the description adds meaningful behavioral context: the tool is one round of an iterative workflow, returns gaps with suggested follow-up queries, and should be concatenated into a cited synthesis. This gives the agent useful expectations beyond the annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core capability, and contains no filler. The iterative call pattern and final synthesis are stated economically and clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description captures the essential workflow: perform one research round, follow the suggested follow-ups, stop when gaps are empty, then synthesize with citations. Since an output schema exists, return-value detail is not required. The main gap is the poor explanation of the parameter semantics, but overall the high-level usage context is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is very low (17%), so the description must compensate, but it only vaguely refers to 'suggested_queries' without explicitly mapping it to the 'queries' parameter. The meaning of 'layer', 'recency', 'round', and 'max_sources' is left entirely to the schema, which is insufficient given the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs 'one research round' combining 'complex fused search + coverage analysis + gaps + suggested follow-up queries.' This is a specific multi-phase verb-resource description that also distinguishes the tool from sibling tools like fetch_page and x_search by emphasizing iterative research coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage guidance: 'Call repeatedly with suggested_queries until gaps is empty, then synthesize with citations.' This clearly explains the iteration and termination conditions. However, it does not explicitly compare against sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_pageFetch PageARead-only
Fetch readable page text via Jina Reader with local HTML fallback. Use focus to filter paragraphs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | http(s) URL to fetch | |
| focus | No | Keep paragraphs matching these terms (~90% token savings) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| via | Yes | |
| tookMs | Yes | |
| content | Yes | |
| truncated | No | |
| word_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds behavioral context: use of Jina Reader with a local HTML fallback (indicating reliability strategy) and focus filtering for token savings. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the core function and method, second adds the optional focus feature. No redundant or wasted content. Front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (2 params), rich schema descriptions, annotations, and an output schema, the description covers the main behavior and the focus filter. It could mention error handling or timeout but is sufficient for a simple fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already well-described ('http(s) URL to fetch', 'Keep paragraphs matching these terms (~90% token savings)'). The description only echoes 'Use focus to filter paragraphs', adding no new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fetch readable page text via Jina Reader with local HTML fallback', which is a specific verb+resource. It distinguishes from sibling search tools (e.g., fused_search, deep_research) by targeting a single URL rather than performing searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are provided. However, the description implies usage for fetching content from a specific URL, and sibling tool names (search tools) suggest the context. Guidance is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fused_searchFused Web SearchARead-only
Multi-engine parallel web search with URL dedupe and cross-ranking. Prefer over built-in WebSearch for version-sensitive facts, APIs, comparisons, and research. Free layer: bing+ddg+yahoo+exa-free (no keys). Api layer adds antigravity+tavily/brave/exa when keyed.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| query | Yes | Search query (site:, -site:, "phrase", A OR B) | |
| engines | No | Engine subset override | |
| queries | No | Extra query variants (max 3) | |
| recency | No | ||
| complexity | No | ||
| max_results | No | Max results (default 6) | |
| exclude_domains | No | ||
| include_domains | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | Yes | |
| layer | Yes | |
| query | Yes | |
| tookMs | Yes | |
| results | Yes | |
| cacheHit | Yes | |
| warnings | No | |
| engineStats | No | |
| enginesUsed | No | |
| resultCount | Yes | |
| enginesRequested | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only behavior (readOnlyHint: true). The description adds context about URL dedupe, cross-ranking, and key requirements, which are behaviors not fully covered by annotations. This enriches transparency beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise—two sentences—and well-structured. It avoids redundancy and directly conveys essential information without extraneous words, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema provides some parameter descriptions and an output schema is present, the description's lack of return format or further behavioral details is acceptable. It supplies sufficient context for a search tool, but could be slightly more thorough regarding result handling or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameter semantics. Schema coverage is only 44% (query and max_results have descriptions), leaving many parameters (layer, engines, queries, recency, complexity, exclude_domains, include_domains) undocumented. Since the description adds no parameter details, it fails to compensate for incomplete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Multi-engine parallel search with URL dedupe and cross-ranking.' It specifies the action (search), the resource (multi-engine), and distinguishes from a built-in WebSearch, meeting the bar for specificity and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use this tool: 'Prefer over built-in WebSearch for version-sensitive facts, APIs, comparisons, and research.' It also differentiates free vs. API layers, offering clear usage context without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_layerSearch LayerA
Switch or show search layer. free = free — keyless engines only (bing + ddg + yahoo + exa-free). api = api — keyless legs plus one or more keyed tavily/brave/exa (all three recommended).
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate this is not read-only and not destructive; the description adds meaningful context by explaining what switching to 'free' vs 'api' changes about the underlying engine composition. It does not detail side effects or persistence, but for a simple configuration switch, the disclosed behavior is sufficient. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact, with the core action front-loaded in the first sentence and the mode meanings packed into the second. Every clause adds value, and there is no redundant repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter optional configuration tool with no output schema, the description covers the main decision space well. The only notable gap is 'show' behavior not being described in the mode definitions, but the overall tool is simple enough that this does not severely compromise completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining parameters. It successfully explains two of the three enum values ('free' and 'api') with concrete engine lists. The 'show' value is only implied by the opening verb and lacks explicit detail about what it displays or returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource combination, 'Switch or show search layer,' which clearly identifies the action and target. It also distinguishes this tool from the sibling search tools by focusing on layer configuration rather than executing searches, and the mode definitions reinforce the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to choose each layer value: 'free' for keyless engines only, 'api' for adding keyed engines, and 'show' to inspect the current layer. It does not explicitly state when not to use the tool or name alternatives, but the mode explanations provide practical selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_statsSearch StatsARead-only
Diagnostics: cache hits/misses, tier counts, engine availability, recent searches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| layer | Yes | |
| recent | Yes | |
| engines | Yes | |
| xSource | Yes | |
| cacheHits | Yes | |
| startedAt | Yes | |
| xOfficial | Yes | |
| tierCounts | Yes | |
| cacheMisses | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the behavioral profile is clear. The description adds useful context about what diagnostics are included but does not mention rate limits, permissions, or other traits beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise line with no wasted words. It is front-loaded with 'Diagnostics:' to immediately signal purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, an output schema, and clear sibling tool names (all search functions), the description is complete for an agent to understand the tool's purpose and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. The description adds value by listing the diagnostic categories, which is the only source of information about what the tool returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates this is a diagnostics tool for search statistics, listing specific categories (cache hits/misses, tier counts, etc.). It distinguishes itself from sibling tools like fused_search and deep_research, which are search functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests use for diagnostics, but does not explicitly state when to use this tool versus alternatives (e.g., 'use this to check cache health, not for searching'). No exclusion criteria or sibling differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_searchX (Twitter) SearchBRead-only
Real-time X/Twitter search: keyword, semantic, user profile, or thread. Works without credentials (multi-engine + oEmbed fallback). Official path via grok login / XAI_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| query | No | ||
| post_id | No | ||
| to_date | No | YYYY-MM-DD | |
| username | No | ||
| from_date | No | YYYY-MM-DD | |
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| via | Yes | |
| items | Yes | |
| tookMs | Yes | |
| results | Yes | |
| cacheHit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds valuable context: it works without credentials (multi-engine + oEmbed fallback) and mentions the official API path. This goes beyond what annotations provide, though it could detail fallback behavior more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main capability. It is concise without wasted words, but could be slightly more structured (e.g., separating search types from credential notes).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description does not explain how different search types require specific parameters (e.g., thread needs post_id, user needs username). It lacks completeness for a tool with 7 parameters and multiple search modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (only to_date and from_date have descriptions). The description does not explain any parameters, such as how query, post_id, username, or max_results relate to the search types. Given low coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs real-time X/Twitter search with four specific types: keyword, semantic, user profile, or thread. It also mentions credential modes. However, it does not explicitly differentiate from sibling tools like fused_search or search_layer, which could be helpful for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the tool works without credentials but has an official path via grok login or XAI_API_KEY. This provides some context on authentication, but it does not give any guidance on when to use this tool versus sibling tools or what prerequisites are needed for each search type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.6- Changed
deep_research1 field changed- added
Input schema / properties / roundAdded value: +{ + "description": "Research round number (auto-increments when omitted)", + "minimum": 1, + "type": "integer" +}
- Changed
fused_search4 fields changed- added
Output schema / properties / engineStatsAdded value: +{ + "additionalProperties": { + "additionalProperties": false, + "properties": { + "errors": { + "type": "number" + }, + "note": { + "type": "string" + }, + "used": { + "type": "boolean" + } + }, + "required": [ + "used", + "errors" + ], + "type": "object" + }, + "type": "object" +} - added
Output schema / properties / enginesRequestedAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / enginesUsedAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / warningsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
6 tool updates
v0.1.2- First observed
deep_research - First observed
fetch_page - First observed
fused_search - First observed
search_layer - First observed
search_stats - First observed
x_search
TDQS
Each tool has a clear, distinct purpose: fetch_page extracts text from URLs, fused_search performs general web search, search_layer manages API layer configuration, deep_research runs multi-step research, x_search targets Twitter-specific queries, and search_stats provides diagnostics. No two tools overlap in intent, making selection unambiguous.
All names use lowercase snake_case and follow a pattern of modifier+noun (e.g., fused_search, deep_research, x_search, search_stats), though fetch_page uniquely uses a verb+noun structure. This minor deviation is easily readable and does not create confusion.
With 6 tools, the set is well-scoped for a search/boost utility. Each tool contributes to distinct functional areas: fetching, multi-engine search, configuration, deep research, social search, and diagnostics, justifying its inclusion without bloating the surface.
The tool surface covers the full search lifecycle: input (fused_search, x_search), processing (deep_research includes analysis and follow-ups), content access (fetch_page), configuration (search_layer), and observability (search_stats). Minor omissions like image search or trend analysis are not critical for the core domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP — built for coding agents.
Scrape, crawl and search the web for AI agents via MCP.
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that enables coding agents to search X/Twitter and the web through the local Grok CLI, providing better search results than default Codex or Claude search without requiring an API key.366MIT
- AlicenseAqualityBmaintenanceMCP server for web search powered by Google AI Mode (Gemini). Enables any AI agent to search the web in real-time for free and without rate limits.2175MIT
- AlicenseNot gradedqualityBmaintenanceA zero-config web search and fetch MCP server for LLM agents, featuring multi-backend metasearch, persistent rolling cache, and structured error envelopes for retry-friendly interactions.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for multi-engine web search and web page fetching, supporting parallel search, content extraction, and optional LLM-powered search summarization and deep search.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mr-remon219/search-boost'
If you have feedback or need assistance with the MCP directory API, please join our Discord server