Skip to main content
Glama

discover_capabilities

Search and filter available API capabilities by domain or text to find providers for AI agents, returning provider counts and top provider information.

Instructions

Discover what capabilities are available — search by domain or text. Returns capabilities with provider counts and top provider info.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainNoFilter by capability domain (e.g. 'email', 'payment', 'ai')
searchNoSearch capabilities by text
limitNoMax results to return (default 20)

Implementation Reference

  • Implementation of the discover_capabilities tool handler, which calls the Rhumb API client to fetch capabilities.
    export async function handleDiscoverCapabilities(
      input: DiscoverCapabilitiesInput,
      client: RhumbApiClient
    ): Promise<DiscoverCapabilitiesOutput> {
      try {
        const result = await client.discoverCapabilities({
          domain: input.domain,
          search: input.search,
          limit: input.limit ?? 20
        });
    
        return {
          capabilities: result.items,
          total: result.total
        };
      } catch {
        return { capabilities: [], total: 0 };
      }
    }
  • Input schema definition for the discover_capabilities tool.
    export const DiscoverCapabilitiesInputSchema = {
      type: "object" as const,
      properties: {
        domain: { type: "string" as const, description: "Filter by domain: 'email', 'payment', 'ai', 'communication', 'data', 'storage', 'search', etc. Omit for all domains." },
        search: { type: "string" as const, description: "Free-text search across capability names and descriptions. Examples: 'send message', 'charge card', 'scrape website'" },
        limit: { type: "number" as const, minimum: 1, maximum: 50, description: "Max results (default 20). Returns capability IDs you can pass to resolve_capability." }
      },
      required: [] as const
    };
    
    export type DiscoverCapabilitiesInput = {
      domain?: string;
      search?: string;
      limit?: number;
    };
    
    export type CapabilityItem = {
      id: string;
      domain: string;
      action: string;
      description: string;
      inputHint: string;
      outcome: string;
      providerCount: number;
      topProvider: { slug: string; anScore: number | null; tierLabel: string } | null;
    };
  • Tool registration logic inside the MCP server, dispatching to handleDiscoverCapabilities.
      "discover_capabilities",
      "Browse Capabilities by domain or search text. A Capability is an action (e.g. 'email.send', 'payment.charge') that multiple providers can fulfill. Use this when you know WHAT you need to do but not which Service does it. Returns Capability IDs for resolve_capability. Different from find_services: find_services searches Services, this searches Capabilities.",
      {
        domain: z.string().optional().describe(DiscoverCapabilitiesInputSchema.properties.domain.description),
        search: z.string().optional().describe(DiscoverCapabilitiesInputSchema.properties.search.description),
        limit: z.number().min(1).max(50).optional().describe(DiscoverCapabilitiesInputSchema.properties.limit.description)
      },
      async ({ domain, search, limit }) => {
        const result = await handleDiscoverCapabilities({ domain, search, limit }, client);
        return {
          content: [{ type: "text" as const, text: JSON.stringify(result) }]
        };
      }
    );

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/supertrained/rhumb'

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