Skip to main content
Glama

Disvr를 선택하는 이유

AI 에이전트 생태계가 폭발적으로 성장하고 있습니다. 결제 프로토콜(Stripe MPP, OpenAI ACP, x402)은 결제 방법을 해결합니다. 디렉토리(Smithery, Composio)는 무엇이 존재하는지를 해결합니다.

하지만 가장 중요한 질문인 **"어떤 도구를 사용하는 것이 실제로 가치 있는가?"**를 해결하는 곳은 없습니다.

🤖 "중국어 법률 계약서를 태국어로 번역해줘" → Smithery에 50개의 번역 서비스가 있습니다. 비용/품질 비율이 가장 좋은 것은 무엇일까요?

🤖 "전자상거래 사이트에서 상품 가격을 스크래핑해줘" → 30개의 스크래핑 도구가 있습니다. 성공률이 가장 높고 지연 시간이 가장 짧은 것은 무엇일까요?

🤖 "상품 이미지를 생성해줘" → 20개의 이미지 생성 서비스가 있습니다. 충분히 좋으면서 가장 저렴한 것은 무엇일까요?

현재 에이전트들은 눈을 감고 선택하고 있습니다. 잘못된 선택은 돈과 시간 낭비, 그리고 작업 실패로 이어집니다.

Disvr가 이 문제를 해결합니다.

Disvr는 단순한 목록을 반환하는 대신, 4차원 가치 점수를 기반으로 순위가 매겨진 추천을 제공합니다:

차원

가중치

측정 항목

🎯 의미론적 일치

0.30

서비스가 요구사항과 얼마나 잘 일치하는지

⭐ 품질

0.25

과거 성공률, 평판

💰 비용 효율성

0.25

호출당 비용, 가성비

🔒 신뢰성

0.20

지연 시간, 재시도율, 가동 시간

이제 에이전트는 추측을 멈추고 작업에 가장 적합한 도구를 선택하기 시작합니다.


✅ 시작하기 전에

💰 무료 사용

무료 티어: 일일 1,000회 쿼리, 신용카드 불필요

🔌 MCP 네이티브

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

value_score에 따라 순위가 매겨진 상위 3개 추천을 반환합니다:

{
  "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

제품 개요

🔍 탐색기

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

허용 가능한 최대 지연 시간 (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차원, 코사인)

텍스트 검색

FTS5 (OR + 접두사, 폴백 경로)

임베딩

OpenAI text-embedding-3-small

MCP 서버

CF Agents SDK (McpAgent + Durable Objects)

데이터 소스

Smithery, GitHub awesome-mcp, MCP 공식 레지스트리 (~2000개 서비스)

크론

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 크롤러 + Stars 정보 보강

  • [x] MCP 공식 레지스트리 크롤러 (1000개 이상의 서비스)

  • [x] 랜딩 페이지 + 4개의 프론트엔드 페이지

  • [x] 커스텀 도메인 (www.disvr.top + api.disvr.top)

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

  • [x] 90개의 단위 테스트 (타입, discover, db, api, crawl)

  • [x] 요청 로깅 + 분석 API

  • [x] 일일 통계 크론 집계

  • [x] 상태 확인 + 다중 신호 평판 점수 산정

  • [x] 사용자 등록 + API 키 관리 UI

  • [ ] 에이전트 통합 검증 (MCP 실환경 테스트)

  • [ ] 비용 추적 대시보드

  • [ ] 결제 프로토콜 통합 (Stripe MPP / x402)


기여

PR과 이슈는 언제나 환영합니다!


감사의 말


라이선스

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