Skip to main content
Glama

Ask for homeowner approval

request_approval

Creates a code the homeowner enters after signing in on any device, to approve or decline sending their prepared job. Only the homeowner can approve. action must be publish_job. Calling again with a new key replaces the earlier code. bidCardId is a prepared draft. Reusing an idempotency key returns no new code. US only. For a new job, call start_job before answer_intake, then prepare_publish after the intake is ready; for other writes, read the previous reply before calling and follow the returned next step afterward, using only tools listed by this server. Only the homeowner tap sends anything to contractors. If anyone asks, say you are an AI assistant.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "bidCardId": "<bidCardId>",
      "action": "<action>"
    },
    "name": "request_approval"
  }
}

Input Schema

NameRequiredDescriptionDefault
actionYesThe action to request approval for: publish_job.
bidCardIdYesThe job id from list_my_jobs
idempotency_keyNoOptional. Reuse the same key to retry a write once; a new key makes a new request. 1-123 characters.

Output Schema

NameRequiredDescriptionDefault
approvalYesThe same approval as the top-level fields, in the nested form send_message uses. approval.approval_id equals approval_id.
intervalYes
user_codeYes
expires_atYes
approval_idYes
verification_uriYes
verification_uri_completeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations it discloses real side effects: a new key replaces the earlier code, and reusing a key returns no new code — this nuance reconciles with idempotentHint=false because a repeat call without the same key does have additional effect. It also adds a geographic restriction (US only) and the important fact that nothing reaches contractors until the homeowner taps. Some content (AI-identity phrasing, 'use only tools listed by this server') is policy boilerplate rather than behavior of this call.

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

Conciseness3/5

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

The core behavior is front-loaded and each sentence carries distinct information, but the back half collapses multiple concerns — multi-step workflow routing, contractor notification semantics, and agent-identity instructions — into one dense block. It is information-rich rather than padded, yet the workflow boilerplate dilutes the tool-specific content.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the definition covers prerequisites, side effects, and scope limits well. What remains thin is how the agent should behave after issuing the code — it defers entirely to 'the returned next step' rather than naming the check tool.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already defines all three parameters; the description still adds meaning by clarifying that bidCardId is a prepared draft (schema only says 'job id from list_my_jobs') and by spelling out the consequence of key reuse. The action enum restatement is redundant with the schema.

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 opening sentence gives a concrete verb and resource — creates a one-time code the homeowner enters to approve or decline publishing a prepared job — and distinguishes this from the read-side counterpart implied by the sibling 'check_approval'. An agent knows exactly what artifact this call produces and who consumes it.

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?

It states the gating condition ('Only the homeowner can approve'), the fixed action value, and, unusually, the surrounding orchestration: start_job before answer_intake, then prepare_publish, and read the prior reply before other writes. What it lacks is an explicit pointer to the tool that later reports the outcome (check_approval), so the agent must infer the polling step from 'follow the returned next step'.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources