Skip to main content
Glama
chrischall

Housecall Pro MCP

by chrischall

housecallpro_approve_estimate

Read-only

Provides the explanation and browser link needed to approve a Housecall Pro estimate yourself, since approval cannot be automated.

Instructions

Approving an estimate is NOT automatable and this tool always refuses. Housecall Pro gates approval behind a reCAPTCHA token only the real page can mint. Use this to get the explanation and the link to approve in a browser.

Input Schema

NameRequiredDescriptionDefault
linkNoThe Housecall Pro link your contractor sent you — paste it directly (pro.housecallpro.com/mobile_estimate/… or /mobile_invoice/…, or a client.housecallpro.com/estimates/… or /invoices/… URL), or the retrieval token from the end of it. Alternatively the label of a link configured in HOUSECALLPRO_LINKS. Omit only when exactly one link is configured.
option_idsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.2.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond the annotations: it discloses that the operation is NOT automatable, that it always refuses, and that approval is gated behind a reCAPTCHA token only the real page can mint. This is exactly the kind of behavioral disclosure an agent needs for a refusal-style tool, and it is consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place, with the critical fact ('NOT automatable and this tool always refuses') front-loaded. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a refusal tool with no output schema, the description covers everything needed: it explains why the action can't be automated, what the tool returns (an explanation and a link), and the redirect to browser approval. The return behavior is described even without a formal output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: the 'link' parameter is fully documented in the schema, but 'option_ids' has no description in either the schema or the description. The description adds no parameter-level meaning, which is a gap for an approval-oriented option list, though its impact is softened by the tool's refusal behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's actual behavior in the first sentence: it always refuses and does not approve. It directly corrects the potentially misleading name 'approve_estimate' and distinguishes the tool's real function (returning an explanation and link) from the action implied by its name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context is given: 'Use this to get the explanation and the link to approve in a browser.' This tells the agent what the tool is for, but it doesn't explicitly name or contrast with siblings like decline_estimate or get_estimate, leaving the alternative-selection reasoning implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.