mcp-techTrend
trends-mcp
韩语文档:README.ko.md
一个单一的 MCP 服务器,可从七个来源获取学术 + 代码 + 医疗器械监管趋势数据,并生成报纸风格的简报——内置了针对特定领域的调优功能。
来源 | 工具 | 说明 |
arXiv |
| 按类别轮询,防止小类别被大类别淹没 |
PubMed |
| 通过 |
HF Daily Papers |
| 按社区点赞数排序(替代已停用的 PwC API) |
GitHub |
| 热门页面抓取 + 带 |
Hugging Face |
| 模型 / 数据集 / 空间,热门或最新 |
openFDA 510(k) |
| 器械许可 |
openFDA Recalls |
| 带分类过滤的召回事件 |
(聚合器) |
| 多源并行调用 |
trends_briefing 是核心工具:调用“weekly news” / “周报”即可获取涵盖所有已启用来源的报纸格式简报,并由 LLM 自动翻译成用户的对话语言。
为什么会有这个项目
大多数学术 / 代码 / 监管 MCP 服务器都是单一来源的。本项目不仅支持多源,而且具备领域感知能力:无论是追踪医学影像 AI 的研究人员、关注 ML 论文的机器学习工程师,还是监控 CVE 和热门仓库的安全分析师,只需通过 python configure.py 配置一次,trends_briefing 就会成为他们专属的“周一早报”。
其核心优势:
报纸格式及翻译提示 — LLM 会自动将源文本(论文摘要、召回原因等)翻译成您的对话语言,同时完整保留标识符、URL 和度量值。
arXiv 按类别轮询 — 当
cs.HC(约 50 篇/周)与cs.LG(约 1500 篇/周)同时被追踪时,前者不会被后者淹没。TTL 缓存 + 并发请求合并 — 重复调用和并行简报不会对上游 API 造成压力。
无需 Token。所有七个来源均可匿名工作;Token 仅用于提高各来源的速率限制上限。
沙盒安全的 Python 启动器。通过在 Python 中设置环境变量后再交给服务器,绕过了
claude_desktop_config.json中env块(在某些 macOS 构建版本中会截断包含空格的值)的限制。
安装
git clone https://github.com/salwks/mcp-techTrend.git
cd mcp-techTrend
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt通过编辑 ~/Library/Application Support/Claude/claude_desktop_config.json 连接到 Claude Desktop:
{
"mcpServers": {
"trends": {
"command": "/path/to/trends-mcp/.venv/bin/python",
"args": ["/path/to/trends-mcp/run.py"]
}
}
}⚠️
args指向run.py(启动器),而非trends_mcp.py。 启动器会在服务器启动前设置特定领域的环境变量。
重启 Claude Desktop。trends 服务器应显示 11 个工具。
配置
单一事实来源:run.py。 有两种编辑方式:
A. 交互式 TUI — configure.py(推荐)
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使用数字切换来源,通过 set 1 7 设置 arXiv 权重,使用 preset medical-imaging 应用预设,通过 [6] 保存。保存操作会备份至 run.py.bak,写入新的 SETTINGS 块(基于 AST,不会触及非配置代码),并运行 pkill -f trends_mcp,以便 Claude Desktop 在下次调用时以新配置重启服务器。
TUI 菜单标签为韩语;命令和预设为英语。 TUI 本身的国际化(i18n)在 v0.2 路线图中。
单次运行模式:
python configure.py --show # print current config
python configure.py --restart # pkill stale MCP processesB. 直接编辑 — run.py SETTINGS 块
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保存后重启 Claude Desktop(或运行 pkill -f trends_mcp)。
预设
# 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"常见的 arXiv 类别(完整参考:ARXIV_CATEGORIES.md):
代码 | 领域 | 每周论文数(约) |
| 人工智能 | 500–800 |
| 机器学习 | 1,500–2,000 (最大) |
| 计算机视觉 | 1,000–1,500 |
| 自然语言处理 | 500–800 |
| 人机交互 / UX | 50–100 |
| 机器人学 | 100–200 |
| 安全 | ~200 |
| 图像/视频处理(医学影像) | 100–200 |
| 定量生物学 | 50–100 |
来源白名单
TRENDS_ENABLED_SOURCES = "arxiv,github,huggingface,paperswithcode"
# → fda_510k, fda_recalls, pubmed tools won't appear in the tool list at all留空 / "*" / "all" = 启用所有。禁用的来源不会注册其工具,因此聊天工具列表本身会缩减。trends_digest 和 trends_briefing 仍会注册,并优雅地跳过已禁用的来源。
工具
工具 | 用途 |
| 按提交日期获取某类别的最新论文 |
| 关键词 / 字段语法搜索 ( |
| PubMed 搜索(MeSH 术语、字段标签)— 通过 efetch 获取摘要 |
| HF Daily Papers,按社区点赞数排序 |
| 浏览 github.com/trending (HTML 抓取) |
| GitHub 搜索 API; |
| HF Hub 模型 / 数据集 / 空间 |
| 最近的 FDA 510(k) 许可 |
| 最近的 FDA 医疗器械召回(分类过滤) |
| 给定主题的多源要点摘要 |
| 多源报纸简报;主题可选 |
所有搜索工具均接受 days=N 进行最近 N 天的过滤。trends_briefing 将结果分为 🎓 研究 / 💻 代码与模型 / 🏥 监管部分。
trends_digest vs trends_briefing
|
| |
主题 | 必填 | 可选(“最新动态”模式) |
来源范围 | 可配置子集(默认 4 个) | 所有已启用来源 |
格式 | 要点摘要 | 分组报纸格式 |
用例 | 主题深度挖掘 | 定期周报 |
缓存
每个进程内的内存 TTL 缓存封装了每个 HTTP 响应。并发的相同请求通过每个键的 asyncio.Lock 进行合并 — N 个并行调用者仅触发一次上游请求。
TTL 组 | 时长 | 工具 |
热门 | 5 分钟 |
|
默认 | 10 分钟 |
|
静态 | 1 小时 |
|
最多 256 条目;存满时驱逐最旧的。无法禁用 — TTL 时间足够短,陈旧度在可控范围内。
已知限制
GitHub Trending 是 HTML 抓取 — 不存在官方 API。布局更改可能会导致其失效。稳定的热门替代方案:带
days=7和sort=stars的github_search。HF
trendingScore未公开文档。API 接口可能会发生变化。HF Daily Papers 每天涵盖约 50 篇精选论文,并非 arXiv 的全部。它是一个“讨论热点”源,而非详尽列表。
arXiv 没有原生的热门功能 — 我们通过按类别平衡的最新提交源进行近似。
openFDA
classification字段有时即使在最近分类的召回中也会返回None(上游数据滞后)。搜索索引也存在滞后。
路线图 (TODO)
v0.2: TUI 菜单和简报章节标题的国际化 (i18n)
通过 RSS 获取 bioRxiv / medRxiv
Semantic Scholar (引用图谱)
openFDA 不良事件 (MAUDE)
EU EUDAMED 抓取
PMDA (日本医疗器械)
MFDS (韩国医疗器械)
用于 CI 的 Mock 测试套件
许可证
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/salwks/mcp-techTrend'
If you have feedback or need assistance with the MCP directory API, please join our Discord server