FastMcp 3.2 server plus webapp for human/agentic arxiv and doi paper search, rag and store
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit c627807 · analyzer v17 · 1d ago
skills & prompt files 6
- agent-rulessandraschi-arxiv-mcp-c627807/.cursorrules
- agent-rulessandraschi-arxiv-mcp-c627807/AGENTS.md
- agent-rulessandraschi-arxiv-mcp-c627807/CLAUDE.md
- prompt-filesandraschi-arxiv-mcp-c627807/assets/prompts/system.md
- prompt-filesandraschi-arxiv-mcp-c627807/assets/prompts/user.md
- skillsandraschi-arxiv-mcp-c627807/src/arxiv_mcp/skills/arxiv-researcher/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 18
- fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/app.py :7
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/arxiv_html.py :712
async with aiofiles.open(dest_path, "wb") as fh: - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/capabilities.py :5
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_affiliations.py :8
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_media_feeds.py :9
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_service.py :25
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_watch_authors.py :8
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/config.py :3
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/firefront_service.py :8
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/help_content.py :5
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/http.py :11
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/publication_subscriptions.py :10
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/readly_client.py :10
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/runtime_settings.py :7
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :7
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/services/corpus.py :9
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/services/vector_rag.py :14
from pathlib import Path - fs sandraschi-arxiv-mcp-c627807/tools/repo_stats.py :14
from pathlib import Path
shell / exec 1
- shell sandraschi-arxiv-mcp-c627807/tools/repo_stats.py :12
import subprocess
network 15
- net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/app.py :543
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/arxiv_html.py :12
import urllib.parse - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/brighthand_fetch.py :9
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_media.py :11
from urllib.parse import quote_plus - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_media_feeds.py :13
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_service.py :28
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/doi_resolver.py :24
from urllib.parse import quote - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/http.py :14
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/lab_blog.py :23
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/pipeline_liveness_service.py :9
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/publication_auth_fetch.py :9
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/publication_subscriptions.py :12
from urllib.parse import urlparse - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/readly_client.py :13
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/services/epistemic_deep.py :11
import httpx - net sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/startup_probe.py :8
import httpx
secrets 1
- secrets sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/brighthand_fetch.py :21
or os.environ.get("ARXIV_MCP_BRIGHTDATA_API_TOKEN")
database 2
- db sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/codehunt_service.py :22
import sqlite3 - db sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/services/corpus.py :7
import sqlite3
tool registrations 41
- search_papers sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :95
- get_paper_details sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :137
- fetch_full_text sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :164
- list_category_latest sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :296
- find_connected_papers sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :332
- ingest_paper_to_corpus sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :363
- analyze_paper_epistemics sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :398
- ingest_and_analyze_paper sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :422
- deep_analyze_paper_epistemics sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :438
- list_depot_by_epistemics sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :479
- search_depot_corpus sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :504
- depot_rag_status sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :548
- reindex_depot_vectors sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :556
- store_paper_to_calibre sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :565
- compare_papers_convergence sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :747
- search sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :786
- searchAdvanced sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :830
- getPaper sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :873
- getContent sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :888
- getRecent sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :905
- listCategories sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :921
- resolve_doi sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :954
- fetch_doi_content sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1006
- arxiv_agentic_assist sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1115
- arxiv_sampling_hint sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1156
- fetch_lab_post sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1183
- list_lab_posts sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1210
- fetch_anthropic_post sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1238
- list_anthropic_posts sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/server.py :1266
- run_firefront_scan_tool sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :11
- run_codehunt_scan_tool sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :51
- repoll_codehunt_tool sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :86
- codehunt_stats_tool sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :102
- check_codehunt_media_tool sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :107
- pipeline_liveness_tool sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :123
- arxiv_help sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/extensions.py :130
- show_citation_graph_card sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/prefab/citation_card.py :37
- show_depot_rag_status_card sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/prefab/depot_cards.py :17
- show_depot_stats_card sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/prefab/depot_cards.py :34
- show_epistemic_profile_card sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/prefab/epistemic_card.py :24
- show_paper_card sandraschi-arxiv-mcp-c627807/src/arxiv_mcp/tools/prefab/paper_card.py :45
declared dependencies 6
- fastmcp@>=3.2.0
- arxiv@>=2.1.0
- httpx@>=0.27.0
- beautifulsoup4@>=4.12.0
- html2text@>=2024.2.26
- fastapi@>=0.115.0