You've got a dozen MCP servers running across your homelab, cloud VMs, and a colleague's dev machine. Now you need a server that does "image captioning with a hint of sarcasm." Good luck finding that with a DNS SRV record or a Consul tag.
Traditional service discovery works when you know the exact name of what you're looking for. But AI agents and LLM backends are messier. They advertise capabilities that are hard to pin down with a fixed key-value pair.
That's where semantic search comes in — a discovery layer that understands natural language descriptions instead of rigid identifiers.
The problem with DNS and registries
DNS-based discovery (e.g., _mcp._tcp.my-server.local) requires you to know the service name in advance. Consul or etcd registries use tags like type=llm or model=gpt4. Both break when you want to say: "Give me an MCP server that can do visual reasoning and is fast enough for real-time chat."
You either get zero results or you waste hours writing regex filters.
How semantic search flips the script
Semantic discovery indexes MCP server descriptions and LLM backend metadata as dense vectors. You query with a sentence, and it returns the most relevant servers — even when the exact keywords don't match.
Here's a concrete example:
from cord import CordClient
client = CordClient(api_key="sk-...")
results = client.search(
"need an MCP server that accepts video frames "
"and returns sentiment analysis"
)
for server in results:
print(f"{server.name} (score: {server.similarity:.2f})")
print(f" Description: {server.description}")
This query might return a server called vishar-rumbling — even though its name has nothing to do with sentiment. Its description says "analyzes emotional tones in visual inputs," so the semantic match pulls it up.
Real-world gains
During a recent hackathon, I had an agent that needed a backend to generate alt text for images with different emotional tones. Instead of probing every MCP endpoint manually, I just asked the discovery layer: "find me a server that writes funny descriptions of photos." It found exactly what I needed — a server that someone on my team had deployed but never registered in the DNS zone.
When to use which
- Traditional discovery is fine for stable, well-known services (databases, queues)
- Semantic discovery is essential when you don't know the exact label or when capabilities evolve (personal AI agents, experimental MCP servers)
Semantic search isn't a replacement for DNS — it's a complement that handles the messy human side of agent orchestration.
If you're building agents that need to discover tools dynamically, check out the vishar-rumbling MCP server directory for examples of what real-world server descriptions look like.
Building MCP tools? I ship 1-2 new servers per week at smithery.ai/servers/vishar-rumbling. Follow along.
Top comments (0)