Skip to main content
Glama

search_services

Find available pet care services in your location by searching Rover's marketplace to connect with sitters and manage bookings.

Instructions

List all available Rover service types in a given location with descriptions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
locationYesLocation to search for available services

Implementation Reference

  • The handler for the 'search_services' tool that validates the location parameter using SearchServicesSchema, calls browser.searchServices(), and formats the response as a text message listing available services.
    case "search_services": {
      const { location } = SearchServicesSchema.parse(args);
      const services = await browser.searchServices(location);
      const formatted = services
        .map((s) => `• **${s.type.replace(/_/g, " ")}**: ${s.description}`)
        .join("\n");
      return {
        content: [
          {
            type: "text",
            text: `Available Rover services in ${location}:\n\n${formatted}`,
          },
        ],
      };
    }
  • Zod validation schema for search_services input, requiring a non-empty location string.
    const SearchServicesSchema = z.object({
      location: z.string().min(1),
    });
  • src/index.ts:89-103 (registration)
    Tool registration defining 'search_services' with description and JSON Schema inputSchema specifying a required 'location' string parameter.
    {
      name: "search_services",
      description:
        "List all available Rover service types in a given location with descriptions.",
      inputSchema: {
        type: "object",
        properties: {
          location: {
            type: "string",
            description: "Location to search for available services",
          },
        },
        required: ["location"],
      },
    },
  • The searchServices method implementation that navigates to the Rover homepage and returns a hardcoded array of available service types (boarding, house_sitting, drop_in, doggy_day_care, dog_walking) with descriptions.
    async searchServices(location: string): Promise<Array<{ type: string; description: string; availableCount: number }>> {
      const page = this.ensurePage();
      await page.goto(`${this.BASE_URL}/`);
      await page.waitForLoadState("networkidle");
    
      return [
        { type: "boarding", description: "Your dog stays at the sitter's home", availableCount: 0 },
        { type: "house_sitting", description: "Sitter stays in your home", availableCount: 0 },
        { type: "drop_in", description: "Sitter visits your home for 30-60 minutes", availableCount: 0 },
        { type: "doggy_day_care", description: "Your dog spends the day at the sitter's home", availableCount: 0 },
        { type: "dog_walking", description: "Sitter takes your dog for a walk", availableCount: 0 },
      ];
    }

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/markswendsen-code/mcp-rover'

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