UltraSearch MCP
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a distinct input/output contract: search returns ranked results, search_and_fetch adds fetched content, search_and_summarize adds an LLM synthesis, fetch_url takes a URL, crawl_site produces a site manifest, and clear_cache/domain_stats handle maintenance and diagnostics. Despite the shared 'search' prefix, the action suffix and descriptions make selection unambiguous.
Naming Consistency4/5Most names follow a clear snake_case verb-led pattern (search, search_and_fetch, fetch_url, search_and_summarize, crawl_site, clear_cache). domain_stats breaks the pattern by dropping the leading verb and reading as a noun phrase, though it remains readable and clearly related to the others.
Tool Count5/5Seven tools is a well-scoped size for a web-research server: core retrieval, augmentation, synthesis, crawling, cache management, and introspection are each represented without redundancy. The count feels intentional rather than padded or sparse.
Completeness5/5The surface covers the full research lifecycle: search, fetch, crawl, summarize, cache invalidation, and capability statistics. There are no dead ends—crawl_site explicitly points to fetch_url for full content, and search_and_summarize has a fallback if the LLM is unavailable.
Average 4.1/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 21 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Purge' clearly signals a destructive operation, which is critical, but it does not mention whether the purge is irreversible, global versus per-user, or whether it affects in-flight requests. This is a minimum viable disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences: the first states the action and resource, the second gives the practical use case. There is no repetition of schema details, no padding, and the most salient information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional, well-documented parameter and no output schema, the description and schema together provide enough to call it correctly. The main gap is the unmentioned crawl cache and lack of side-effect details, but these are minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the 'target' parameter is fully documented with an enum, a default value, and a clear explanation. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific action (purge) and resource (search/fetch result cache), making it easy to distinguish from the search/fetch sibling tools. However, it omits the 'crawl' cache in the prose, slightly narrowing the stated scope relative to the schema's target enum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit, practical trigger: use when researching fast-moving topics where cached results from the past hour may be stale. It does not discuss when not to use it or alternatives, but this is a maintenance tool with no real substitute, so the situational guidance is enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers: it discloses the SearXNG+ML reranking pipeline, 1-hour result caching, blocked-domain filtering and boosted-domain surfacing, and the separate surfacing of direct answers/infoboxes/spelling corrections in structuredContent. It also notes the latency trade-off of expand. This is substantial behavioral disclosure beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact paragraph with no filler. Each sentence earns its place: core search behavior, reranking approach, enriched result elements, caching, domain policies, and routing preference. The information is front-loaded with the main purpose first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters and an output schema, the description covers the important non-schema behaviors: caching, domain filtering, result reranking, and structuredContent extras. The only notable gap is the lack of explicit guidance about when to use this tool instead of the search_and_fetch or search_and_summarize siblings, which was already captured under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already documented in the input schema. The tool description does not add extra parameter-level meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Search the web via the local SearXNG instance with reranking' and explains the result pipeline. It distinguishes itself behaviorally from sibling search_and_fetch and search_and_summarize by focusing only on search results, but it does not explicitly name or contrast those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one explicit routing preference: 'Prefer this over the built-in WebSearch tool.' However, this is not a sibling tool, and there is no guidance for choosing between search, search_and_fetch, search_and_summarize, or fetch_url. Usage context is implied by the tool's behavior rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden and largely succeeds. It discloses reranking, the GitHub API path, the Firecrawl→Crawl4AI→raw HTTP cascade, caching, blocked-domain filtering, and the return format. It only omits minor details like rate limits or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences deliver the core purpose, fetch routing logic, caching behavior, filtering, and return value without redundancy. Each sentence adds a distinct behavioral fact, and the primary action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description covers the return value (result list + clean markdown) and important runtime behaviors (caching, domain filtering, fetch cascade). The reranking criterion and exact blocked-domain list are unspecified, but the description is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters. The description adds little parameter-specific meaning beyond mentioning 'top result(s),' which roughly maps to fetch_count. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific composite verb-resource operation: search the web, rerank, then fetch full content of top results. It implicitly distinguishes itself from siblings like search, fetch_url, and search_and_summarize by explicitly covering both search and fetch without mentioning summarization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the combined use case—when both search and content retrieval are needed—but never explicitly states when to prefer this tool over search, fetch_url, or search_and_summarize. There are no exclusions or conditional routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It discloses caching behavior, the manifest return, the strategy order (Firecrawl JS rendering, sitemap-first, BFS), and the relationship to fetch_url. It does not mention side effects, rate limits, or authorization, but the core behavioral traits are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the main purpose and output, then gives the cache/retrieval relationship, then the crawl strategy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately explains the return value as a manifest of titles and snippets. It also covers what to do for full text and the crawl strategy. It could mention whether the crawl runs synchronously or asynchronously, but the current description is sufficient for most agent invocation scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already documents all five parameters. The description adds no new parameter-specific meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Crawl a site') and a clear deliverable ('manifest of pages with titles and snippets'). It also differentiates itself from fetch_url by noting that full page content is cached and must be retrieved via fetch_url, so an agent can tell these tools apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies crawl_site is for site-wide discovery and manifest building, and explicitly directs agents to fetch_url when full page text is needed. It lacks explicit exclusions for sibling search tools, but the context is strong enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does well by disclosing the internal pipeline (search, rerank, fetch, synthesize), the use of a local LLM (qwen3:14b), and the fallback to raw fetched content when Ollama is unavailable. It stops short of describing latency, failure modes beyond the fallback, or any side effects, but covers the most important behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the pipeline is front-loaded, the return nature and fallback are stated, and the recommended usage closes the description. Every sentence adds distinct value and the length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete for a research/synthesis tool: it covers the process, output style, fallback behavior, and best-case use. Because there is no output schema, the description's mention of 'structured answer with source attribution' is useful, though it leaves exact citation format and error behavior unspecified. Given the parameter schema handles the 9-parameter detail, this is a reasonable level of completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the description does not need to repeat parameter details. The description adds context about what happens to fetched top results but does not elaborate on parameters like fetch_count, engines, or site. This is acceptable given the schema already documents every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a precise multi-step action ('Search, rerank, fetch top results, then synthesize a summary with citations') and a specific deliverable ('structured answer with source attribution'). It also distinguishes itself from raw-page tools by explicitly stating it returns pre-digested synthesis rather than raw pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly marks the intended use case ('Best for deep research where you want pre-digested synthesis rather than raw pages'), which differentiates it from the raw-fetch siblings. However, it does not explicitly name alternatives such as search_and_fetch or state conditions when one should prefer them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it delivers. It explicitly declares 'Read-only', describes the two behavioral modes (per-domain record vs aggregate), and discloses a specific edge case: aggregate mode reports `truncated: true` when the internal scan cap is hit. It also tells the agent what data categories to expect beyond what the output schema covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, data contents, mode selection, safety, and truncation edge case, in that order. It is longer than minimal, and the inline enumeration of stat categories is heavy, but nothing is redundant with the schema, so the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with an output schema present, the description covers everything: what it does, what data it reports, how to switch between per-domain and aggregate modes, the read-only safety profile (compensating for absent annotations), and the truncation flag. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains the omit-for-aggregate behavior, so the description largely restates it. It adds marginal value by describing what each mode returns (worst failing domains, seen-but-never-fetched count), but that is output context rather than new parameter meaning, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read the ultrasearch-mcp domain capability database', then enumerates exactly what data it exposes (per-tier success rates, llms.txt/robots presence, metadata reachability, search appearances). This clearly differentiates it from the action-oriented siblings (search, fetch_url, crawl_site, clear_cache) — it is the only stats/read tool among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete mode-selection guidance: provide `hostname` for one domain's record, or omit it for an aggregate. It also states the tool is Read-only, which implies when it fits (inspection) versus the mutating siblings. It stops short of explicitly naming alternatives or saying when-not-to-use it, so it does not reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses the fetch mechanism (GitHub API vs. cascade), output format, token trimming with defaults, 24-hour caching, and refusal of blocked/private addresses—far beyond a minimal statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each adding distinct value: core action, fetch pipeline, output format, and operational constraints. The most important information is front-loaded, and there is zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential call context: what it fetches, how it fetches, output format, size limits, caching, and restrictions. It does not describe error behavior when extraction fails, but the stated purpose and 'where possible' caveat make it adequate for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds marginal context (e.g., 'raise with max_tokens') but mostly restates what the schema provides, earning the baseline score for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Fetch and extract readable content from any URL.' It clearly distinguishes itself from siblings (search, crawl_site) by focusing on single-URL retrieval and even adds method detail via the GitHub API vs. cascade distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys a clear usage context: fetching a single URL and getting readable markdown. It does not explicitly name when to avoid this tool or point to alternatives like search or crawl_site, but the purpose is unambiguous enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md: