mcp-techTrend

mcp-techTrend

MCP server pulling academic publications (arXiv, PubMed, HF Daily Papers), trending code (GitHub, HF Hub), and medical-device regulatory data (FDA 510(k), recalls) into newspaper-style briefings. Per-category round-robin, weighted configuration, sandbox-safe Python launcher.

Category
访问服务器

README

trends-mcp

mcp-techTrend MCP server

한국어 문서: README.ko.md

A single MCP server that pulls academic + code + medical-device-regulatory trend data from seven sources and renders newspaper-style briefings — with per-domain tuning baked in.

Source Tools Notes
arXiv arxiv_recent, arxiv_search Per-category round-robin so small categories aren't drowned by big ones
PubMed pubmed_search Full abstracts via efetch.fcgi
HF Daily Papers paperswithcode_trending Sorted by community upvotes (replaces sunset PwC API)
GitHub github_trending, github_search Trending page scrape + Search API with created:> date filter
Hugging Face huggingface_trending Models / datasets / spaces, trending or recent
openFDA 510(k) fda_510k_recent Device clearances
openFDA Recalls fda_recalls_recent Recall events with class filter
(aggregators) trends_digest, trends_briefing Multi-source parallel calls

trends_briefing is the headline tool: invoke "weekly news" / "주간 뉴스" and get a newspaper-formatted briefing across all enabled sources, automatically translated into the user's conversation language by the LLM.


Why this exists

Most academic / code / regulatory MCP servers are single-source. This one is multi-source and domain-aware: a researcher tracking medical-imaging AI, an ML engineer following ML papers, a security analyst watching CVEs and trending repos — all configure once via python configure.py, then trends_briefing becomes the "Monday morning newspaper" for their domain.

What makes it useful:

  • Newspaper format with translation hint — the LLM auto-translates source text (paper abstracts, recall reasons, etc.) to your conversation language while preserving identifiers, URLs, and metric values verbatim.
  • Per-category round-robin for arXiv — cs.HC (~50 papers/wk) doesn't get drowned by cs.LG (~1500/wk) when both are tracked together.
  • TTL cache + concurrent-request coalescing — repeat calls and parallel briefings don't hammer upstream APIs.
  • No required tokens. All seven sources work anonymously; tokens just raise the per-source rate limit ceiling.
  • Sandbox-safe Python launcher. Bypasses the claude_desktop_config.json env block (which truncates whitespace-containing values on some macOS builds) by setting environment variables in Python before handing off to the server.

Install

git clone https://github.com/salwks/mcp-techTrend.git
cd mcp-techTrend
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

Connect to Claude Desktop by editing ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "trends": {
      "command": "/path/to/trends-mcp/.venv/bin/python",
      "args": ["/path/to/trends-mcp/run.py"]
    }
  }
}

⚠️ args points at run.py (the launcher), not trends_mcp.py. The launcher sets domain-specific env vars before the server starts.

Restart Claude Desktop. The trends server should appear with 11 tools.


Configuration

One source of truth: run.py. Two ways to edit it:

A. Interactive TUI — configure.py (recommended)

python configure.py
═══ trends-mcp 설정 ═══
  [1] Active sources       (7/7 enabled)
  [2] arXiv categories     (4 entries · 13 papers/wk)
  [3] PubMed query
  [4] API tokens           (0/4 set)
  [5] Show current config
  [6] Save and restart
  [7] Quit without saving

Toggle sources with numbers, set arXiv weights with set 1 7, apply presets with preset medical-imaging, save with [6]. The save action backs up to run.py.bak, writes the new SETTINGS block (AST-based — never touches non-config code), and runs pkill -f trends_mcp so Claude Desktop respawns the server with the new config on next call.

The TUI menu labels are in Korean; commands and presets are in English. i18n of the TUI itself is on the v0.2 roadmap.

Single-shot modes:

python configure.py --show       # print current config
python configure.py --restart    # pkill stale MCP processes

B. Direct edit — run.py SETTINGS block

TRENDS_ENABLED_SOURCES = ""                          # "" = all
TRENDS_ARXIV_CATEGORIES = "cs.LG:5,cs.CV:3,cs.CL:3,cs.AI:2"
TRENDS_DEFAULT_PUBMED_QUERY = "(deep learning OR AI) AND (medical OR clinical)"
# GITHUB_TOKEN = "ghp_..."         # raises 60 → 5,000 req/h
# HF_TOKEN = "hf_..."
# NCBI_API_KEY = "..."             # raises 3 → 10 req/s for PubMed
# OPENFDA_API_KEY = "..."          # raises 240 → 120,000 req/day

Restart Claude Desktop after saving (or pkill -f trends_mcp).

Presets

# AI/ML researcher (default)
TRENDS_ARXIV_CATEGORIES = "cs.LG:5,cs.CV:3,cs.CL:3,cs.AI:2"

# Medical imaging / clinical AI
TRENDS_ARXIV_CATEGORIES = "eess.IV:5,cs.CV:3,cs.HC:2,q-bio.QM:2"

# Robotics
TRENDS_ARXIV_CATEGORIES = "cs.RO:5,cs.AI:3,cs.LG:2,cs.CV:2"

# HCI / UX
TRENDS_ARXIV_CATEGORIES = "cs.HC:5,cs.CY:3,cs.AI:2,cs.SI:2"

# Security
TRENDS_ARXIV_CATEGORIES = "cs.CR:5,cs.LG:2,cs.NI:2"

# Computational biology
TRENDS_ARXIV_CATEGORIES = "q-bio.QM:4,q-bio.GN:3,q-bio.BM:3,stat.AP:2"

Common arXiv categories (full reference: ARXIV_CATEGORIES.md):

Code Field Weekly papers (approx)
cs.AI Artificial Intelligence 500–800
cs.LG Machine Learning 1,500–2,000 (largest)
cs.CV Computer Vision 1,000–1,500
cs.CL NLP 500–800
cs.HC HCI / UX 50–100
cs.RO Robotics 100–200
cs.CR Security ~200
eess.IV Image/Video Processing (medical imaging) 100–200
q-bio.QM Quantitative biology 50–100

Source allowlist

TRENDS_ENABLED_SOURCES = "arxiv,github,huggingface,paperswithcode"
# → fda_510k, fda_recalls, pubmed tools won't appear in the tool list at all

Empty / "*" / "all" = enable everything. Disabled sources don't register their tools, so the chat tool list itself shrinks. trends_digest and trends_briefing remain registered and skip disabled sources gracefully.


Tools

Tool Purpose
arxiv_recent Recent papers in one category, by submission date
arxiv_search Keyword / field-syntax search (ti:, au:, abs:, cat:)
pubmed_search PubMed search (MeSH terms, field tags) — abstracts via efetch
paperswithcode_trending HF Daily Papers, sorted by community upvotes
github_trending Browse github.com/trending (HTML scrape)
github_search GitHub Search API; days filters by created:
huggingface_trending HF Hub models / datasets / spaces
fda_510k_recent Recent FDA 510(k) clearances
fda_recalls_recent Recent FDA medical-device recalls (class filter)
trends_digest Multi-source bullet-list digest, given a topic
trends_briefing Multi-source newspaper briefing; topic optional

All search tools accept days=N for recent-N-days filtering. trends_briefing groups results into 🎓 Research / 💻 Code & Models / 🏥 Regulatory sections.

trends_digest vs trends_briefing

trends_digest trends_briefing
Topic required optional ("what's new" mode)
Source range configurable subset (default 4) all enabled sources
Format bullet-list digest grouped newspaper format
Use case topic deep-dive regular weekly briefing

Caching

Per-process in-memory TTL cache wraps every HTTP response. Concurrent identical requests are coalesced via per-key asyncio.Lock — N parallel callers fire one upstream request.

TTL group Length Tools
Trending 5 min github_trending, paperswithcode_trending, huggingface_trending (trending sort), github_search (with days)
Default 10 min arxiv_recent, arxiv_search, github_search, huggingface_trending (other sorts)
Static 1 hour pubmed_search, fda_510k_recent, fda_recalls_recent

Up to 256 entries; oldest evicted when full. No way to disable — TTLs are short enough that staleness is bounded.


Known limitations

  • GitHub Trending is HTML scraping — no official API exists. Layout changes can break it. Stable trending substitute: github_search with days=7 and sort=stars.
  • HF trendingScore is undocumented. API surface may change.
  • HF Daily Papers covers ~50 curated papers/day, not all of arXiv. It's a "what was talked about" feed, not exhaustive.
  • arXiv has no native trending — we approximate via category-balanced recent-submissions feeds.
  • openFDA classification field sometimes returns None even on recently classified recalls (upstream data lag). Search index lags too.

Roadmap (TODO)

  • v0.2: i18n for the TUI menu and briefing section headers
  • bioRxiv / medRxiv via RSS
  • Semantic Scholar (citation graph)
  • openFDA Adverse Events (MAUDE)
  • EU EUDAMED scraping
  • PMDA (Japan medical devices)
  • MFDS (Korea medical devices)
  • Mock-based test suite for CI

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选