mcp-techTrend
trends-mcp
Documentación en coreano: 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.
Fuente | Herramientas | Notas |
arXiv |
| Round-robin por categoría para que las categorías pequeñas no sean eclipsadas por las grandes |
PubMed |
| Resúmenes completos vía |
HF Daily Papers |
| Ordenado por votos de la comunidad (reemplaza la API de PwC que dejó de funcionar) |
GitHub |
| Scraping de la página de tendencias + API de búsqueda con filtro de fecha |
Hugging Face |
| Modelos / datasets / spaces, en tendencia o recientes |
openFDA 510(k) |
| Autorizaciones de dispositivos |
openFDA Recalls |
| Eventos de retirada con filtro de clase |
(agregadores) |
| Llamadas paralelas a múltiples fuentes |
trends_briefing es la herramienta principal: invoca "weekly news" / "주간 뉴스" y
obtén un resumen con formato de periódico de todas las fuentes habilitadas, traducido automáticamente
al idioma de conversación del usuario por el LLM.
Por qué existe esto
La mayoría de los servidores MCP académicos / de código / regulatorios son de una sola fuente. Este es
multifuente y consciente del dominio: un investigador que rastrea IA de imágenes médicas,
un ingeniero de ML que sigue artículos de ML, un analista de seguridad que observa CVEs y
repositorios en tendencia — todos configuran una vez vía python configure.py, luego
trends_briefing se convierte en el "periódico del lunes por la mañana" para su dominio.
Lo que lo hace útil:
Formato de periódico con sugerencia de traducción — el LLM traduce automáticamente el texto fuente (resúmenes de artículos, razones de retiradas, etc.) al idioma de tu conversación mientras preserva identificadores, URLs y valores métricos literalmente.
Round-robin por categoría para arXiv —
cs.HC(~50 artículos/sem) no se ve eclipsado porcs.LG(~1500/sem) cuando ambos se rastrean juntos.Caché TTL + coalescencia de solicitudes concurrentes — las llamadas repetidas y los resúmenes paralelos no saturan las APIs upstream.
No se requieren tokens. Las siete fuentes funcionan de forma anónima; los tokens solo aumentan el límite de tasa por fuente.
Lanzador de Python seguro en sandbox. Evita el bloque
envdeclaude_desktop_config.json(que trunca valores con espacios en algunas compilaciones de macOS) configurando variables de entorno en Python antes de pasarlas al servidor.
Instalación
git clone https://github.com/salwks/mcp-techTrend.git
cd mcp-techTrend
python3 -m venv .venv
.venv/bin/pip install -r requirements.txtConéctate a Claude Desktop editando
~/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"]
}
}
}⚠️
argsapunta arun.py(el lanzador), no atrends_mcp.py. El lanzador establece variables de entorno específicas del dominio antes de que se inicie el servidor.
Reinicia Claude Desktop. El servidor trends debería aparecer con 11 herramientas.
Configuración
Una única fuente de verdad: run.py. Dos formas de editarlo:
A. TUI interactiva — configure.py (recomendado)
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 savingAlterna fuentes con números, establece pesos de arXiv con set 1 7, aplica preajustes
con preset medical-imaging, guarda con [6]. La acción de guardar crea una copia de seguridad en
run.py.bak, escribe el nuevo bloque SETTINGS (basado en AST — nunca toca código que no sea de configuración),
y ejecuta pkill -f trends_mcp para que Claude Desktop reinicie
el servidor con la nueva configuración en la siguiente llamada.
Las etiquetas del menú TUI están en coreano; los comandos y preajustes están en inglés. La internacionalización (i18n) de la propia TUI está en la hoja de ruta de la v0.2.
Modos de disparo único:
python configure.py --show # print current config
python configure.py --restart # pkill stale MCP processesB. Edición directa — bloque SETTINGS de run.py
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/dayReinicia Claude Desktop después de guardar (o pkill -f trends_mcp).
Preajustes
# 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"Categorías comunes de arXiv (referencia completa: ARXIV_CATEGORIES.md):
Código | Campo | Artículos semanales (aprox) |
| Inteligencia Artificial | 500–800 |
| Aprendizaje Automático | 1,500–2,000 (el más grande) |
| Visión por Computador | 1,000–1,500 |
| PLN | 500–800 |
| HCI / UX | 50–100 |
| Robótica | 100–200 |
| Seguridad | ~200 |
| Procesamiento de Imagen/Video (imágenes médicas) | 100–200 |
| Biología cuantitativa | 50–100 |
Lista de permitidos de fuentes
TRENDS_ENABLED_SOURCES = "arxiv,github,huggingface,paperswithcode"
# → fda_510k, fda_recalls, pubmed tools won't appear in the tool list at allVacío / "*" / "all" = habilitar todo. Las fuentes deshabilitadas no registran
sus herramientas, por lo que la lista de herramientas de chat se reduce. trends_digest y
trends_briefing permanecen registrados y omiten las fuentes deshabilitadas correctamente.
Herramientas
Herramienta | Propósito |
| Artículos recientes en una categoría, por fecha de envío |
| Búsqueda por palabra clave / sintaxis de campo ( |
| Búsqueda en PubMed (términos MeSH, etiquetas de campo) — resúmenes vía efetch |
| HF Daily Papers, ordenado por votos de la comunidad |
| Explorar github.com/trending (scraping HTML) |
| API de búsqueda de GitHub; |
| Modelos / datasets / spaces de HF Hub |
| Autorizaciones recientes de la FDA 510(k) |
| Retiradas recientes de dispositivos médicos de la FDA (filtro de clase) |
| Resumen en lista de viñetas multifuente, dado un tema |
| Resumen de periódico multifuente; tema opcional |
Todas las herramientas de búsqueda aceptan days=N para filtrar por los últimos N días. trends_briefing
agrupa los resultados en secciones de 🎓 Investigación / 💻 Código y Modelos / 🏥 Regulatorio.
trends_digest vs trends_briefing
|
| |
Tema | requerido | opcional (modo "qué hay de nuevo") |
Rango de fuentes | subconjunto configurable (predeterminado 4) | todas las fuentes habilitadas |
Formato | resumen en lista de viñetas | formato de periódico agrupado |
Caso de uso | inmersión profunda en un tema | resumen semanal regular |
Caché
La caché TTL en memoria por proceso envuelve cada respuesta HTTP. Las solicitudes concurrentes
identes se fusionan mediante asyncio.Lock por clave — N llamadores paralelos disparan una solicitud upstream.
Grupo TTL | Duración | Herramientas |
Tendencias | 5 min |
|
Predeterminado | 10 min |
|
Estático | 1 hora |
|
Hasta 256 entradas; las más antiguas se eliminan cuando está lleno. No hay forma de deshabilitar — los TTL son lo suficientemente cortos como para que la obsolescencia esté limitada.
Limitaciones conocidas
GitHub Trending es scraping HTML — no existe una API oficial. Los cambios de diseño pueden romperlo. Sustituto de tendencias estable:
github_searchcondays=7ysort=stars.trendingScorede HF no está documentado. La superficie de la API puede cambiar.HF Daily Papers cubre ~50 artículos seleccionados al día, no todo arXiv. Es un feed de "de qué se habló", no exhaustivo.
arXiv no tiene tendencias nativas — las aproximamos mediante feeds de envíos recientes equilibrados por categoría.
El campo
classificationde openFDA a veces devuelveNoneincluso en retiradas clasificadas recientemente (retraso de datos upstream). El índice de búsqueda también tiene retraso.
Hoja de ruta (TODO)
v0.2: i18n para el menú TUI y los encabezados de sección del resumen
bioRxiv / medRxiv vía RSS
Semantic Scholar (grafo de citas)
Eventos adversos de openFDA (MAUDE)
Scraping de EUDAMED de la UE
PMDA (dispositivos médicos de Japón)
MFDS (dispositivos médicos de Corea)
Suite de pruebas basada en mocks para CI
Licencia
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