disvr
Почему 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"
}
]
}Демо
Страница | Ссылка | Описание |
🏠 Главная | Обзор продукта | |
🔍 Explorer | Интерактивная площадка для запросов — протестируйте API вживую | |
📋 Реестр | Просмотр всех проиндексированных сервисов | |
📊 Аналитика | Архитектура системы и визуализация оценок |
Справочник 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
}Параметр | Обязательно | Описание |
| ✅ | Что вам нужно (≥5 символов) |
| ❌ | Макс. цена за вызов (USD) |
| ❌ | Макс. допустимая задержка (мс) |
| ❌ | Мин. оценка репутации (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-сервер:
Инструмент | Описание |
| Семантический поиск + 4-мерное ранжирование ценности |
| Общее количество проиндексированных сервисов |
| Отчет о результатах вызова (цикл обратной связи) |
SDK
TypeScript/JavaScript SDK с полной типизацией:
npm install @sylar_yan/disvrimport { 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-сервера
Лицензия
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