Skip to main content
Glama

¿Por qué Disvr?

El ecosistema de agentes de IA está explotando. Los protocolos de pago (Stripe MPP, OpenAI ACP, x402) resuelven cómo pagar. Los directorios (Smithery, Composio) resuelven qué existe.

Pero nadie resuelve la pregunta más crítica: ¿qué herramienta realmente vale la pena usar?

🤖 "Traducir un contrato legal chino al tailandés" → 50 servicios de traducción en Smithery. ¿Cuál tiene la mejor relación costo/calidad?

🤖 "Extraer precios de productos de sitios de comercio electrónico" → 30 herramientas de scraping. ¿Cuál tiene la mayor tasa de éxito y la menor latencia?

🤖 "Generar una imagen de producto" → 20 servicios de generación de imágenes. ¿Cuál es el más barato y a la vez lo suficientemente bueno?

En este momento, los agentes eligen a ciegas. Las elecciones incorrectas significan dinero desperdiciado, tiempo perdido y tareas fallidas.

Disvr soluciona esto.

En lugar de devolver una lista, Disvr devuelve una recomendación clasificada, basada en una puntuación de valor de 4 dimensiones:

Dimensión

Peso

Lo que mide

🎯 Coincidencia semántica

0.30

Qué tan bien se ajusta el servicio a la necesidad

⭐ Calidad

0.25

Tasa de éxito histórica, reputación

💰 Eficiencia de costos

0.25

Costo por llamada, relación calidad-precio

🔒 Confiabilidad

0.20

Latencia, tasa de reintento, tiempo de actividad

Tu agente deja de adivinar y comienza a elegir la mejor herramienta para el trabajo.


✅ Antes de empezar

💰 Gratis de usar

Nivel gratuito: 1,000 consultas/día, no requiere tarjeta de crédito

🔌 Nativo de MCP

Configuración de una línea para Claude Code, Cursor o cualquier cliente MCP

🔄 Retroalimentación de ciclo cerrado

Los agentes informan los resultados de las llamadas → las clasificaciones mejoran con el tiempo

☁️ Borde global

Desplegado en Cloudflare Workers, baja latencia en todo el mundo

📡 Datos en tiempo real

Rastreos por hora desde Smithery mantienen los datos del servicio actualizados


Inicio rápido

Opción 1: Servidor MCP (Recomendado)

Añade una línea a tu .mcp.json:

{
  "mcpServers": {
    "disvr": {
      "type": "url",
      "url": "https://api.disvr.top/mcp"
    }
  }
}

Reinicia Claude Code / Cursor: tu agente ahora tiene la herramienta discover_services.

Intenta decirle a tu agente:

  • "Encuentra la mejor herramienta para traducir documentos legales chinos al tailandés"

  • "Recomienda el servicio de web scraping más barato con alta tasa de éxito"

  • "¿Qué API de generación de imágenes tiene la mejor relación precio/calidad?"

Opción 2: API REST

curl -X POST https://api.disvr.top/discover \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"need": "translate Chinese legal contract to Thai"}'

Devuelve las 3 mejores recomendaciones clasificadas por value_score:

{
  "recommendations": [
    {
      "service": "deepl-mcp-server",
      "platform": "smithery",
      "match_confidence": 0.92,
      "reputation": 4.2,
      "price_usd": 0.002,
      "reason": "Best cost/quality ratio for legal document translation"
    }
  ]
}

Demo en vivo

Página

Enlace

Descripción

🏠 Inicio

www.disvr.top

Descripción general del producto

🔍 Explorador

www.disvr.top/explorer

Patio de juegos de consultas interactivas: prueba la API en vivo

📋 Registro

www.disvr.top/registry

Explora todos los servicios indexados

📊 Analítica

www.disvr.top/analytics

Arquitectura del sistema y visualización de puntuación


Referencia de la API

POST /discover — Descubrimiento de servicios

Describe lo que necesita tu agente, obtén las 3 mejores recomendaciones clasificadas.

POST https://api.disvr.top/discover
Authorization: Bearer <api-key>
Content-Type: application/json

{
  "need": "scrape product prices from e-commerce websites",
  "max_price_per_call": 0.01,
  "max_latency_ms": 5000,
  "min_reputation": 3.0
}

Parámetro

Requerido

Descripción

need

