MCP Server Search and Discovery Tools
Search and discover MCP server listings, query server details, and find the best match from this comprehensive list.
npx -y @atonomus/mcp-servers-searchOverview
This repository provides a focused set of tools for searching and discovering MCP (Model Context Protocol) servers. It collects or indexes server listings, exposes a simple HTTP API for querying server details, and offers a “best match” endpoint to find the most suitable server given a set of capabilities, tags, or other filters. The project is useful for service registries, client bootstrapping, monitoring dashboards, and developer tooling that needs to locate MCP-capable endpoints programmatically.
Designed for developers who want an easy-to-run directory of MCP servers, the project supports full-text and attribute-based search, configurable ranking, and both ad-hoc and automated discovery workflows. It can be deployed locally for testing or in production behind a standard reverse proxy or load balancer.
Features
- Index and query MCP server listings using HTTP REST endpoints
- Full-text search across server names, descriptions, and tags
- Filter by capabilities, region, tags, or custom metadata
- “Best match” ranking to select the most appropriate server for a requested capability set
- Lightweight Node.js/Express implementation with optional Docker image
- Simple JSON API responses for easy client integration
- Configurable via environment variables (port, database, indexing options)
Installation / Configuration
Clone the repository and use npm (or yarn/pnpm) to install dependencies.
Development and production commands:
# Run in development (auto-reload)
# Build and start production
Docker:
# Build
# Run (example)
Environment variables (common):
| Variable | Default | Description |
|---|---|---|
| PORT | 3000 | HTTP server port |
| DATABASE_URL | sqlite://./data/servers.db | DB connection string (SQLite/Postgres supported) |
| INDEX_PATH | ./data/index | Path for search index files |
| DATA_REFRESH_INTERVAL | 3600 | Seconds between automatic listing refreshes |
Example .env:
PORT=3000
DATABASE_URL=sqlite://./data/servers.db
INDEX_PATH=./data/index
DATA_REFRESH_INTERVAL=3600
Available Resources
The server exposes a small set of HTTP endpoints suitable for direct consumption by clients, dashboards, or other services.
- GET /api/servers
- Returns a list of all servers (supports pagination).
- GET /api/servers/:id
- Retrieve full metadata for a specific server.
- GET /api/search
- Search by query string, tags, capabilities, region, and other filters.
- GET /api/match
- Find the best match for a requested capability set or tags.
Sample endpoints table:
| Endpoint | Method | Query Params | Description |
|---|---|---|---|
| /api/servers | GET | page, limit | List servers |
| /api/servers/:id | GET | — | Server details |
| /api/search | GET | q, tags, region, limit | Filtered search |
| /api/match | GET | capabilities, tags, region | Best-match selection |
Example JSON response (server item):
Use Cases
Client bootstrapping
- A client wants to find a nearby MCP server that supports “image-caption”:
- Request: GET /api/match?capabilities=image-caption&region=eu
- Response: Best matching server URL and score for immediate connection.
- A client wants to find a nearby MCP server that supports “image-caption”:
Service dashboard and monitoring
- A dashboard polls /api/servers to build an overview of available MCP endpoints and displays tags, latency averages, and uptime meta.
Automated routing / gateway
- A gateway queries /api/match with an incoming request’s required capabilities and routes traffic to the selected MCP server, improving client experience by matching capabilities and geography.
Developer exploration
- A developer searches for experimental servers capable of “multimodal” features:
- Request: GET /api/search?q=multimodal&tags=experimental&limit=10
- A developer searches for experimental servers capable of “multimodal” features:
Concrete example (curl):
# Search for servers with image capabilities and the tag "low-latency"
|
# Find the best match for a capability set
Extending and Integrating
- Indexing: The search index can be extended to include custom scoring (e.g., ping latency, recent success rates).
- Data sources: Ingest lists from static JSON, admin UIs, or remote registries. The codebase includes hooks for scheduled refresh tasks.
- Security: Deploy behind API gateways or add token-based auth for private registries. Rate limiting and caching layers are recommended for high-traffic environments.
Repository and contribution details are available on GitHub: https://github.com/atonomus/mcp-servers-search.