scholar-feed-mcp
v1.2.1
Published
MCP server for Scholar Feed — search 512k+ CS/AI papers with LLM-powered analysis
Maintainers
Readme
Scholar Feed MCP Server
Search 512,000+ CS/AI/ML research papers with LLM-powered novelty analysis from Claude Code, Cursor, or any MCP client.
Scholar Feed indexes arXiv papers daily and ranks them using a multi-signal scoring system (recency, citation velocity, institutional reputation, code availability). Each paper has an LLM-generated summary and novelty score.
Quick Start
npx scholar-feed-mcp initThis interactive wizard will:
- Ask for your API key (get one at scholarfeed.org/settings)
- Detect your MCP client (Claude Code, Cursor, or Claude Desktop)
- Write the config and verify the connection
That's it. Try asking: "Search for recent papers on test-time compute scaling"
What You Can Do
Technology scouting — "What novel research on retrieval-augmented generation was published this month?"
Literature review — "Find papers similar to 2401.04088 and export their BibTeX"
Trend monitoring — "What's trending in cs.CV this week? Summarize the top 3."
Deep dives — "Run a deep research session on 'reasoning in large language models'"
Manual Installation
Claude Code
claude mcp add scholar-feed -e SF_API_KEY=sf_your_key_here -- npx -y scholar-feed-mcpCursor (.cursor/mcp.json)
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp"],
"env": { "SF_API_KEY": "sf_your_key_here" }
}
}
}Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp"],
"env": { "SF_API_KEY": "sf_your_key_here" }
}
}
}Project-scoped (.mcp.json)
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp"],
"env": { "SF_API_KEY": "${SF_API_KEY}" }
}
}
}Windows note: Use "command": "cmd" and "args": ["/c", "npx", "-y", "scholar-feed-mcp"].
Available Tools (12)
| Tool | Description | Key Parameters |
|------|-------------|----------------|
| check_connection | Verify API key, show plan and usage | — |
| search_papers | Search by keyword with filters | q, category, novelty_min, days, cursor, limit |
| get_paper | Get paper details by arXiv ID | arxiv_id |
| find_similar | Find similar papers | arxiv_id, limit, days |
| get_citations | Get citation graph | arxiv_id, direction, limit |
| whats_trending | Today's trending papers | category, limit |
| fetch_fulltext | Extract results/experiments from LaTeX | arxiv_id |
| batch_lookup | Look up multiple papers at once | arxiv_ids (max 50) |
| fetch_repo | Get GitHub repo README + file tree | arxiv_id |
| export_bibtex | Export BibTeX for arXiv papers | arxiv_ids (max 50) |
| deep_research | Multi-round research synthesis | topic, depth |
| refine_research | Follow-up question on a completed research report | report_id, question, cluster_label, date_from, date_to |
Novelty Score
Every paper has an llm_novelty_score from 0.0 to 1.0:
| Range | Meaning | Example | |-------|---------|---------| | 0.7+ | Paradigm shift or broad SOTA | New architecture that changes the field | | 0.5–0.7 | Novel method with strong results | New training technique with clear gains | | 0.3–0.5 | Incremental improvement | Applying known method to new domain | | <0.3 | Survey, dataset, or minor extension | Literature review, benchmark release |
Use novelty_min: 0.5 in search_papers to filter for genuinely novel work.
Rate Limits
| Endpoint | Limit |
|----------|-------|
| check_connection | 60/min |
| search_papers | 30/min |
| get_paper | 60/min |
| find_similar | 20/min |
| get_citations | 30/min |
| whats_trending | 30/min |
| fetch_fulltext | 10/min |
| batch_lookup | 20/min |
| fetch_repo | 10/min |
| export_bibtex | 20/min |
| deep_research | 5/min |
| refine_research | 5/min |
Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.
Example Response
search_papers with q: "attention mechanism" returns:
{
"papers": [
{
"arxiv_id": "2401.04088",
"title": "Attention Is All You Need (But Not All You Get)",
"authors": ["A. Researcher", "B. Scientist"],
"year": 2024,
"categories": ["cs.LG", "cs.AI"],
"primary_category": "cs.LG",
"arxiv_url": "https://arxiv.org/abs/2401.04088",
"has_code": true,
"github_url": "https://github.com/example/repo",
"citation_count": 42,
"rank_score": 0.73,
"llm_summary": "Proposes a sparse attention variant that reduces compute by 60% while matching dense attention accuracy on 5 benchmarks.",
"llm_novelty_score": 0.55
}
],
"total": 1847,
"page": 1,
"limit": 20,
"next_cursor": "eyJzIjogMC43MywgImlkIjogIjI0MDEuMDQwODgifQ=="
}Pass next_cursor back to get the next page (keyset pagination — more stable than page numbers for large result sets).
Verify Installation
After setup, ask your AI assistant to run check_connection. You should see:
{
"status": "ok",
"plan": "free",
"key_name": "my-key",
"usage_today": 0
}Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| SF_API_KEY | Yes | — | Your Scholar Feed API key (starts with sf_) |
| SF_API_BASE_URL | No | Production URL | Override API base URL |
Troubleshooting
"SF_API_KEY environment variable is required"
Your MCP client isn't passing the env var. Double-check the env block in your config matches the examples above.
"Authentication failed: your SF_API_KEY is invalid" The key may have been revoked. Generate a new one at scholarfeed.org/settings.
Tool calls time out or fail silently
Ensure Node.js 18+ is installed (node --version). Older versions lack the native fetch API.
Stale npx cache
If you're stuck on an old version after an update: npx --yes scholar-feed-mcp@latest
Windows: "command not found"
Use "command": "cmd" with "args": ["/c", "npx", "-y", "scholar-feed-mcp"] in your MCP config.
License
MIT
