Skip to main content
Glama

InstaBids

This connector has been deprecated

Duplicate listing. The current InstaBids connector is https://glama.ai/mcp/connectors/ai.instabids/instabids

Start a draft job

start_job

Use this when a homeowner wants contractor bids on a home repair or improvement job in the US. Creates a private draft from their description and five-digit ZIP and returns a one-hour link for the homeowner to open. Nothing reaches a contractor until the homeowner confirms their email and sends it. Do not include names, phone numbers, emails or street addresses. Do not use for emergencies. Ask the homeowner, one short question at a time and only for what is missing, what needs doing, where in the home, rough size or count, when it is needed and who supplies materials, then put the answers in the message. 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. fill what you can; everything else can come later. Start with the homeowner’s description, trade and ZIP, plus a photo or a good description. Optional: photos, a description or transcript of a 20–60 s walk clip, timing and the job type’s must-haves from intake_templates. Never invent answers. ZIP only; never send a street address or a price. Nothing reaches contractors before the homeowner sends the card.

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": {
      "message": "<message>",
      "zip": "<zip>",
      "trade": "<trade>"
    },
    "name": "start_job"
  }
}

Input Schema

NameRequiredDescriptionDefault
zipYes
tradeYesJob trade; generic home repair is allowed.
messageYes
photoUrlsNoOptional photos; attachment still requires the existing scan and photo permissions.
quotes_byNoISO date, or null for no deadline; never a price.
walk_clipNoDescription or transcript of a 20–60 s walk clip. This tool does not upload video bytes or fetch video URLs.
must_havesNoKnown answers to this job type’s intake_templates must-haves; unknown answers can come later.
intent_levelNo10 emergency; 8 soon; 6 planned; 4 if the price is right; 2 someday. Use only evidence from the homeowner.
deadline_hardNo
deadline_reasonNoOptional reason for the date, without names or contact details.
idempotency_keyNo
intent_confidenceNo
project_completion_deadlineNoISO date, or null for no deadline; never a price.

Output Schema

NameRequiredDescriptionDefault
cardNoSaved in-chat card, present only when available.
statusYes
messageYes
claimUrlYes
replayedNo
expiresAtYes
understoodNo
photosAddedNo
statusHandleNoRead handle for job_status, present only when available.
photosRefusedNo
cardUnavailableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "maxLength": 128,
      +  "minLength": 8,
      +  "type": "string"
      +}
    • addedOutput schema / properties / replayed
      Added value: +{
      +  "const": true,
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • removedOutput schema / properties / sendUrl
      Removed value: -{
      -  "format": "uri",
      -  "type": "string"
      -}
  3. Changed15 schema fields changed
    • addedInput schema / properties / deadline_hard
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / deadline_reason
      Added value: +{
      +  "description": "Optional reason for the date, without names or contact details.",
      +  "maxLength": 300,
      +  "type": "string"
      +}
    • addedInput schema / properties / intent_confidence
      Added value: +{
      +  "enum": [
      +    "low",
      +    "med",
      +    "high"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / intent_level
      Added value: +{
      +  "description": "10 emergency; 8 soon; 6 planned; 4 if the price is right; 2 someday. Use only evidence from the homeowner.",
      +  "enum": [
      +    2,
      +    4,
      +    6,
      +    8,
      +    10
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / must_haves
      Added value: +{
      +  "description": "Known answers to this job type’s intake_templates must-haves; unknown answers can come later.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "answer": {
      +        "maxLength": 300,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "key": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "answer"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / photoUrls
      Added value: +{
      +  "description": "Optional photos; attachment still requires the existing scan and photo permissions.",
      +  "items": {
      +    "maxLength": 2048,
      +    "pattern": "^https://",
      +    "type": "string"
      +  },
      +  "maxItems": 5,
      +  "type": "array"
      +}
    • addedInput schema / properties / project_completion_deadline
      Added value: +{
      +  "description": "ISO date, or null for no deadline; never a price.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / quotes_by
      Added value: +{
      +  "description": "ISO date, or null for no deadline; never a price.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / trade
      Added value: +{
      +  "description": "Job trade; generic home repair is allowed.",
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / walk_clip
      Added value: +{
      +  "description": "Description or transcript of a 20–60 s walk clip. This tool does not upload video bytes or fetch video URLs.",
      +  "maxLength": 1000,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "message",
      -  "zip"
      -]New value: +[
      +  "message",
      +  "zip",
      +  "trade"
      +]
    • addedOutput schema / properties / cardUnavailable
      Added value: +{
      +  "const": true,
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / photosAdded
      Added value: +{
      +  "maximum": 5,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / photosRefused
      Added value: +{
      +  "maximum": 5,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / understood
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "missingMustHaves": {
      +      "items": {
      +        "pattern": "^gap_[a-f0-9]{16}$",
      +        "type": "string"
      +      },
      +      "maxItems": 100,
      +      "type": "array"
      +    },
      +    "nextQuestion": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "author": {
      +          "const": "assistant",
      +          "type": "string"
      +        },
      +        "instructionFlags": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "text": {
      +          "maxLength": 600,
      +          "type": "string"
      +        },
      +        "untrusted": {
      +          "const": true,
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "untrusted",
      +        "author",
      +        "text",
      +        "instructionFlags"
      +      ],
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "scopeSummary": {
      +      "maxLength": 600,
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "trade": {
      +      "maxLength": 600,
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "trade",
      +    "scopeSummary",
      +    "missingMustHaves",
      +    "nextQuestion"
      +  ],
      +  "type": "object"
      +}
  4. Changed2 schema fields changed
    • addedOutput schema / properties / card / description
      Added value: +"Saved in-chat card, present only when available."
    • addedOutput schema / properties / statusHandle / description
      Added value: +"Read handle for job_status, present only when available."
  5. Changed1 schema field changed
    • addedOutput schema / properties / sendUrl
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • addedOutput schema / properties / statusHandle
      Added value: +{
      +  "pattern": "^[A-Za-z0-9_-]{43}$",
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the draft privacy model, the one-hour link, email confirmation gating, and the rule that nothing reaches contractors until the homeowner sends it. It also adds important constraints against PII, street addresses, prices, and emergency use.

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 description is front-loaded with the main purpose, but it becomes long and mixes workflow instructions, privacy rules, conversational guidance, and parameter hints. It repeats the contractor-visibility rule twice and contains minor fragments, so it is useful but not tightly structured.

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?

Given the output schema, annotations, and 62% schema description coverage, the description supplies the critical behavioral and workflow context needed to call the tool correctly. The main remaining gap is that idempotency and some scoring/enum parameters are not explained in the description.

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?

The description adds meaningful semantics for core parameters: the message should capture what needs doing, where, size/count, timing, and material responsibility, while ZIP must be five digits only and trade is required. It covers photos, walk clips, timing, and must-haves, but does not explain several optional parameters such as idempotency_key, intent_confidence, or deadline_hard.

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 a specific verb and resource: it creates a private draft job for homeowner contractor bids from a description and ZIP. It also distinguishes the new-job workflow from answer_intake and prepare_publish, so an agent can identify the tool's role without opening the schema.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance, a clear exclusion for emergencies, and the required call sequence: start_job before answer_intake, then prepare_publish. It further tells the agent to ask one short question at a time and to read the previous reply before other writes.

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