Rover MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Rover MCP Serverfind a dog sitter in Austin for this weekend"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@striderlabs/mcp-rover
A Model Context Protocol (MCP) connector for Rover — the pet services marketplace. Enables AI assistants to search for pet sitters, manage bookings, communicate with sitters, and handle pet profiles through Rover's platform.
Features
Search pet sitters by location, service type, and dates
View detailed sitter profiles with reviews and pricing
Browse available service types (boarding, walking, drop-in, etc.)
Request bookings and manage existing ones
Send and receive messages with sitters
Manage pet profiles (add, update, list)
Leave reviews for completed services
View favorited sitters
Related MCP server: MCP Playwright Server
Prerequisites
Node.js 18+
A Rover account at rover.com
Playwright browsers installed
Installation
npm install @striderlabs/mcp-rover
# Install Playwright browsers (first time only)
npx playwright install chromiumMCP Configuration
Add to your MCP client configuration (e.g., Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"rover": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-rover"]
}
}
}Or if installed globally:
{
"mcpServers": {
"rover": {
"command": "mcp-rover"
}
}
}Available Tools
Authentication
login
Log in to your Rover account.
Parameter | Type | Required | Description |
string | Yes | Your Rover email | |
password | string | Yes | Your Rover password |
Sitter Search
search_sitters
Search for pet sitters by location and service type.
Parameter | Type | Required | Description |
location | string | Yes | City, neighborhood, or zip code |
serviceType | enum | Yes |
|
startDate | string | No | YYYY-MM-DD format |
endDate | string | No | YYYY-MM-DD format |
petCount | number | No | Number of pets |
petSize | enum | No |
|
get_sitter_profile
Get detailed profile for a sitter including reviews and rates.
Parameter | Type | Required | Description |
sitterIdOrUrl | string | Yes | Sitter username or full Rover profile URL |
search_services
List all available service types in a location.
Parameter | Type | Required | Description |
location | string | Yes | Location to search |
Bookings
request_booking
Send a booking request to a sitter. Requires login.
Parameter | Type | Required | Description |
sitterId | string | Yes | Sitter ID or profile URL |
serviceType | enum | Yes | Type of service |
startDate | string | Yes | YYYY-MM-DD |
endDate | string | Yes | YYYY-MM-DD |
petIds | string[] | Yes | Array of pet IDs |
message | string | No | Message to the sitter |
get_bookings
View all current and past bookings. Requires login.
Messaging
message_sitter
Send a message to a sitter. Requires login.
Parameter | Type | Required | Description |
sitterId | string | Yes | Sitter ID or profile URL |
message | string | Yes | Message text |
get_messages
Get message threads. Requires login.
Parameter | Type | Required | Description |
sitterId | string | No | Filter to a specific sitter thread |
Pet Management
add_pet_profile
Add a new pet to your account. Requires login.
Parameter | Type | Required | Description |
name | string | Yes | Pet's name |
species | enum | Yes |
|
breed | string | No | Pet's breed |
age | number | No | Age in years |
weight | number | No | Weight in pounds |
size | enum | No |
|
temperament | string | No | Personality description |
specialNeeds | string | No | Medical/care requirements |
vaccinated | boolean | No | Vaccination status |
spayedNeutered | boolean | No | Spayed/neutered status |
update_pet_profile
Update an existing pet profile. Requires login.
Parameter | Type | Required | Description |
petId | string | Yes | Pet's Rover ID |
...fields | — | No | Any fields from |
get_pets
List all pets on your account. Requires login.
Reviews & Favorites
leave_review
Leave a review for a completed service. Requires login.
Parameter | Type | Required | Description |
bookingId | string | Yes | Booking ID |
rating | number | Yes | 1–5 stars |
reviewText | string | Yes | Written review |
get_favorites
Get your list of favorited sitters. Requires login.
Usage Examples
# Search for dog boarders in Seattle for a week
search_sitters location="Seattle, WA" serviceType="boarding" startDate="2025-06-01" endDate="2025-06-07"
# View a sitter's full profile
get_sitter_profile sitterIdOrUrl="john-d"
# Book a sitter
request_booking sitterId="john-d" serviceType="boarding" startDate="2025-06-01" endDate="2025-06-07" petIds=["pet-123"] message="Hi! My dog Bella is friendly and loves to play."
# Send a message
message_sitter sitterId="john-d" message="Hi, is your place good for large dogs?"Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run devArchitecture
src/index.ts— MCP server entry point. Defines all tools, handles request routing, formats responses.src/browser.ts— Playwright-based browser automation layer. Handles all interactions with rover.com.
The server uses stdio transport for MCP communication and launches a headless Chromium browser to interact with Rover's website.
Notes
This connector uses browser automation to interact with Rover's website, as Rover does not provide a public API.
Login credentials are only used for the current session and are never stored.
Browser runs in headless mode by default.
License
MIT
Available Tools
13 toolsadd_pet_profileB
Add a new pet to your Rover account. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pet's name | |
| species | Yes | Pet species | |
| breed | No | Pet's breed | |
| age | No | Pet's age in years | |
| weight | No | Pet's weight in pounds | |
| size | No | Pet size category | |
| temperament | No | Description of pet's temperament and personality | |
| specialNeeds | No | Any special needs, medical conditions, or care requirements | |
| vaccinated | No | Whether the pet is up to date on vaccinations | |
| spayedNeutered | No | Whether the pet is spayed or neutered |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the authentication requirement ('Requires being logged in'), which is valuable. However, it doesn't describe what happens after adding (e.g., success/failure responses, whether the pet becomes immediately visible), potential side effects, or error conditions. For a creation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—just two short sentences that are front-loaded with the core action. Every word earns its place: the first sentence states the purpose, and the second provides a critical prerequisite. There's zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a creation tool with no annotations and no output schema, the description is incomplete. It lacks information about what the tool returns (e.g., a pet ID, confirmation message), error handling, or behavioral details like whether duplicate pets are allowed. The authentication note is helpful but insufficient for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly with descriptions and enums. The description adds no additional parameter information beyond what's in the schema. According to the rules, with high schema coverage (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a new pet') and resource ('to your Rover account'), making the purpose immediately understandable. It distinguishes from sibling tools like 'get_pets' (read) and 'update_pet_profile' (modify), though it doesn't explicitly mention these alternatives. The purpose is specific but could be slightly more differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides one clear usage guideline: 'Requires being logged in.' This gives essential context about prerequisites. However, it doesn't specify when to use this tool versus alternatives like 'update_pet_profile' or mention any exclusions (e.g., when a pet already exists). The guidance is implied but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookingsA
View your current and past bookings on Rover. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the authentication requirement ('Requires being logged in'), which is useful, but doesn't describe other behavioral traits such as what data is returned, pagination, error handling, or rate limits. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that are front-loaded with the core purpose and include essential context (authentication requirement). Every word earns its place with zero waste, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description covers the basic purpose and authentication need adequately. However, without annotations or output schema, it lacks details on return values, data scope (e.g., time range limits), or error cases, which could be important for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter details in the description. The description appropriately focuses on the tool's purpose and context without redundant parameter information, earning a high baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('View') and resource ('your current and past bookings on Rover'), making the purpose understandable. However, it doesn't specifically differentiate this tool from sibling tools like 'get_favorites' or 'get_messages' beyond the resource type, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('View your current and past bookings') and includes a prerequisite ('Requires being logged in'), which is helpful guidance. It doesn't explicitly state when not to use it or name alternatives among siblings, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_favoritesA
Get your list of favorited sitters on Rover. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the authentication requirement ('Requires being logged in'), which is useful behavioral context. However, it lacks details on return format, pagination, error conditions, or rate limits, leaving gaps in behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the tool's purpose and key requirement. Every word serves a purpose with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no annotations and no output schema, the description provides basic purpose and authentication context. However, it lacks information about what the returned data looks like, error handling, or performance characteristics, which would be helpful given the absence of structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the inputs. The description doesn't need to add parameter information, and it appropriately focuses on the tool's purpose and context instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('list of favorited sitters on Rover'), making the purpose understandable. It doesn't explicitly distinguish from siblings like 'get_sitter_profile' or 'search_sitters', but the focus on 'favorited sitters' provides reasonable differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage by stating 'Requires being logged in', which is a prerequisite. However, it doesn't explicitly mention when to use this versus alternatives like 'search_sitters' or 'get_sitter_profile', leaving some ambiguity about sibling tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_messagesB
Get your message threads on Rover. Optionally filter by sitter ID.
| Name | Required | Description | Default |
|---|---|---|---|
| sitterId | No | Optional sitter ID to get messages from a specific thread |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions filtering capability but lacks critical information: it doesn't specify whether this is a read-only operation (implied but not stated), what authentication is required, whether there are rate limits, what the return format looks like, or if there's pagination for large result sets. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that directly address the tool's purpose and main optional feature. Every word earns its place with zero redundancy. The structure is front-loaded with the primary purpose followed by the filtering capability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving message threads with optional filtering), no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'message threads' contain, how results are structured, whether authentication is needed, or any error conditions. For a data retrieval tool without structured output documentation, the description should provide more context about what the agent can expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single optional parameter 'sitterId' with its description. The description adds minimal value by mentioning 'Optionally filter by sitter ID' which essentially repeats what the schema provides. No additional semantic context about parameter usage or constraints is provided beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get your message threads on Rover' specifies the verb (get) and resource (message threads). It distinguishes from siblings like 'message_sitter' (which sends messages) and 'get_bookings' (which retrieves bookings). However, it doesn't explicitly differentiate from potential message-related tools that might exist in other contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by mentioning the optional sitter ID filter, suggesting this tool is for retrieving existing message threads rather than creating new ones. However, it doesn't explicitly state when to use this versus alternatives like 'message_sitter' (for sending) or provide clear exclusion criteria (e.g., when not to use it for new conversations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_petsA
List all pets registered on your Rover account. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the authentication requirement ('Requires being logged in'), which is useful context. However, it lacks details on potential rate limits, error conditions, or what the return format looks like (e.g., list structure, pagination).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by a prerequisite. Every word earns its place with no redundancy or fluff, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is adequate but has gaps. It covers the purpose and authentication need, but without annotations or output schema, it should ideally mention what the return data includes (e.g., pet details) to fully inform the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, and the baseline score for 0 parameters is 4, as it avoids unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all pets') and the resource ('registered on your Rover account'), distinguishing it from siblings like 'add_pet_profile' or 'update_pet_profile' which modify pet data rather than retrieve it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('Requires being logged in'), indicating a prerequisite. However, it does not explicitly state when not to use it or name alternatives, such as how it differs from 'get_favorites' or 'get_bookings' which retrieve other types of data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sitter_profileB
Get detailed profile information for a specific sitter including bio, reviews, services offered, and rates.
| Name | Required | Description | Default |
|---|---|---|---|
| sitterIdOrUrl | Yes | Sitter's Rover username/ID or full profile URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes what information is retrieved but does not disclose behavioral traits such as authentication requirements, rate limits, error handling, or whether this is a read-only operation (implied by 'Get' but not explicit). This leaves gaps for an AI agent to understand operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action and resource, followed by specific details. Every word earns its place, with no redundant or vague language, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and data returned but lacks context on behavioral aspects (e.g., auth, errors) and does not reference the output format, which is missing from the schema. This leaves the agent with some uncertainty about execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'sitterIdOrUrl' well-documented in the schema. The description does not add any additional meaning beyond what the schema provides (e.g., it doesn't clarify format examples or edge cases), so it meets the baseline for high schema coverage without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed profile information') and the resource ('for a specific sitter'), with specific details about what information is included (bio, reviews, services, rates). It distinguishes from siblings like 'search_sitters' (which likely lists multiple sitters) by focusing on a single sitter's details, though it doesn't explicitly name the sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when detailed information about a specific sitter is needed, as opposed to 'search_sitters' for finding sitters. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_favorites' or 'message_sitter', and does not mention prerequisites (e.g., needing a sitter ID from search results).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leave_reviewA
Leave a review for a sitter after a completed service. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
| bookingId | Yes | The booking ID for the completed service | |
| rating | Yes | Rating from 1 to 5 stars | |
| reviewText | Yes | Written review describing your experience |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds context about prerequisites ('Requires being logged in') and the action's purpose, but does not detail other traits like rate limits, error handling, or what happens after submission. It adequately covers the basic operation but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and concise with two sentences that efficiently convey the tool's purpose and prerequisites. Every sentence earns its place without redundancy, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with no annotations and no output schema), the description is minimally complete. It covers the action and prerequisites but lacks details on return values, error cases, or side effects. It meets basic needs but leaves gaps for an AI agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description does not add any extra meaning beyond what the schema provides, such as explaining parameter interactions or usage nuances. Baseline score of 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Leave a review') and target resource ('for a sitter after a completed service'), distinguishing it from siblings like get_bookings or message_sitter. It precisely communicates the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying 'after a completed service' and 'Requires being logged in,' which helps determine when to use it. However, it does not explicitly mention when not to use it or name alternatives, such as whether there are other review-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
Log in to Rover with your email and password. Required before most operations.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Your Rover account email address | ||
| password | Yes | Your Rover account password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that login is required for most operations, implying session establishment, but lacks details on authentication method (e.g., token-based), session duration, error handling, or security considerations. It adds some context but misses key behavioral traits for an authentication tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and every sentence earns its place by stating the purpose and usage context. There is zero waste, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is minimal but covers the essential purpose and prerequisite nature. However, as an authentication tool with potential complexities (e.g., session management, errors), it lacks details on return values or behavioral nuances, making it adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (email and password) well-documented in the schema. The description mentions these parameters but doesn't add meaning beyond what the schema provides (e.g., format requirements or examples). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Log in') and the target system ('Rover'), specifying authentication with email and password. It distinguishes itself from siblings by being the only authentication tool, though it doesn't explicitly name alternatives. The purpose is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Required before most operations.' This provides clear context that it's a prerequisite for other tools, guiding the agent to invoke it early in workflows involving Rover operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message_sitterB
Send a message to a sitter on Rover. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
| sitterId | Yes | Sitter's Rover username/ID or profile URL | |
| message | Yes | Message text to send to the sitter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the login requirement, which is a useful behavioral constraint, but fails to disclose other critical traits like whether this is a read/write operation, potential rate limits, confirmation of message delivery, or error conditions. This leaves significant gaps for a tool that likely performs a write action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences, front-loading the core purpose and following with a key prerequisite. Every word earns its place with no redundancy or fluff, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a tool that likely performs a write operation (sending a message). It misses details like response format, error handling, side effects, or how it differs from sibling tools, leaving the agent with incomplete context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional parameter information beyond what's in the schema, such as format examples or constraints. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a message') and target ('to a sitter on Rover'), making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'get_messages' or 'request_booking' that might also involve messaging, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides one explicit usage condition ('Requires being logged in'), which is helpful context. However, it doesn't specify when to use this tool versus alternatives like 'request_booking' (which might include messaging) or 'get_messages', leaving usage guidance incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_bookingB
Send a booking request to a sitter. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
| sitterId | Yes | Sitter's Rover username/ID or profile URL | |
| serviceType | Yes | Type of service to book | |
| startDate | Yes | Start date in YYYY-MM-DD format | |
| endDate | Yes | End date in YYYY-MM-DD format | |
| petIds | Yes | List of pet IDs to include in the booking | |
| message | No | Optional introductory message to the sitter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions an authentication requirement ('Requires being logged in'), which is useful, but fails to describe other critical behaviors such as whether this is a read-only or destructive operation, what happens upon sending (e.g., confirmation, error handling), or any rate limits. This leaves significant gaps for a tool that likely performs a write action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just one sentence that efficiently states the purpose and a key requirement. It is front-loaded with the main action and wastes no words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a booking request tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., mutation effects, response format), does not explain return values or errors, and provides minimal usage context. This leaves the agent with inadequate information to handle the tool effectively in real-world scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the input schema. The description does not add any additional meaning or context beyond what the schema provides (e.g., it doesn't explain parameter interactions or usage nuances). According to the rules, with high schema coverage, the baseline score is 3, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a booking request') and target ('to a sitter'), which distinguishes it from siblings like 'message_sitter' or 'search_sitters'. However, it doesn't specify what constitutes a 'booking request' versus other interactions, leaving some ambiguity about the exact outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a prerequisite ('Requires being logged in'), which provides basic context for usage. However, it lacks explicit guidance on when to use this tool versus alternatives like 'message_sitter' or 'search_services', and does not mention any exclusions or specific scenarios for its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_servicesB
List all available Rover service types in a given location with descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Location to search for available services |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose details like pagination, rate limits, authentication needs, or error handling. For a tool with no annotations, this leaves significant behavioral gaps, scoring low due to insufficient disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('List all available Rover service types') and includes key details ('in a given location with descriptions'). There is no wasted text, and it's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally complete. It covers the basic purpose but lacks behavioral details and usage guidelines. Without annotations or output schema, it should provide more context on what the list returns and how to use it effectively, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'location' fully documented in the schema. The description adds minimal value by implying location-based filtering but doesn't provide additional context like format examples or constraints beyond the schema. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'Rover service types', specifying the scope 'in a given location with descriptions'. It distinguishes from siblings like 'search_sitters' by focusing on service types rather than sitters. However, it doesn't explicitly contrast with other list-like tools such as 'get_bookings' or 'get_favorites', keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare with sibling tools like 'search_sitters' for finding sitters versus services. The context is implied through the tool name and description but lacks explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sittersB
Search for pet sitters on Rover by location and service type. Returns a list of available sitters with ratings and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, neighborhood, or zip code to search in (e.g. 'Seattle, WA' or '98101') | |
| serviceType | Yes | Type of pet care service | |
| startDate | No | Start date in YYYY-MM-DD format | |
| endDate | No | End date in YYYY-MM-DD format | |
| petCount | No | Number of pets | |
| petSize | No | Size of your pet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the return format ('list of available sitters with ratings and pricing') but lacks critical details such as whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior, or error handling for invalid inputs. This is inadequate for a search tool with 6 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's purpose and output without redundancy. It is front-loaded with the core action ('Search for pet sitters') and avoids unnecessary details, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, no output schema, no annotations), the description is incomplete. It adequately states the purpose but lacks usage guidelines, behavioral context (e.g., read-only nature, error cases), and output details beyond a high-level summary. The schema compensates for parameter documentation, but overall completeness is limited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, providing clear documentation for all 6 parameters (e.g., location format, serviceType enums, date formats). The description adds minimal value beyond the schema by implying that location and serviceType are key filters, but it doesn't explain parameter interactions or constraints (e.g., how dates affect availability). Baseline 3 is appropriate given the comprehensive schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Search for pet sitters'), resource ('on Rover'), and scope ('by location and service type'), with a distinct purpose from sibling tools like 'search_services' (which likely searches for services rather than sitters) and 'get_sitter_profile' (which retrieves a specific sitter's details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_services' or 'get_sitter_profile', nor does it mention prerequisites (e.g., whether authentication is required) or exclusions (e.g., what happens if no sitters are found). It only states what the tool does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pet_profileC
Update an existing pet's profile details such as size, temperament, and special needs.
| Name | Required | Description | Default |
|---|---|---|---|
| petId | Yes | The pet's ID on Rover | |
| name | No | Updated pet name | |
| breed | No | Updated breed | |
| age | No | Updated age in years | |
| weight | No | Updated weight in pounds | |
| size | No | Updated size category | |
| temperament | No | Updated temperament description | |
| specialNeeds | No | Updated special needs or care notes | |
| vaccinated | No | Updated vaccination status | |
| spayedNeutered | No | Updated spayed/neutered status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Update' implies a mutation operation, the description doesn't disclose important behavioral traits like what permissions are required, whether changes are reversible, what happens to unspecified fields, error conditions, or rate limits. It mentions what can be updated but not the behavioral implications of the update operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the tool's purpose with zero wasted words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 10 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address important contextual aspects like authentication requirements, error handling, what the tool returns, or how partial updates work. The description covers basic purpose but leaves critical operational details unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions specific parameters (size, temperament, special needs) that align with the input schema, but with 100% schema description coverage, the schema already documents all 10 parameters thoroughly. The description adds minimal value beyond what's in the schema - it provides examples but no additional semantic context about parameter usage, constraints, or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('pet's profile details') with specific examples of fields that can be updated (size, temperament, special needs). It distinguishes this from 'add_pet_profile' which would create a new profile rather than update an existing one. However, it doesn't explicitly mention that this updates an existing pet profile versus other types of updates in the system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'add_pet_profile' for creating new profiles or other tools for related operations. There's no mention of prerequisites, constraints, or typical usage scenarios beyond the basic purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.0.0- First observed
add_pet_profile - First observed
get_bookings - First observed
get_favorites - First observed
get_messages - First observed
get_pets - First observed
get_sitter_profile - First observed
leave_review - First observed
login - First observed
message_sitter - First observed
request_booking - First observed
search_services - First observed
search_sitters - First observed
update_pet_profile
TDQS
Every tool has a clearly distinct purpose targeting specific Rover operations like pet management, bookings, messaging, searching, and reviews. No tools overlap in functionality, making it easy for an agent to select the correct one without confusion.
All tool names follow a consistent verb_noun pattern (e.g., add_pet_profile, get_bookings, search_sitters). The naming is uniform across all 13 tools, using snake_case and clear action verbs, which aids predictability and readability.
With 13 tools, the server is well-scoped for managing a Rover account, covering essential operations from login to bookings, messaging, and pet profiles. Each tool serves a distinct and necessary function, avoiding bloat while providing comprehensive coverage.
The tool set offers strong coverage of Rover's core user workflows, including CRUD for pets, bookings, messaging, and reviews. A minor gap exists in not having tools for updating or canceling bookings, which agents might need to work around, but overall the surface is nearly complete for the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to automate web browsers through Playwright, providing capabilities for navigation, content extraction, form filling, screenshot capture, and JavaScript execution. Supports multiple browser engines with comprehensive error handling and security features.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control web browsers through Playwright automation, providing 50+ tools for navigation, interaction, testing, accessibility audits, and visual testing across Chromium, Firefox, and WebKit.15MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control a web browser using Playwright, supporting navigation, interaction, and data extraction through natural language.MIT
- FlicenseNot gradedqualityDmaintenanceProvides browser automation capabilities for AI assistants, enabling web navigation, form filling, and data extraction through Playwright.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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