Skip to main content
Glama
discava

discava – Business Directory for AI

search_businesses

Search for local businesses worldwide using location, category, or keywords to find names, categories, and quality scores for AI-driven analysis.

Instructions

Search for local businesses. Returns name, category, city, country, logo_url, available_details (what data exists), and scores. Check available_details to see what is available, then call get_business for full details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query (e.g. "plumber", "Zahnarzt", "Italian restaurant")
cityNoCity name (e.g. "Hamburg", "Wien", "New York")
countryYesISO country code (e.g. "DE", "AT", "CH", "US"). Required.
categoryNoCategory slug (e.g. "plumber", "restaurant", "dentist")
limitNoNumber of results (1-50, default 10)
pageNoPage number
min_confidenceNoMin confidence score 0-100
langNoLanguage for labels: "de" or "en"en
latNoLatitude for distance
lonNoLongitude for distance

Implementation Reference

  • server.ts:53-81 (handler)
    The 'search_businesses' tool is registered and implemented directly in server.ts using the McpServer.tool method. It takes various query parameters, constructs a URL, calls the discava API, and returns the result.
    server.tool(
      'search_businesses',
      'Search for local businesses. Returns name, category, city, country, logo_url, available_details (what data exists), and scores. Check available_details to see what is available, then call get_business for full details.',
      {
        query: z.string().optional().describe('Search query (e.g. "plumber", "Zahnarzt", "Italian restaurant")'),
        city: z.string().optional().describe('City name (e.g. "Hamburg", "Wien", "New York")'),
        country: z.string().describe('ISO country code (e.g. "DE", "AT", "CH", "US"). Required.'),
        category: z.string().optional().describe('Category slug (e.g. "plumber", "restaurant", "dentist")'),
        limit: z.number().optional().default(10).describe('Number of results (1-50, default 10)'),
        page: z.number().optional().default(1).describe('Page number'),
        min_confidence: z.number().optional().describe('Min confidence score 0-100'),
        lang: z.string().optional().default('en').describe('Language for labels: "de" or "en"'),
        lat: z.number().optional().describe('Latitude for distance'),
        lon: z.number().optional().describe('Longitude for distance'),
      },
      async ({ query, city, country, category, limit, page, min_confidence, lang, lat, lon }) => {
        const params = new URLSearchParams({ country });
        if (query) params.set('q', query);
        if (city) params.set('city', city);
        if (category) params.set('category', category);
        if (limit) params.set('limit', String(limit));
        if (page) params.set('page', String(page));
        if (min_confidence) params.set('min_confidence', String(min_confidence));
        if (lang) params.set('lang', lang);
        if (lat !== undefined) params.set('lat', String(lat));
        if (lon !== undefined) params.set('lon', String(lon));
        return jsonContent(await api(`/search?${params}`));
      }
    );

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/discava/mcp-server'

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