Skip to main content
Glama

Почему Disvr?

Экосистема ИИ-агентов стремительно растет. Платежные протоколы (Stripe MPP, OpenAI ACP, x402) решают вопрос как платить. Каталоги (Smithery, Composio) решают вопрос что существует.

Но никто не решает самый важный вопрос: какой инструмент действительно стоит использовать?

🤖 «Переведи китайский юридический контракт на тайский» → 50 сервисов перевода на Smithery. Какой из них имеет лучшее соотношение цены и качества?

🤖 «Спарси цены на товары с сайтов электронной коммерции» → 30 инструментов для парсинга. У какого из них самый высокий процент успеха и самая низкая задержка?

🤖 «Создай изображение товара» → 20 сервисов генерации изображений. Какой из них самый дешевый, но при этом достаточно качественный?

Сейчас агенты выбирают вслепую. Ошибочный выбор означает пустую трату денег, времени и проваленные задачи.

Disvr исправляет это.

Вместо списка Disvr возвращает рекомендацию с ранжированием, основанную на 4-мерной оценке ценности:

Измерение

Вес

Что измеряет

🎯 Семантическое соответствие

0.30

Насколько сервис соответствует потребности

⭐ Качество

0.25

Исторический процент успеха, репутация

💰 Экономическая эффективность

0.25

Стоимость вызова, соотношение цены и качества

🔒 Надежность

0.20

Задержка, частота повторных попыток, время безотказной работы

Ваш агент перестает гадать и начинает выбирать лучший инструмент для задачи.


✅ Перед началом

💰 Бесплатно

Бесплатный уровень: 1000 запросов/день, кредитная карта не нужна

🔌 MCP Native

Настройка в одну строку для Claude Code, Cursor или любого MCP-клиента

🔄 Обратная связь

Агенты сообщают о результатах вызовов → рейтинги становятся точнее со временем

☁️ Глобальная сеть

Развернуто на Cloudflare Workers, низкая задержка по всему миру

📡 Данные в реальном времени

Ежечасное сканирование Smithery поддерживает данные в актуальном состоянии


Быстрый старт

Вариант 1: MCP-сервер (рекомендуется)

Добавьте одну строку в ваш .mcp.json:

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

Перезапустите Claude Code / Cursor — теперь у вашего агента есть инструмент discover_services.

Попробуйте сказать своему агенту:

  • «Найди лучший инструмент для перевода китайских юридических документов на тайский»

  • «Порекомендуй самый дешевый сервис веб-парсинга с высоким процентом успеха»

  • «У какого API для генерации изображений лучшее соотношение цены и качества?»

Вариант 2: REST API

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"}'

Возвращает топ-3 рекомендации, отранжированные по 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"
    }
  ]
}

Демо

Страница

Ссылка

Описание

🏠 Главная

www.disvr.top

Обзор продукта

🔍 Explorer

www.disvr.top/explorer

Интерактивная площадка для запросов — протестируйте API вживую

📋 Реестр

www.disvr.top/registry

Просмотр всех проиндексированных сервисов

📊 Аналитика

www.disvr.top/analytics

Архитектура системы и визуализация оценок


Справочник API

POST /discover — Поиск сервисов

Опишите, что нужно вашему агенту, и получите топ-3 рекомендации.

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
}

Параметр

Обязательно

Описание

need

Что вам нужно (≥5 символов)

max_price_per_call

Макс. цена за вызов (USD)

max_latency_ms

Макс. допустимая задержка (мс)

min_reputation

Мин. оценка репутации (0-5)

POST /report — Обратная связь

Сообщайте о результатах вызова после использования инструмента — это замыкает цикл обратной связи и улучшает рейтинги.

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 — Проверка работоспособности

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

Инструменты MCP

Инструменты, предоставляемые через MCP-сервер:

Инструмент

Описание

discover_services

Семантический поиск + 4-мерное ранжирование ценности

list_service_count

Общее количество проиндексированных сервисов

report_call_result

Отчет о результатах вызова (цикл обратной связи)


SDK

TypeScript/JavaScript SDK с полной типизацией:

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);

Архитектура

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
  └─────────────────┘

Технологический стек

Компонент

Технология

Среда выполнения

Cloudflare Workers

Фреймворк

Hono

База данных

Cloudflare D1 (SQLite)

Векторный поиск

CF Vectorize (1536-dim, косинусное сходство)

Текстовый поиск

FTS5 (OR + префикс, резервный путь)

Эмбеддинги

OpenAI text-embedding-3-small

MCP-сервер

CF Agents SDK (McpAgent + Durable Objects)

Источники данных

Smithery, GitHub awesome-mcp, официальный реестр MCP (~2000 сервисов)

Cron

CF Cron Trigger (ежечасно)

Язык

TypeScript


Структура проекта

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

Локальная разработка

# 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

Переменные окружения

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

Настройка базы данных

# 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

Философия дизайна

Аналитика расходов, а не просто поиск

Disvr — это не каталог. Это не маркетплейс. Это уровень принятия решений.

Традиционные каталоги возвращают список и позволяют вам выбирать. Disvr возвращает рекомендацию и объясняет:

  • Почему этот инструмент стоит использовать

  • Как соотносится его цена и качество

  • Что делает его лучше альтернатив

Обратная связь — наше конкурентное преимущество

Каждый раз, когда агент сообщает о результате вызова (успех/ошибка, задержка, стоимость), эти данные поступают в алгоритм ранжирования. Больше использования → умнее рекомендации. Это не статичная база данных, а живая интеллектуальная система.

Двухпутевой поиск гарантирует полноту

  • Основной: Эмбеддинги OpenAI → векторный поиск CF Vectorize (семантическое соответствие)

  • Резервный: Полнотекстовый поиск FTS5 (OR + префиксные маски)

  • Автоматически переключается, если эмбеддинги не работают или векторный поиск возвращает пустоту — результаты будут всегда


Дорожная карта

  • [x] Основной API (discover + report + health)

  • [x] MCP-сервер (потоковый HTTP)

  • [x] Краулер Smithery (330+ сервисов)

  • [x] Краулер GitHub awesome-mcp + обогащение данными о звездах

  • [x] Краулер официального реестра MCP (1000+ сервисов)

  • [x] Лендинг + 4 страницы интерфейса

  • [x] Пользовательские домены (www.disvr.top + api.disvr.top)

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

  • [x] 90 модульных тестов (типы, discover, БД, API, краулер)

  • [x] Логирование запросов + API аналитики

  • [x] Ежедневная агрегация статистики через Cron

  • [x] Проверки работоспособности + многофакторная оценка репутации

  • [x] Регистрация пользователей + UI управления API-ключами

  • [ ] Проверка интеграции с агентами (реальное тестирование MCP)

  • [ ] Дашборд отслеживания расходов

  • [ ] Интеграция платежных протоколов (Stripe MPP / x402)


Участие в разработке

PR и Issues приветствуются!

  • 🐛 Отчеты об ошибках → GitHub Issues

  • 💡 Запросы функций → GitHub Issues

  • 🔧 Вклад в код → Fork & PR


Благодарности

  • Cloudflare Workers — Глобальные граничные вычисления

  • Hono — Легковесный веб-фреймворк

  • Smithery — Реестр MCP-сервисов

  • OpenAI — text-embedding-3-small

  • CF Agents SDK — Реализация MCP-сервера


Лицензия

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