Lo que necesitas (≥5 caracteres)

max_price_per_call

Precio máximo por llamada (USD)

max_latency_ms

Latencia máxima aceptable (ms)

min_reputation

Puntuación mínima de reputación (0-5)

POST /report — Bucle de retroalimentación

Informa los resultados de las llamadas después de usar una herramienta: cierra el bucle de retroalimentación y mejora las clasificaciones.

POST https://api.disvr.top/report
Authorization: Bearer <api-key>
Content-Type: application/json

{
  "service_id": "deepl-mcp-server",
  "query_id": "q_abc123",
  "success": true,
  "latency_ms": 1200,
  "cost_usd": 0.002
}

GET /health — Verificación de estado

curl https://api.disvr.top/health
# {"status": "ok", "services_indexed": 330}

Herramientas MCP

Herramientas expuestas a través del servidor MCP:

Herramienta

Descripción

discover_services

Búsqueda semántica + clasificación de valor de 4 dimensiones

list_service_count

Número total de servicios indexados

report_call_result

Informar resultados de llamadas (bucle de retroalimentación)


SDK

SDK de TypeScript/JavaScript con seguridad de tipos completa:

npm install @sylar_yan/disvr
import { Disvr } from "@sylar_yan/disvr";

const client = new Disvr("dsvr_your_api_key");

const result = await client.discover({
  need: "translate Chinese legal contract to Thai",
  max_latency_ms: 3000,
  min_reputation: 3.5,
});

console.log(result.recommendations);

Arquitectura

Agent Query ("I need X")
       │
       ▼
┌─────────────────────────────────────────┐
│  Disvr API (Cloudflare Workers + Hono)  │
├─────────────────────────────────────────┤
│                                         │
│  ┌──────────┐    ┌──────────────────┐   │
│  │ Embed    │───▶│ CF Vectorize     │   │
│  │ (OpenAI) │    │ (1536-dim cosine)│   │
│  └──────────┘    └────────┬─────────┘   │
│                           │             │
│         ┌─────── 50 candidates ──────┐  │
│         ▼                            │  │
│  ┌──────────────┐   ┌────────────┐   │  │
│  │ D1 Database  │   │ FTS5       │   │  │
│  │ (services,   │   │ (fallback) │   │  │
│  │  call_reports)│   └────────────┘   │  │
│  └──────┬───────┘                    │  │
│         │                            │  │
│         ▼                            │  │
│  ┌──────────────────────────────┐    │  │
│  │ 4-Dim Value Ranking          │    │  │
│  │ semantic × 0.30              │    │  │
│  │ quality  × 0.25              │    │  │
│  │ cost_eff × 0.25              │    │  │
│  │ reliable × 0.20              │    │  │
│  └──────────┬───────────────────┘    │  │
│             ▼                        │  │
│        Top 3 Recommendations         │  │
│                                      │  │
├──────────────────────────────────────┤  │
│  MCP Server (Streamable HTTP)        │  │
│  via CF Agents SDK + Durable Objects │  │
└──────────────────────────────────────┘  │
                                          │
       ┌──────────────────────────────────┘
       ▼
  ┌─────────────┐
  │ Cron Trigger │  ← Hourly: crawl (Smithery + GitHub + MCP Registry)
  │ (4-phase)    │     → enrich GitHub Stars → health checks
  └─────────────┘     → aggregate daily stats
       │
  ┌────▼────────────┐
  │ POST /report    │  ← Agent feedback
  │ refreshStats()  │     success_rate, latency → ranking improvement
  └─────────────────┘

Stack tecnológico

Componente

Tecnología

Entorno de ejecución

Cloudflare Workers

Framework

Hono

Base de datos

Cloudflare D1 (SQLite)

Búsqueda vectorial

CF Vectorize (1536-dim, coseno)

Búsqueda de texto

FTS5 (OR + prefijo, ruta de respaldo)

Embedding

OpenAI text-embedding-3-small

Servidor MCP

CF Agents SDK (McpAgent + Durable Objects)

Fuentes de datos

Smithery, GitHub awesome-mcp, Registro oficial de MCP (~2000 servicios)

Cron

CF Cron Trigger (cada hora)

Lenguaje

TypeScript


Estructura del proyecto

