mcp-techTrend
trends-mcp
日本語ドキュメント: README.md
学術・コード・医療機器規制のトレンドデータを7つのソースから収集し、ドメインごとの調整機能を備えた新聞形式のブリーフィングを作成する単一のMCPサーバーです。
ソース | ツール | 備考 |
arXiv |
| 小規模カテゴリが大規模カテゴリに埋もれないようカテゴリごとのラウンドロビンを実施 |
PubMed |
|
|
HF Daily Papers |
| コミュニティの投票数でソート(PwC APIの終了に伴う代替) |
GitHub |
| トレンドページのスクレイピング + |
Hugging Face |
| モデル / データセット / スペース、トレンドまたは最新 |
openFDA 510(k) |
| 医療機器の承認情報 |
openFDA Recalls |
| クラスフィルター付きのリコールイベント |
(アグリゲーター) |
| 複数ソースの並列呼び出し |
trends_briefingは主要ツールです。「weekly news」や「週刊ニュース」と呼びかけると、有効な全ソースから新聞形式のブリーフィングを取得し、LLMがユーザーの会話言語に自動翻訳します。
なぜこれが必要なのか
ほとんどの学術・コード・規制関連のMCPサーバーは単一ソースです。本サーバーは複数ソースに対応し、ドメインを認識します。医療画像AIを追跡する研究者、ML論文を追うMLエンジニア、CVEやトレンドリポジトリを監視するセキュリティアナリストなど、全員がpython configure.pyで一度設定すれば、trends_briefingが彼らのドメインにとっての「月曜朝の新聞」となります。
便利な点:
翻訳ヒント付きの新聞形式 — LLMがソーステキスト(論文アブストラクト、リコール理由など)を会話言語に自動翻訳しつつ、識別子、URL、指標値はそのまま保持します。
arXivのカテゴリ別ラウンドロビン —
cs.HC(週約50本)がcs.LG(週約1500本)に埋もれることなく、両方を同時に追跡できます。TTLキャッシュ + 並列リクエストの統合 — 繰り返し呼び出しや並列ブリーフィングがアップストリームAPIに負荷をかけません。
トークン不要 — 7つのソースすべてが匿名で動作します。トークンはソースごとのレート制限の上限を引き上げるためにのみ使用します。
サンドボックスセーフなPythonランチャー —
claude_desktop_config.jsonのenvブロック(macOSの一部ビルドで空白を含む値を切り詰める問題)を回避し、サーバーに渡す前にPythonで環境変数を設定します。
インストール
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はtrends_mcp.pyではなく、run.py(ランチャー)を指すようにしてください。 ランチャーはサーバー起動前にドメイン固有の環境変数を設定します。
Claude Desktopを再起動します。trendsサーバーが11個のツールと共に表示されるはずです。
設定
唯一の真実のソース: run.py。編集方法は2つあります:
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 |
| HCI / 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医療機器リコール(クラスフィルター) |
| トピックを指定した複数ソースの箇条書きダイジェスト |
| 複数ソースの新聞形式ブリーフィング(トピックは任意) |
すべての検索ツールは、直近N日間のフィルタリングのためにdays=Nを受け付けます。trends_briefingは結果を 🎓研究 / 💻コード&モデル / 🏥規制 セクションにグループ化します。
trends_digest vs trends_briefing
|
| |
トピック | 必須 | 任意(「最新情報」モード) |
ソース範囲 | 設定可能なサブセット(デフォルト4) | 有効な全ソース |
形式 | 箇条書きダイジェスト | グループ化された新聞形式 |
ユースケース | トピックの深掘り | 定期的な週刊ブリーフィング |
キャッシュ
プロセスごとのメモリ内TTLキャッシュがすべてのHTTPレスポンスをラップします。同一の同時リクエストはasyncio.Lock経由で統合され、N個の並列呼び出しが1つのアップストリームリクエストを発行します。
TTLグループ | 期間 | ツール |
トレンド | 5分 |
|
デフォルト | 10分 |
|
静的 | 1時間 |
|
最大256エントリまで保持し、満杯になると古いものから削除されます。無効化はできません。TTLは短いため、陳腐化は限定的です。
既知の制限
GitHub Trending はHTMLスクレイピングであり、公式APIは存在しません。レイアウト変更により壊れる可能性があります。安定した代替手段:
days=7とsort=starsを指定したgithub_search。HF
trendingScoreは非公開です。API仕様が変更される可能性があります。HF Daily Papers は厳選された1日約50本の論文をカバーしており、arXivのすべてではありません。「話題になったもの」のフィードであり、網羅的ではありません。
arXiv にはネイティブなトレンド機能がないため、カテゴリバランスを考慮した最新投稿フィードで近似しています。
openFDA
classificationフィールド は、最近分類されたリコールであってもNoneを返すことがあります(アップストリームデータの遅延)。検索インデックスも遅延します。
ロードマップ (TODO)
v0.2: TUIメニューとブリーフィングセクション見出しの国際化(i18n)
RSS経由のbioRxiv / medRxiv対応
Semantic Scholar(引用グラフ)
openFDA有害事象(MAUDE)
EU EUDAMEDスクレイピング
PMDA(日本の医療機器)
MFDS(韓国の医療機器)
CI用のモックベーステストスイート
ライセンス
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