loading…
Search for a command to run...
loading…
Tool search engine for AI agents. One API call to discover the best MCP server for any task. 900+ services indexed with 4-dimensional value ranking.
Tool search engine for AI agents. One API call to discover the best MCP server for any task. 900+ services indexed with 4-dimensional value ranking.
Spend Intelligence for AI Agents — the "Yelp for the Agent Economy"
Why Disvr · Quick Start · API · Architecture · Live Demo · 中文文档
The AI Agent ecosystem is exploding. Payment protocols (Stripe MPP, OpenAI ACP, x402) solve how to pay. Directories (Smithery, Composio) solve what exists.
But nobody solves the most critical question: which tool is actually worth using?
🤖 "Translate a Chinese legal contract to Thai" → 50 translation services on Smithery. Which one has the best cost/quality ratio?
🤖 "Scrape product prices from e-commerce sites" → 30 scraping tools. Which one has the highest success rate and lowest latency?
🤖 "Generate a product image" → 20 image generation services. Which one is cheapest while still being good enough?
Right now, agents pick blindly. Wrong picks mean wasted money, wasted time, and failed tasks.
Disvr fixes this.
Instead of returning a list, Disvr returns a ranked recommendation — based on a 4-dimensional value score:
| Dimension | Weight | What it measures |
|---|---|---|
| 🎯 Semantic Match | 0.30 | How well the service matches the need |
| ⭐ Quality | 0.25 | Historical success rate, reputation |
| 💰 Cost Efficiency | 0.25 | Cost per call, value for money |
| 🔒 Reliability | 0.20 | Latency, retry rate, uptime |
Your agent stops guessing and starts choosing the best tool for the job.
| 💰 Free to use | Free tier: 1,000 queries/day, no credit card required |
| 🔌 MCP Native | One-line config for Claude Code, Cursor, or any MCP client |
| 🔄 Closed-Loop Feedback | Agents report call results → rankings get smarter over time |
| ☁️ Global Edge | Deployed on Cloudflare Workers, low latency worldwide |
| 📡 Real-time Data | Hourly crawls from Smithery keep service data fresh |
Add one line to your .mcp.json:
{
"mcpServers": {
"disvr": {
"type": "url",
"url": "https://api.disvr.top/mcp"
}
}
}
Restart Claude Code / Cursor — your agent now has the discover_services tool.
Try telling your agent:
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"}'
Returns Top 3 recommendations ranked by 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"
}
]
}
| Page | Link | Description |
|---|---|---|
| 🏠 Home | www.disvr.top | Product overview |
| 🔍 Explorer | www.disvr.top/explorer | Interactive query playground — try the API live |
| 📋 Registry | www.disvr.top/registry | Browse all indexed services |
| 📊 Analytics | www.disvr.top/analytics | System architecture & scoring visualization |
POST /discover — Service DiscoveryDescribe what your agent needs, get back Top 3 ranked recommendations.
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
}
| Parameter | Required | Description |
|---|---|---|
need |
✅ | What you need (≥5 chars) |
max_price_per_call |
❌ | Max price per call (USD) |
max_latency_ms |
❌ | Max acceptable latency (ms) |
min_reputation |
❌ | Min reputation score (0-5) |
POST /report — Feedback LoopReport call results after using a tool — closes the feedback loop and improves rankings.
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 — Health Checkcurl https://api.disvr.top/health
# {"status": "ok", "services_indexed": 330}
Tools exposed via the MCP Server:
| Tool | Description |
|---|---|
discover_services |
Semantic search + 4-dim value ranking |
list_service_count |
Total number of indexed services |
report_call_result |
Report call results (feedback loop) |
TypeScript/JavaScript SDK with full type safety:
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
└─────────────────┘
| Component | Technology |
|---|---|
| Runtime | Cloudflare Workers |
| Framework | Hono |
| Database | Cloudflare D1 (SQLite) |
| Vector Search | CF Vectorize (1536-dim, cosine) |
| Text Search | FTS5 (OR + prefix, fallback path) |
| Embedding | OpenAI text-embedding-3-small |
| MCP Server | CF Agents SDK (McpAgent + Durable Objects) |
| Data Sources | Smithery, GitHub awesome-mcp, MCP Official Registry (~2000 services) |
| Cron | CF Cron Trigger (hourly) |
| Language | 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 is not a directory. It's not a marketplace. It's a decision layer.
Traditional directories return a list and let you pick. Disvr returns a recommendation and tells you:
Every time an agent reports a call result (success/failure, latency, cost), it feeds back into the ranking algorithm. More usage → smarter recommendations. This isn't a static database — it's a living intelligence system.
PRs and Issues are welcome!
Stop guessing. Start discovering.
www.disvr.top · MCP Server · API Status
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"disvr": {
"command": "npx",
"args": []
}
}
}