disvr/
├── wrangler.toml           # CF Workers config
├── schema.sql              # D1 database schema
├── src/
│   ├── index.ts            # Hono entry + REST routes
│   ├── discover.ts         # Core: semantic search + 4-dim ranking
│   ├── db.ts               # D1 CRUD + feedback stats
│   ├── crawl.ts            # Multi-source crawlers + embedAndIndex
│   ├── mcp.ts              # MCP Server (Streamable HTTP)
│   ├── types.ts            # TypeScript type definitions
│   ├── landing.ts          # Landing page HTML
│   └── pages/
│       ├── registry.ts     # Provider Registry page
│       ├── explorer.ts     # Agent Query Explorer page
│       └── analytics.ts    # Analytics Dashboard page
├── test/
│   ├── types.test.ts       # Type conversion tests
│   ├── discover.test.ts    # Matching engine tests
│   ├── db.test.ts          # D1 operations tests
│   ├── api.test.ts         # REST API integration tests
│   └── crawl.test.ts       # Crawler tests
└── .mcp.json               # MCP config example

Desarrollo local

# Prerequisites: Node.js 22+
nvm use 22

# Install dependencies
npm install

# Local dev server
npx wrangler dev

# Run tests
npx vitest run

# Deploy
npx wrangler deploy

Variables de entorno

# Set OpenAI API Key (for embeddings)
wrangler secret put OPENAI_API_KEY

Configuración de la base de datos

# Create D1 database
wrangler d1 create disvr-db

# Run schema
wrangler d1 execute disvr-db --file=./schema.sql

# Create Vectorize index
wrangler vectorize create disvr-mcp-index --dimensions=1536 --metric=cosine

Filosofía de diseño

Inteligencia de gasto, no solo búsqueda

Disvr no es un directorio. No es un mercado. Es una capa de decisión.

Los directorios tradicionales devuelven una lista y te dejan elegir. Disvr devuelve una recomendación y te dice:

  • Por qué vale la pena usar esta herramienta

  • Cómo se compara su relación costo/calidad

  • Qué la hace mejor que las alternativas

El bucle de retroalimentación es la ventaja competitiva

Cada vez que un agente informa un resultado de llamada (éxito/fallo, latencia, costo), se retroalimenta en el algoritmo de clasificación. Más uso → recomendaciones más inteligentes. Esta no es una base de datos estática, es un sistema de inteligencia vivo.

La búsqueda de doble ruta garantiza la recuperación

  • Primaria: Embedding de OpenAI → búsqueda vectorial CF Vectorize (coincidencia semántica)

  • Respaldo: Búsqueda de texto completo FTS5 (OR + comodines de prefijo)

  • Se degrada automáticamente cuando el embedding falla o la búsqueda vectorial devuelve resultados vacíos: siempre devuelve resultados


Hoja de ruta

  • [x] API principal (descubrir + informar + salud)

  • [x] Servidor MCP (HTTP transmitible)

  • [x] Rastreador de Smithery (más de 330 servicios)

  • [x] Rastreador de GitHub awesome-mcp + enriquecimiento de estrellas

  • [x] Rastreador del registro oficial de MCP (más de 1000 servicios)

  • [x] Página de destino + 4 páginas de frontend

  • [x] Dominios personalizados (www.disvr.top + api.disvr.top)

  • [x] SDK de npm (@sylar_yan/disvr)

  • [x] 90 pruebas unitarias (tipos, descubrir, db, api, rastreo)

  • [x] Registro de solicitudes + API de analítica

  • [x] Agregación de estadísticas diarias mediante cron

  • [x] Verificaciones de salud + puntuación de reputación multisignal

  • [x] Registro de usuario + UI de gestión de claves API

  • [ ] Verificación de integración de agentes (pruebas de MCP en el mundo real)

  • [ ] Panel de seguimiento de costos

  • [ ] Integración de protocolo de pago (Stripe MPP / x402)


Contribuciones

¡Los PRs y los Issues son bienvenidos!

  • 🐛 Informes de errores → GitHub Issues

  • 💡 Solicitudes de funciones → GitHub Issues

  • 🔧 Contribuciones de código → Fork & PR


Agradecimientos


Licencia

MIT


-
security - not tested
A
license - permissive license
-
quality - not tested

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/Svanik-yan/disvr'

If you have feedback or need assistance with the MCP directory API, please join our Discord server