https://github.com/damionrashford/RivalSearchMCP
· scanned 2026-05-15 06:14 UTC (3 weeks ago)
· 10 languages
105 findings (50 legacy + 55 scanner) 89th percentile · Python · small (2-20K LoC) Scanner says 91 (lower by 6)
Last scanned 3 weeks ago · v1 · 47 findings from 1 source. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
96.3 | 0.25 | 24.07 |
testing_score |
87.0 | 0.20 | 17.40 |
documentation_score |
74.0 | 0.15 | 11.10 |
practices_score |
65.0 | 0.15 | 9.75 |
code_quality |
71.0 | 0.10 | 7.10 |
| Overall | 1.00 | 84.4 |
web: 1.6 ·
agent: 2.1
All 768 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_wrap_http_app_with_security_middleware |
software | healthy | server.py:161 |
_http_app |
software | healthy | server.py:168 |
app |
software | healthy | tests/test_inmemory_transport.py:20 |
test_tools_list_matches_registered |
software | healthy | tests/test_inmemory_transport.py:27 |
test_prompts_list |
software | healthy | tests/test_inmemory_transport.py:50 |
test_prompt_get_returns_message_objects |
software | healthy | tests/test_inmemory_transport.py:66 |
test_tool_schemas_exclude_injected_ctx |
software | healthy | tests/test_inmemory_transport.py:84 |
test_research_memory_list_sessions |
software | healthy | tests/test_inmemory_transport.py:96 |
pytest_configure |
software | healthy | tests/conftest.py:8 |
pytest_runtest_setup |
software | healthy | tests/conftest.py:15 |
pytest_runtest_teardown |
software | healthy | tests/conftest.py:20 |
pytest_runtest_logreport |
software | healthy | tests/conftest.py:25 |
pytest_sessionfinish |
software | healthy | tests/conftest.py:33 |
test_has_null_id_helper |
software | healthy | tests/test_null_id_validation.py:12 |
http_client |
software | healthy | tests/test_null_id_validation.py:24 |
test_rejects_null_id_request |
software | healthy | tests/test_null_id_validation.py:32 |
test_allows_valid_request_id_string |
software | healthy | tests/test_null_id_validation.py:49 |
test_allows_notification_without_id |
software | healthy | tests/test_null_id_validation.py:61 |
http_client |
software | healthy | tests/test_cors_validation.py:16 |
test_rejects_arbitrary_origin |
software | healthy | tests/test_cors_validation.py:27 |
test_allows_localhost_for_local_development |
software | healthy | tests/test_cors_validation.py:43 |
test_rejects_preflight_from_untrusted_origin |
software | healthy | tests/test_cors_validation.py:62 |
test_allows_trusted_origin |
software | healthy | tests/test_cors_validation.py:77 |
test_preflight_from_trusted_origin |
software | healthy | tests/test_cors_validation.py:93 |
test_no_origin_header_passes_through |
software | healthy | tests/test_cors_validation.py:112 |
test_get_allowed_origins_defaults |
software | healthy | tests/test_cors_validation.py:126 |
test_get_allowed_origins_from_env |
software | healthy | tests/test_cors_validation.py:135 |
create_client |
software | healthy | tests/mcp_client.py:26 |
demo |
software | healthy | tests/mcp_client.py:52 |
call_tool |
software | healthy | tests/test_all_tools_comprehensive.py:13 |
main |
software | healthy | tests/run.py:26 |
__init__ |
software | healthy | tests/test_logging.py:27 |
write |
software | healthy | tests/test_logging.py:31 |
flush |
software | healthy | tests/test_logging.py:40 |
isatty |
software | healthy | tests/test_logging.py:47 |
fileno |
software | healthy | tests/test_logging.py:50 |
setup_test_logging |
software | healthy | tests/test_logging.py:54 |
log_test_event |
software | healthy | tests/test_logging.py:96 |
get_log_path |
software | healthy | tests/test_logging.py:119 |
test_web_search_params |
software | healthy | tests/param_test_runner.py:22 |
test_social_search_params |
software | healthy | tests/param_test_runner.py:36 |
test_news_aggregation_params |
software | healthy | tests/param_test_runner.py:62 |
test_github_search_params |
software | healthy | tests/param_test_runner.py:73 |
test_content_operations_params |
software | healthy | tests/param_test_runner.py:84 |
test_map_website_params |
software | healthy | tests/param_test_runner.py:109 |
test_research_topic_params |
software | healthy | tests/param_test_runner.py:120 |
test_scientific_research_params |
software | healthy | tests/param_test_runner.py:132 |
test_document_analysis_params |
software | healthy | tests/param_test_runner.py:156 |
test_research_agent_params |
software | healthy | tests/param_test_runner.py:166 |
_run_tests |
software | healthy | tests/param_test_runner.py:179 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
fastmcp.json |
software | healthy | fastmcp.json |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
server.py |
software | healthy | server.py |
pyproject.toml |
software | healthy | pyproject.toml |
requirements.txt |
software | healthy | requirements.txt |
AGENTS.md |
software | healthy | AGENTS.md |
run_tests_with_logging.py |
software | warning | tests/run_tests_with_logging.py |
test_inmemory_transport.py |
software | healthy | tests/test_inmemory_transport.py |
conftest.py |
software | healthy | tests/conftest.py |
CLAUDE.md |
software | healthy | tests/CLAUDE.md |
test_null_id_validation.py |
software | healthy | tests/test_null_id_validation.py |
param_test_web_search.md |
software | healthy | tests/param_test_web_search.md |
browser_client.html |
software | healthy | tests/browser_client.html |
test_cors_validation.py |
software | healthy | tests/test_cors_validation.py |
mcp_client.py |
software | healthy | tests/mcp_client.py |
test_all_tools_comprehensive.py |
software | healthy | tests/test_all_tools_comprehensive.py |
run.py |
software | healthy | tests/run.py |
test_logging.py |
software | healthy | tests/test_logging.py |
AGENTS.md |
software | healthy | tests/AGENTS.md |
param_test_runner.py |
software | healthy | tests/param_test_runner.py |
test_web_search.py |
software | healthy | tests/tools/test_web_search.py |
test_github_search.py |
software | healthy | tests/tools/test_github_search.py |
__init__.py |
software | healthy | tests/tools/__init__.py |
test_document_analysis.py |
software | healthy | tests/tools/test_document_analysis.py |
test_scientific_research.py |
software | healthy | tests/tools/test_scientific_research.py |
test_map_website.py |
software | healthy | tests/tools/test_map_website.py |
test_social_search.py |
software | healthy | tests/tools/test_social_search.py |
test_content_operations.py |
software | healthy | tests/tools/test_content_operations.py |
test_news_aggregation.py |
software | healthy | tests/tools/test_news_aggregation.py |
test_research_topic.py |
software | healthy | tests/tools/test_research_topic.py |
SKILL.md |
software | healthy | skills/rival-search-mcp/SKILL.md |
content.md |
software | healthy | skills/rival-search-mcp/resources/content.md |
search.md |
software | healthy | skills/rival-search-mcp/resources/search.md |
research.md |
software | healthy | skills/rival-search-mcp/resources/research.md |
cli.py |
software | healthy | skills/rival-search-mcp/scripts/cli.py |
claude-code-review.yml |
software | healthy | .github/workflows/claude-code-review.yml |
ci.yml |
software | healthy | .github/workflows/ci.yml |
claude.yml |
software | healthy | .github/workflows/claude.yml |
__init__.py |
software | healthy | src/__init__.py |
prompts.py |
software | healthy | src/prompts.py |
__init__.py |
software | healthy | src/config/__init__.py |
user_agents.py |
software | healthy | src/config/user_agents.py |
environment.py |
software | healthy | src/config/environment.py |
archives.py |
software | healthy | src/config/archives.py |
paywall.py |
software | healthy | src/config/paywall.py |
__init__.py |
software | healthy | src/middleware/__init__.py |
null_id_validation.py |
software | healthy | src/middleware/null_id_validation.py |
cors_validation.py |
software | healthy | src/middleware/cors_validation.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TeeWriter |
software | healthy | tests/test_logging.py:24 |
NullIdValidationMiddleware |
software | healthy | src/middleware/null_id_validation.py:53 |
CORSOriginValidationMiddleware |
software | healthy | src/middleware/cors_validation.py:72 |
PerformanceMonitoringMiddleware |
software | healthy | src/middleware/middleware.py:21 |
SecurityMiddleware |
software | healthy | src/middleware/middleware.py:73 |
PerformanceMonitor |
software | healthy | src/performance/__init__.py:9 |
LRUCache |
software | healthy | src/performance/performance.py:21 |
ConcurrentProcessor |
software | healthy | src/performance/performance.py:143 |
PerformanceMonitor |
software | healthy | src/performance/performance.py:217 |
PerformanceMonitorContext |
software | healthy | src/performance/performance.py:318 |
MultiSearchOrchestrator |
software | healthy | src/tools/multi_search.py:21 |
SecurityManager |
software | healthy | src/core/security/__init__.py:9 |
RateLimiter |
software | healthy | src/core/security/security.py:17 |
InputValidator |
software | healthy | src/core/security/security.py:122 |
SecurityMiddleware |
software | healthy | src/core/security/security.py:308 |
WebsiteTraverser |
software | healthy | src/core/traverse/core.py:24 |
DomainTier |
software | healthy | src/core/quality/score.py:40 |
QualityScore |
software | healthy | src/core/quality/score.py:334 |
GitHubSearch |
software | healthy | src/core/github_api/search.py:13 |
CacheConfig |
software | healthy | src/core/cache/cache_manager.py:27 |
CacheEntry |
software | healthy | src/core/cache/cache_manager.py:55 |
BaseCacheBackend |
software | healthy | src/core/cache/cache_manager.py:100 |
RedisCacheBackend |
software | healthy | src/core/cache/cache_manager.py:128 |
FileCacheBackend |
software | healthy | src/core/cache/cache_manager.py:258 |
CacheManager |
software | healthy | src/core/cache/cache_manager.py:417 |
WikipediaSearchEngine |
software | healthy | src/core/search/engines/wikipedia/wikipedia_engine.py:16 |
DuckDuckGoSearchEngine |
software | healthy | src/core/search/engines/duckduckgo/duckduckgo_engine.py:25 |
YahooSearchEngine |
software | healthy | src/core/search/engines/yahoo/yahoo_engine.py:25 |
BingSearchEngine |
software | healthy | src/core/search/engines/bing/bing_engine.py:25 |
MojeekSearchEngine |
software | healthy | src/core/search/engines/mojeek/mojeek_engine.py:24 |
MultiSearchResult |
software | healthy | src/core/search/core/multi_engines.py:32 |
BaseSearchEngine |
software | healthy | src/core/search/core/multi_engines.py:81 |
DatasetDiscoveryOrchestrator |
software | healthy | src/core/scientific/datasets/orchestrator.py:18 |
KaggleDatasetProvider |
software | healthy | src/core/scientific/datasets/providers/kaggle.py:20 |
DataverseDatasetProvider |
software | healthy | src/core/scientific/datasets/providers/dataverse.py:22 |
HuggingFaceDatasetProvider |
software | healthy | src/core/scientific/datasets/providers/huggingface.py:19 |
ZenodoDatasetProvider |
software | healthy | src/core/scientific/datasets/providers/zenodo.py:21 |
AcademicSearchOrchestrator |
software | healthy | src/core/scientific/search/orchestrator.py:19 |
ArXivProvider |
software | healthy | src/core/scientific/search/providers/arxiv.py:20 |
CrossRefProvider |
software | healthy | src/core/scientific/search/providers/crossref.py:25 |
EuropePMCProvider |
software | healthy | src/core/scientific/search/providers/europepmc.py:24 |
OpenAlexProvider |
software | healthy | src/core/scientific/search/providers/openalex.py:42 |
PubMedProvider |
software | healthy | src/core/scientific/search/providers/pubmed.py:24 |
MediumSearch |
software | healthy | src/core/social/medium.py:71 |
LobstersSearch |
software | healthy | src/core/social/lobsters.py:61 |
LemmySearch |
software | healthy | src/core/social/lemmy.py:19 |
BlueskySearch |
software | healthy | src/core/social/bluesky.py:22 |
ProductHuntSearch |
software | healthy | src/core/social/producthunt.py:46 |
HackerNewsSearch |
software | healthy | src/core/social/hackernews.py:13 |
StackOverflowSearch |
software | healthy | src/core/social/stackoverflow.py:24 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
tools |
software | healthy | tests/tools |
skills |
software | healthy | skills |
rival-search-mcp |
software | healthy | skills/rival-search-mcp |
resources |
software | healthy | skills/rival-search-mcp/resources |
scripts |
software | healthy | skills/rival-search-mcp/scripts |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
config |
software | healthy | src/config |
middleware |
software | healthy | src/middleware |
performance |
software | healthy | src/performance |
utils |
software | healthy | src/utils |
routes |
software | healthy | src/routes |
logging |
software | healthy | src/logging |
tools |
software | healthy | src/tools |
core |
software | healthy | src/core |
security |
software | healthy | src/core/security |
traverse |
software | healthy | src/core/traverse |
quality |
software | healthy | src/core/quality |
github_api |
software | healthy | src/core/github_api |
cache |
software | healthy | src/core/cache |
search |
software | healthy | src/core/search |
engines |
software | healthy | src/core/search/engines |
wikipedia |
software | healthy | src/core/search/engines/wikipedia |
duckduckgo |
software | healthy | src/core/search/engines/duckduckgo |
yahoo |
software | healthy | src/core/search/engines/yahoo |
bing |
software | healthy | src/core/search/engines/bing |
mojeek |
software | healthy | src/core/search/engines/mojeek |
core |
software | healthy | src/core/search/core |
scientific |
software | healthy | src/core/scientific |
datasets |
software | healthy | src/core/scientific/datasets |
providers |
software | healthy | src/core/scientific/datasets/providers |
search |
software | healthy | src/core/scientific/search |
providers |
software | healthy | src/core/scientific/search/providers |
social |
software | healthy | src/core/social |
memory |
software | healthy | src/core/memory |
fetch |
software | healthy | src/core/fetch |
content |
software | healthy | src/core/content |
conflict |
software | healthy | src/core/conflict |
news |
software | healthy | src/core/news |
metrics |
software | healthy | src/core/metrics |
pdf |
software | healthy | src/core/pdf |
| Label | Layer | Status | Path |
|---|---|---|---|
4.13.0.90 |
network | healthy | requirements.txt |
127.0.0.1 |
network | healthy | tests/test_cors_validation.py |
126.0.0.0 |
network | healthy | src/config/user_agents.py |
120.0.0.0 |
network | healthy | src/utils/agents.py |
119.0.0.0 |
network | healthy | src/utils/agents.py |
118.0.0.0 |
network | healthy | src/utils/agents.py |
131.0.0.0 |
network | healthy | src/core/search/core/multi_engines.py |
| Label | Layer | Status | Path |
|---|---|---|---|
claude-review |
cicd | healthy | .github/workflows/claude-code-review.yml |
lint |
cicd | healthy | .github/workflows/ci.yml |
test |
cicd | healthy | .github/workflows/ci.yml |
inspect |
cicd | healthy | .github/workflows/ci.yml |
claude |
cicd | healthy | .github/workflows/claude.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | src/tools/memory.py |
mysql |
data | healthy | src/tools/memory.py |
redis |
data | healthy | src/core/cache/cache_manager.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::claude-code-review |
cicd | healthy | .github/workflows/claude-code-review.yml |
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
gha::claude |
cicd | healthy | .github/workflows/claude.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-3rzzlpfx |
software | healthy | /tmp/repobility-clone-3rzzlpfx |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | src/core/pdf/analyzer.py |
| Label | Layer | Status | Path |
|---|---|---|---|
CLAUDE_CODE_OAUTH_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/5be3fdcd-0b1f-43ce-af67-f7e88193ce14/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/5be3fdcd-0b1f-43ce-af67-f7e88193ce14/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.