Skip to main content
Glama

search_mcp_server

Find registered MCP servers by query to discover available tools and services for routing requests.

Instructions

Search for registered MCP servers based on a query. Args: query: Search query top_k: Number of top results to return (default: 3)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Implementation Reference

  • The handler function for the 'search_mcp_server' tool, decorated with @mcp.tool() for registration. It calls the discovery_service to search for MCP servers and returns the results as JSON.
    @mcp.tool() async def search_mcp_server(query: str, top_k: Optional[int] = 3) -> str: """ Search for registered MCP servers based on a query. Args: query: Search query top_k: Number of top results to return (default: 3) """ try: # Search for servers results = discovery_service.search_server(query, top_k) # Parse tools JSON strings back to objects for result in results: result["tools"] = json.loads(result["tools"]) return json.dumps(results, ensure_ascii=False) except Exception as e: return json.dumps({"error": str(e)}, ensure_ascii=False)
  • Supporting helper method in DiscoveryService that performs the actual semantic search using text embeddings from DashScope and vector similarity search in DashVector.
    def search_server(self, query, top_k=3): """ Search for MCP servers based on a query. Args: query (str): Search query top_k (int): Number of top results to return (default: 3) Returns: list: List of matching servers with their metadata """ # Generate vector for the query query_vector = self._generate_embedding(query) # Perform vector search rsp = self.collection.query( query_vector, topk=top_k, output_fields=['server_description', 'server_endpoint', 'tools'] ) if not rsp: raise Exception("Failed to query DashVector") # Process results results = [] for doc in rsp.output: results.append({ "server_name": doc.id, "server_description": doc.fields['server_description'], "server_endpoint": doc.fields['server_endpoint'], "tools": doc.fields['tools'], # Still a JSON string "score": doc.score }) return results
Install Server

Other Tools

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/Maverick-LjXuan/mcp-router'

If you have feedback or need assistance with the MCP directory API, please join our Discord server