Skip to main content
Glama

dsh-feed — base de agregación entre ecosistemas ("la agregación de agregaciones")

No hace UI directamente, sino una capa de datos abierta: normaliza el topic dsh-plugin de GitHub y el registro de npm en un índice JSON abierto, para que lo consuma cualquier Agent / CLI / MCP / UI futura. Tu plugin solo hace "sincronización + consulta" — otros construyen UI basándose en estos datos.

Por qué se necesita

  • Los mercados existentes capturan datos por su cuenta, los mantienen por separado, son de código cerrado y redundantes. dsh-feed se convierte en la fuente de datos: se sincroniza una vez y todo el ecosistema puede consultar.

  • Un plugin, tres superficies de consumo:

    • Herramientas de modelo: feed_sync / feed_search / feed_stats

    • CLI: dsh-feed sync|search|stats|mcp

    • Servidor MCP (experimental): cualquier cliente MCP (Cursor, Claude Desktop…) puede consultar.

  • El índice es un archivo JSON abierto (por defecto .dsh/dsh-feed.json), en texto plano, con diff, legible por cualquier herramienta.

Related MCP server: npm-search-mcp-server

Instalación

dsh plugin --profile <profile> add dsh-feed
# 或只用 CLI(npm 全局):npm i -g dsh-feed

Uso

Lado del modelo

Herramienta

Descripción

feed_sync

Obtiene topic de GitHub + npm → escribe índice (requiere red)

feed_search

Consulta el índice en lenguaje natural (palabras en inglés + 2-gramas en chino)

feed_stats

Estadísticas del índice: total, fuentes, topics populares, cobertura npm

CLI

dsh-feed sync                      # 同步(可选 GITHUB_TOKEN 提升限额)
dsh-feed search "移动端 远程"      # 查询
dsh-feed stats
dsh-feed mcp                       # 极简 stdio MCP server(实验性)

Ejemplo de configuración MCP (cualquier cliente MCP)

{ "mcpServers": { "dsh-feed": { "command": "dsh-feed", "args": ["mcp"] } } }

Formato del índice (capa de datos abierta)

{
  "updated": "2026-08-16T...",
  "sources": { "github": 200, "npm": 180 },
  "count": 380,
  "plugins": [
    { "name": "owner/repo", "url": "...", "description": "...", "stars": 42, "topics": ["dsh-plugin", "notify"], "npmName": "dsh-xxx" }
  ]
}

Diseño

  • lib/sync.js — captura + normalización (API de búsqueda de GitHub + API de búsqueda de npm, token inyectable).

  • lib/query.js — lógica de consulta pura (tokenización/puntuación/estadísticas), sin dependencias, testeable unitariamente.

  • lib/index-store.js — lectura/escritura del archivo de índice (ruta relativa + validación anti-fuga).

  • bin/dsh-feed.js — CLI + servidor MCP stdio minimalista (JSON-RPC 2.0).

  • Seguridad: el índice solo escribe en .dsh/ dentro del área de trabajo de la sesión; las solicitudes de red solo ocurren en feed_sync (activación explícita).

Hoja de ruta

  • Sincronización programada cada hora (integración con dsh-schedule).

  • Endpoint de solo lectura de Web API + herramientas MCP más completas (paginación/filtrado/detalles).

  • Compartir la misma capa de datos con dsh-need-finder / dsh-recipe (eliminar capturas duplicadas).

Pruebas

node test/feed.test.mjs

Licencia

MIT

Related MCP Connectors

Related MCP Servers