MCP-first metasearch backend for AI agents and structured search workflows. Aggregates multiple providers into a stable JSON schema.
MetaSearchMCP provides 14 tools with complete input schemas and descriptions across the board. All tools follow verb_noun naming conventions (search_*, list_*, compare_*, provider_*). However, definition quality is held back by: (1) Generic, boilerplate descriptions that lack specificity about WHEN to use each tool vs. alternatives; (2) No output schema documentation, responses are not formally specified, forcing LLMs to infer result structure; (3) Minimal error handling guidance, no recovery hints or retry classification; (4) Parameter descriptions are functional but lack constraint details (e.g., what does 'tag' mean in provider_health?); (5) No documented differences between search_web, search_google, search_academic, search_code, etc., an LLM must guess which to call. Tools are well-formed but lack the LLM-optimization and composition clarity needed for a 70+ score.
Compare providers side by side for the same query.
List all available search providers with their names, descriptions, and tags. Use this to discover which providers are available for targeted searches.
Check the health status of all configured providers. Returns availability, API key status, and last-known error for each provider.
Search academic and reference sources for research workflows.
Search biomedical and life-science databases: proteins (UniProt), clinical trials (ClinicalTrials.gov), and literature (PubMed, Europe PMC).
Search code repositories, packages, and developer resources across GitHub, GitLab, npm, PyPI, crates.io, pkg.go.dev, MetaCPAN, lib.rs, Maven Central, RubyGems, Docker Hub, Stack Overflow, and Hacker News.
No output schema documentation. All 14 tools return results but their structure (field names, types, pagination) is not specified in the definitions. LLMs must infer result shape, risking incorrect field access and failed downstream tool calls.
Descriptions lack domain specificity. All search_* tools have near-identical descriptions ('Search [X] across [providers]...') with no guidance on WHEN to use search_web vs. search_code vs. search_finance. An LLM cannot distinguish intent and will guess wrong.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
Search stock tickers, company names, and financial instruments across finance providers (Yahoo Finance, Alpha Vantage, Finnhub, SEC EDGAR filings).
Search GitHub repositories with structured metadata.
Search Google through configured hosted providers.
Search images across image providers (Openverse, Wikimedia Commons, Flickr, Unsplash, NASA Image Library).
Search recent news headlines and articles across news providers (Google News, Hacker News, Lobsters, Lemmy, Reddit).
Search social media posts and community discussions across Bluesky, Mastodon, Lemmy, and Lobsters.
Search videos and streaming media across PeerTube instances.
Aggregate structured web search results from all enabled providers.
No error handling guidance. Tools do not document failure modes (e.g., 'If a provider is down, the result includes partial data with an error field'), retry strategies, or recovery hints (e.g., 'If no results, try search_web with broader terms').
Parameter descriptions missing constraint details. 'providers' is described as 'Explicit provider list; empty = all enabled' but does not state: (a) what providers exist, (b) how to discover them, (c) what format they must be in. Same for 'tags', what tags are valid?
Missing composition hints. Tools like search_web, search_google, search_code all exist but their relationship is unexplained. An LLM doesn't know if these are alternatives or complementary, or whether results from one should feed into another.