- 16 actionable enhancements from Aug 7 2026 scanner report - Organized by priority: HIGH (4), MEDIUM (7), LOW (5) - Includes dependency-aware execution order across 4 phases - Risk register with mitigations - Source: super-search-enhancement-scanner cron job output
11 KiB
Super Search MCP Enhancement Execution Plan
Created: 2026-08-07 Source: Super Search Enhancement Scanner (cron, Aug 7 2026) Status: OPEN
Overview
16 actionable enhancements identified for Super Search MCP (http://127.0.0.1:8899). Current stack: FastMCP 2.x, SearXNG Docker, Exa API, Firecrawl API, Trafilatura, DuckDuckGo fallback.
HIGH Priority (Execute First -- Weeks 1-2)
1. Upgrade FastMCP 2.x -> 3.x
Why: Provider architecture, component versioning, OpenTelemetry, tool timeouts, concurrent execution. Current 2.x is aging out.
Steps:
- Pin current FastMCP version to freeze baseline
- Review breaking changes in FastMCP 3.x changelog (v3.0 Feb 2026 -> v3.3.0 May 2026)
- Upgrade in venv:
pip install --upgrade fastmcp - Test all 14 Super Search tools individually
- Test fallback chain behavior (SearXNG -> Exa -> DDG -> Firecrawl)
- Verify health_check and circuit_status still work
- Deploy and monitor for 48h
Risk: Medium -- API surface is largely compatible but component versioning may affect tool registration Effort: 3-4 hours Dependencies: None
2. Add Brave Search API to Fallback Chain
Why: Independent 40B+ page index (no Google/Bing dependency). $5/1K queries. LLM Context endpoint returns pre-formatted results for AI use.
Steps:
- Sign up for Brave Search API free tier (2,000 queries/month)
- Store API key in
.env - Add
search_brave(query, limit)to server.py using Brave Web Search endpoint - Insert between SearXNG and DuckDuckGo in fallback chain
- Add to circuit_status tool
- Add
web_search_llm_contexttool using Brave's LLM Context endpoint - Test with 20 queries and compare result quality vs Exa/SearXNG
Risk: Low -- independent API, no shared infra Effort: 2-3 hours Dependencies: Brave API key (free signup)
3. Fix Exa API Deprecations
Why: Exa deprecated pdf, github, tweet categories and replaced livecrawl with maxAgeHours. research paper -> publication.
Steps:
- Audit server.py for all Exa category references
- Replace
category: "research paper"->category: "publication"inweb_search_academic - Remove
pdf,github,tweetfrom category mapping logic - Replace
livecrawl->maxAgeHoursinweb_extractExa path - Test academic search with new
publicationcategory (350M papers) - Test extraction with
maxAgeHoursparameter
Risk: Low -- straightforward replacements, Exa docs are clear Effort: 1 hour Dependencies: None
4. Add Crawl4AI as Self-Hosted Extraction Backend
Why: Free, no rate limits, stealth mode (undetected browser), JS rendering, parallel crawling. 77K GitHub stars. Handles bot-protected pages that Trafilatura and Firecrawl can't reach.
Steps:
- Install Crawl4AI:
pip install crawl4ai - Add
web_extract_stealth(url)tool -- uses Playwright stealth mode for JS-heavy/bot-protected pages - Add
web_extract_bulk(urls)tool -- parallel extraction for batch jobs - Wire into fallback chain: Trafilatura -> Firecrawl -> Crawl4AI
- Test on known-bot-protected URLs (VRBO, Expedia, etc.)
- Document Playwright dependency (may need
playwright install chromium)
Risk: Medium -- adds Chromium/Playwright dependency (~300MB), may increase RAM usage
Effort: 3-4 hours
Dependencies: pip install crawl4ai playwright, playwright install chromium
MEDIUM Priority (Plan Next -- Weeks 3-4)
5. Migrate SSE -> Streamable HTTP Transport
Why: MCP spec (2026-07-28) deprecated SSE. Streamable HTTP works with standard CORS, auth, and load balancers.
Steps:
- Verify FastMCP 3.x supports Streamable HTTP natively (it does)
- Update server.py transport configuration
- Test with Hermes Agent as MCP client
- Verify Caddy reverse proxy still works
- Update any client configurations pointing to SSE endpoint
Risk: Medium -- transport change affects all MCP clients Effort: 2 hours Dependencies: FastMCP 3.x upgrade (Item #1)
6. Add web_extract_document Tool
Why: Currently Super Search only handles URLs. Firecrawl /parse handles PDFs, Word docs, spreadsheets up to 50MB -> clean markdown.
Steps:
- Add
web_extract_document(file_url)tool wrapping Firecrawl/parse - Support PDF, DOCX, XLSX, PPTX formats
- Return clean markdown with structured data where available
- Add file size validation (max 50MB)
- Test with sample PDF, Word doc, and spreadsheet
Risk: Low -- wraps existing Firecrawl endpoint Effort: 1-2 hours Dependencies: None
7. Add Firecrawl Lockdown Mode
Why: Zero-outbound-request extraction from Firecrawl cache. Critical for sensitive/sandboxed use cases.
Steps:
- Add
lockdown: trueparameter toweb_extractwhen using Firecrawl - Document that Lockdown Mode means no live outbound requests
- Test that Lockdown Mode returns only cached/indexed content
Risk: Low -- feature flag on existing Firecrawl API Effort: 30 minutes Dependencies: None
8. Add Exa Agent as web_research_deep Tool
Why: Multi-step agentic research for complex queries. Exa Agent does recursive search + extraction + synthesis.
Steps:
- Review Exa Agent API docs and pricing ($0.10/ACU + $0.005/search)
- Add
web_research_deep(query, effort="medium")tool - Support
outputSchemafor structured outputs - Add cost estimation before execution (warn if >$0.50 estimated)
- Test with complex multi-step research query
Risk: Medium -- cost per query is higher, needs rate limiting Effort: 2-3 hours Dependencies: None
9. Add Result Deduplication Across Providers
Why: When multiple backends return the same URL, we serve duplicate results. Simple URL normalization + content hash dedup.
Steps:
- Implement URL normalization (strip tracking params, trailing slashes, www prefix)
- When merging results from multiple providers, hash URLs and deduplicate
- Keep the best snippet/metadata per unique URL (prefer richer provider)
- Add
dedup_summaryto response metadata (count of duplicates removed) - Test with queries that hit multiple providers
Risk: Low -- purely additive, no breaking changes Effort: 2 hours Dependencies: None
10. Evaluate 4get-hijacked for SearXNG
Why: Community project that proxies ~30 search engines into SearXNG-compatible format. Sidesteps broken major engine scrapers.
Steps:
- Clone and review
cra88y/4get-hijackedrepo - Test integration with our SearXNG Docker instance
- Benchmark result quality vs current engine pool
- Decide: add to search engine list or pass
Risk: Low -- evaluation only, no commitment Effort: 1-2 hours Dependencies: None
11. Add Tavily as web_search_ai Tool
Why: Purpose-built AI search with relevance scores. Not for general fallback chain (higher cost/latency) but excellent for AI-optimized results.
Steps:
- Sign up for Tavily free tier (1,000 queries/month)
- Add
web_search_ai(query, depth="advanced")as standalone tool - Return relevance-scored results with confidence markers
- Do NOT add to fallback chain (keep as separate tool for explicit use)
- Test against SearXNG/Exa for quality comparison
Risk: Low -- standalone tool, no chain impact Effort: 1.5 hours Dependencies: Tavily API key (free signup)
LOW Priority (Nice to Have -- Weeks 5+)
12. Add Exa Monitors Integration
Why: Scheduled searches with webhook delivery, deduplicated against previous runs.
Steps:
- Review Exa Monitors API
- Add
web_monitor(query, schedule, webhook_url)tool - Could replace or augment custom monitoring scripts
Effort: 2 hours Dependencies: Webhook endpoint for delivery
13. Add Brave Goggles for Custom Reranking
Why: Only search API that lets you boost/promote specific domains at query time.
Steps:
- Create Goggles config for IT Pro Partner preferred domains
- Add
gogglesparameter to Brave search calls - Test domain boosting effectiveness
Effort: 1 hour Dependencies: Brave Search API (Item #2)
14. Add LLM Metadata Enrichment
Why: Generate one-line semantic descriptions of extracted pages for better downstream RAG retrieval.
Steps:
- Add
enrich_metadata: trueoption to web_extract - Use cheap local model or Firecrawl's built-in summarization
- Tag results with semantic descriptions
- Benchmark retrieval improvement
Effort: 3-4 hours Dependencies: None (can use Firecrawl's question format or local model)
15. Evaluate Kagi Search API
Why: Premium search quality. Worth a trial key for comparison benchmarking.
Steps:
- Sign up for Kagi trial
- Run 50 side-by-side comparisons: Kagi vs Exa vs Brave vs SearXNG
- Score relevance, freshness, and coverage
- Decide: add to chain or pass
Effort: 2 hours Dependencies: Kagi API trial key
16. Add OpenTelemetry Tracing
Why: FastMCP 3.x has native OTEL -- spans for every search call, fallback path taken, extraction step.
Steps:
- Install OpenTelemetry packages
- Run with
opentelemetry-instrument fastmcp run server.py - Configure export to local collector or file
- Analyze fallback chain behavior
Effort: 1 hour Dependencies: FastMCP 3.x upgrade (Item #1)
Execution Order (Dependency-Aware)
Phase 1 (Week 1):
Day 1: Items #1 (FastMCP 3.0) + #3 (Exa deprecations) -- can run in parallel
Day 2: Item #2 (Brave Search API) -- independent
Day 3: Item #4 (Crawl4AI) -- independent, longest install
Day 4: Testing + burn-in of Phase 1 changes
Phase 2 (Week 2):
Item #5 (SSE -> Streamable HTTP) -- depends on #1
Items #6 + #7 (extract_document + Lockdown Mode) -- parallel, both Firecrawl
Item #9 (result dedup) -- independent
Phase 3 (Week 3):
Items #8 (Exa Agent) + #11 (Tavily) -- parallel, both new API integrations
Item #10 (4get-hijacked eval) -- independent
Phase 4 (Week 4+):
Items #12-#16 -- low priority, pick up as time allows
Risk Register
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| FastMCP 3.x breaking API changes | Medium | High | Pin 2.x, test exhaustively before deploy |
| Crawl4AI RAM usage with Chromium | Medium | Medium | Monitor RAM, consider Docker isolation |
| Exa Agent cost overruns | Low | Medium | Per-query cost estimate cap |
| Brave API rate limits | Low | Low | Free tier sufficient for testing |
| Streamable HTTP transport issues | Low | High | Test with Hermes Agent before cutting over |
Success Metrics
- All 14 existing tools continue working post-upgrade
- Brave API adds independent fallback source (no Google/Bing dependency)
- Crawl4AI handles 3+ known-bot-protected sites that previously failed
- Result dedup eliminates >=80% of cross-provider duplicates
- Zero regressions in Hermes Agent's use of Super Search tools
Reference
- Super Search server:
/root/docker/super-search/server.py - Systemd service:
super-search.service - Venv:
/root/docker/super-search/venv/ - Health endpoint:
http://127.0.0.1:8899/health - Full audit: Aug 1, 2026 -- zero breaking patterns for FastMCP 4.0