Skip to main content
Glama

TempGuru Event Staffing

Request Quote

request_quote
Read-onlyIdempotent

Use only after the buyer reviews a staffing plan and asks to proceed. Requires the saved non-PII plan_id from plan_staffing or save_staffing_plan and returns a prefilled TempGuru-owned review form. This tool never accepts or transmits names, email, phone, company, or other contact details and never creates a CRM lead or quote reference. The buyer must open form_url, review the plan, enter their own details, and submit it; only that submission creates a lead. This is not a reservation and does not guarantee pricing or availability. If a complete plan has continuation.form_url but no plan_id, give that URL directly instead. Never collect contact details for an MCP call; re-run an expired plan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plan_idYesSaved non-PII plan reference returned by plan_staffing or save_staffing_plan.
skill_idNoOptional canonical TempGuru skill that assembled the plan.
skill_versionNoOptional version of the TempGuru staffing skill used.
source_platformNoOptional agent/platform attribution, e.g. claude-ai, openclaw, or hermes.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYesHuman-readable outcome to relay to the buyer.
plan_idYes
form_urlNoPrefilled TempGuru-owned review form. Present only when handoff_ready is true.
next_stepsYesSafe next actions; no agent-side contact collection.
plan_foundYesWhether the supplied non-PII plan_id resolved before expiry.
handoff_readyYestrue when the saved plan resolved and a prefilled buyer form URL was created.
buyer_submission_requiredYesAlways true. The buyer, not the agent, must enter contact details and submit the form.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / source_platform / enum
      Previous value: -[
      -  "ai-agent",
      -  "ai-page",
      -  "ai-page-zh",
      -  "baidu-agent",
      -  "chatgpt-app",
      -  "chatgpt-gpt",
      -  "claude-ai",
      -  "claude-code",
      -  "claude-desktop",
      -  "cn-agent",
      -  "copilot-agent",
      -  "coze",
      -  "coze-bot",
      -  "custom-gpt",
      -  "gemini",
      -  "gemini-cli",
      -  "gemini-gem",
      -  "hermes",
      -  "kimi",
      -  "langchain",
      -  "lechat-agent",
      -  "llamaindex",
      -  "manual-test",
      -  "meta-ai",
      -  "mcp-handoff",
      -  "open-webui",
      -  "openai-codex",
      -  "openclaw",
      -  "perplexity-space",
      -  "pi",
      -  "poe-bot",
      -  "postman",
      -  "python-client",
      -  "skill",
      -  "team-demo",
      -  "website",
      -  "website-widget",
      -  "zhipu-agent",
      -  "openai-chatgpt",
      -  "openai-agents-sdk",
      -  "openai-mcp",
      -  "cursor",
      -  "cline",
      -  "windsurf",
      -  "perplexity",
      -  "qwen-ecosystem",
      -  "deepseek",
      -  "doubao",
      -  "mcp-client"
      -]New value: +[
      +  "ai-agent",
      +  "ai-page",
      +  "ai-page-zh",
      +  "baidu-agent",
      +  "chatgpt-app",
      +  "chatgpt-gpt",
      +  "claude-ai",
      +  "claude-code",
      +  "claude-desktop",
      +  "cn-agent",
      +  "copilot-agent",
      +  "coze",
      +  "coze-bot",
      +  "custom-gpt",
      +  "gemini",
      +  "gemini-cli",
      +  "gemini-gem",
      +  "hermes",
      +  "kimi",
      +  "langchain",
      +  "lechat-agent",
      +  "llamaindex",
      +  "manual-test",
      +  "meta-ai",
      +  "mcp-handoff",
      +  "open-webui",
      +  "openai-codex",
      +  "openclaw",
      +  "perplexity-space",
      +  "pi",
      +  "poe-bot",
      +  "postman",
      +  "prime-agent",
      +  "python-client",
      +  "skill",
      +  "team-demo",
      +  "website",
      +  "website-widget",
      +  "zhipu-agent",
      +  "openai-chatgpt",
      +  "openai-agents-sdk",
      +  "openai-mcp",
      +  "cursor",
      +  "cline",
      +  "windsurf",
      +  "perplexity",
      +  "qwen-ecosystem",
      +  "deepseek",
      +  "doubao",
      +  "mcp-client"
      +]
  2. Changed3 schema fields changed
    • addedInput schema / properties / source_platform / enum
      Added value: +[
      +  "ai-agent",
      +  "ai-page",
      +  "ai-page-zh",
      +  "baidu-agent",
      +  "chatgpt-app",
      +  "chatgpt-gpt",
      +  "claude-ai",
      +  "claude-code",
      +  "claude-desktop",
      +  "cn-agent",
      +  "copilot-agent",
      +  "coze",
      +  "coze-bot",
      +  "custom-gpt",
      +  "gemini",
      +  "gemini-cli",
      +  "gemini-gem",
      +  "hermes",
      +  "kimi",
      +  "langchain",
      +  "lechat-agent",
      +  "llamaindex",
      +  "manual-test",
      +  "meta-ai",
      +  "mcp-handoff",
      +  "open-webui",
      +  "openai-codex",
      +  "openclaw",
      +  "perplexity-space",
      +  "pi",
      +  "poe-bot",
      +  "postman",
      +  "python-client",
      +  "skill",
      +  "team-demo",
      +  "website",
      +  "website-widget",
      +  "zhipu-agent",
      +  "openai-chatgpt",
      +  "openai-agents-sdk",
      +  "openai-mcp",
      +  "cursor",
      +  "cline",
      +  "windsurf",
      +  "perplexity",
      +  "qwen-ecosystem",
      +  "deepseek",
      +  "doubao",
      +  "mcp-client"
      +]
    • removedInput schema / properties / source_platform / maxLength
      Removed value: -80
    • removedInput schema / properties / source_platform / minLength
      Removed value: -1
  3. Changed36 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / attendees
      Removed value: -{
      -  "description": "Expected event attendance, if known (informs coverage ratios)",
      -  "exclusiveMinimum": 0,
      -  "maximum": 5000000,
      -  "type": "integer"
      -}
    • removedInput schema / properties / attire
      Removed value: -{
      -  "description": "Staff attire requirements",
      -  "maxLength": 500,
      -  "type": "string"
      -}
    • removedInput schema / properties / budget_range
      Removed value: -{
      -  "description": "Estimated total budget range if calculated, e.g. '$8,400–$12,600'",
      -  "maxLength": 120,
      -  "type": "string"
      -}
    • removedInput schema / properties / city
      Removed value: -{
      -  "description": "City where the event is held",
      -  "maxLength": 120,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / company
      Removed value: -{
      -  "description": "Company or organization name",
      -  "maxLength": 160,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / compliance_notes
      Removed value: -{
      -  "description": "Any compliance flags surfaced by get_compliance_by_state",
      -  "maxLength": 2000,
      -  "type": "string"
      -}
    • removedInput schema / properties / contact_email
      Removed value: -{
      -  "description": "Contact email address for the quote response",
      -  "format": "email",
      -  "maxLength": 254,
      -  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -  "type": "string"
      -}
    • removedInput schema / properties / contact_name
      Removed value: -{
      -  "description": "Full name of the contact person",
      -  "maxLength": 120,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / contact_phone
      Removed value: -{
      -  "description": "Optional phone number for the coordinator to reach the buyer (event ops is phone-first; include when known)",
      -  "maxLength": 40,
      -  "type": "string"
      -}
    • removedInput schema / properties / event_dates
      Removed value: -{
      -  "description": "Event dates as a human-readable string, e.g. 'June 15–17, 2026'",
      -  "maxLength": 160,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / event_name
      Removed value: -{
      -  "description": "Name of the event (e.g. 'HIMSS 2026', 'Brand Fest Austin')",
      -  "maxLength": 200,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / event_type
      Removed value: -{
      -  "description": "Event type: trade-show, conference, festival, concert, sporting-event, corporate, brand-activation, or other",
      -  "maxLength": 80,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / locations
      Removed value: -{
      -  "description": "Additional cities for a multi-city / tour program. The top-level city, dates, and roles describe the primary or first location; each entry here adds another.",
      -  "items": {
      -    "properties": {
      -      "city": {
      -        "description": "City for this leg of a multi-city program",
      -        "maxLength": 120,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "event_dates": {
      -        "description": "Dates for this location, if they differ from the top-level dates",
      -        "maxLength": 160,
      -        "type": "string"
      -      },
      -      "roles": {
      -        "description": "Roles for this location if they differ from the top-level roles",
      -        "items": {
      -          "properties": {
      -            "headcount": {
      -              "description": "Number of staff needed at this location",
      -              "exclusiveMinimum": 0,
      -              "maximum": 10000,
      -              "type": "integer"
      -            },
      -            "role": {
      -              "description": "Staffing role name",
      -              "maxLength": 80,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "shifts": {
      -              "description": "Shift description for this location",
      -              "maxLength": 160,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "role",
      -            "headcount"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 50,
      -        "type": "array"
      -      },
      -      "venue": {
      -        "description": "Venue for this location, if known",
      -        "maxLength": 200,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "city"
      -    ],
      -    "type": "object"
      -  },
      -  "maxItems": 50,
      -  "type": "array"
      -}
    • changedInput schema / properties / plan_id / description
      Previous value: -"Optional plan_id returned by plan_staffing or save_staffing_plan; links the submitted quote to its saved non-PII plan"New value: +"Saved non-PII plan reference returned by plan_staffing or save_staffing_plan."
    • removedInput schema / properties / roles
      Removed value: -{
      -  "description": "Roles and headcount needed for the event",
      -  "items": {
      -    "properties": {
      -      "headcount": {
      -        "description": "Number of staff needed",
      -        "exclusiveMinimum": 0,
      -        "maximum": 10000,
      -        "type": "integer"
      -      },
      -      "role": {
      -        "description": "Staffing role name, e.g. brand-ambassadors, registration-staff",
      -        "maxLength": 80,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "shifts": {
      -        "description": "Shift description, e.g. '2 days × 8h'",
      -        "maxLength": 160,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "role",
      -      "headcount"
      -    ],
      -    "type": "object"
      -  },
      -  "maxItems": 50,
      -  "minItems": 1,
      -  "type": "array"
      -}
    • changedInput schema / properties / skill_id / description
      Previous value: -"Optional canonical TempGuru skill slug that assembled this request"New value: +"Optional canonical TempGuru skill that assembled the plan."
    • changedInput schema / properties / skill_version / description
      Previous value: -"Optional version of the TempGuru staffing skill used to assemble this request"New value: +"Optional version of the TempGuru staffing skill used."
    • addedInput schema / properties / skill_version / pattern
      Added value: +"^[0-9]{1,4}\\.[0-9]{1,4}\\.[0-9]{1,4}(?:-[0-9A-Za-z.-]{1,24})?(?:\\+[0-9A-Za-z.-]{1,24})?$"
    • changedInput schema / properties / source_platform / description
      Previous value: -"Optional agent/platform attribution, e.g. chatgpt-gpt, claude-desktop, coze"New value: +"Optional agent/platform attribution, e.g. claude-ai, openclaw, or hermes."
    • removedInput schema / properties / special_requirements
      Removed value: -{
      -  "description": "Any special requirements: language skills, certifications, overnight shifts, etc.",
      -  "maxLength": 2000,
      -  "type": "string"
      -}
    • removedInput schema / properties / venue
      Removed value: -{
      -  "description": "Primary venue name and/or address, when known",
      -  "maxLength": 200,
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "contact_name",
      -  "contact_email",
      -  "company",
      -  "event_name",
      -  "event_type",
      -  "city",
      -  "event_dates",
      -  "roles"
      -]New value: +[
      +  "plan_id"
      +]
    • addedOutput schema / properties / buyer_submission_required
      Added value: +{
      +  "const": true,
      +  "description": "Always true. The buyer, not the agent, must enter contact details and submit the form.",
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / deal_name
      Removed value: -{
      -  "description": "CRM deal name, present when submitted.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / error
      Removed value: -{
      -  "description": "Present when submission failed.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / form_url
      Added value: +{
      +  "description": "Prefilled TempGuru-owned review form. Present only when handoff_ready is true.",
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / handoff_ready
      Added value: +{
      +  "description": "true when the saved plan resolved and a prefilled buyer form URL was created.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / message / description
      Previous value: -"Human-readable outcome to relay to the user."New value: +"Human-readable outcome to relay to the buyer."
    • changedOutput schema / properties / next_steps / description
      Previous value: -"Present when submitted."New value: +"Safe next actions; no agent-side contact collection."
    • addedOutput schema / properties / plan_found
      Added value: +{
      +  "description": "Whether the supplied non-PII plan_id resolved before expiry.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / plan_id
      Added value: +{
      +  "pattern": "^[A-HJ-NP-Z2-9]{12}$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / plan_linked
      Removed value: -{
      -  "description": "true when the supplied plan_id resolved and its saved snapshot was attached to the lead.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / reference
      Removed value: -{
      -  "description": "Short reference code the buyer can quote when following up.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / submitted
      Removed value: -{
      -  "description": "true = lead created in TempGuru's CRM (or durably queued); false = submission failed (see error).",
      -  "type": "boolean"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "submitted",
      -  "message"
      -]New value: +[
      +  "handoff_ready",
      +  "buyer_submission_required",
      +  "plan_found",
      +  "plan_id",
      +  "message",
      +  "next_steps"
      +]
  4. Changed3 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / plan_id / description
      Previous value: -"Optional plan_id returned by plan_staffing; links the submitted quote to its saved non-PII plan"New value: +"Optional plan_id returned by plan_staffing or save_staffing_plan; links the submitted quote to its saved non-PII plan"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  5. Changed4 schema fields changed
    • addedInput schema / properties / attendees
      Added value: +{
      +  "description": "Expected event attendance, if known (informs coverage ratios)",
      +  "exclusiveMinimum": 0,
      +  "maximum": 5000000,
      +  "type": "integer"
      +}
    • addedInput schema / properties / locations
      Added value: +{
      +  "description": "Additional cities for a multi-city / tour program. The top-level city, dates, and roles describe the primary or first location; each entry here adds another.",
      +  "items": {
      +    "properties": {
      +      "city": {
      +        "description": "City for this leg of a multi-city program",
      +        "maxLength": 120,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "event_dates": {
      +        "description": "Dates for this location, if they differ from the top-level dates",
      +        "maxLength": 160,
      +        "type": "string"
      +      },
      +      "roles": {
      +        "description": "Roles for this location if they differ from the top-level roles",
      +        "items": {
      +          "properties": {
      +            "headcount": {
      +              "description": "Number of staff needed at this location",
      +              "exclusiveMinimum": 0,
      +              "maximum": 10000,
      +              "type": "integer"
      +            },
      +            "role": {
      +              "description": "Staffing role name",
      +              "maxLength": 80,
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "shifts": {
      +              "description": "Shift description for this location",
      +              "maxLength": 160,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "role",
      +            "headcount"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 50,
      +        "type": "array"
      +      },
      +      "venue": {
      +        "description": "Venue for this location, if known",
      +        "maxLength": 200,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "city"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • changedInput schema / properties / skill_id / enum
      Previous value: -[
      -  "event-staffing-ordering",
      -  "event-staffing-compliance",
      -  "staffing-plan-from-event-brief",
      -  "urgent-event-backfill",
      -  "staffing-agency-partner-growth"
      -]New value: +[
      +  "event-staffing-ordering",
      +  "event-staffing-compliance",
      +  "staffing-plan-from-event-brief",
      +  "urgent-event-backfill",
      +  "staffing-agency-partner-growth",
      +  "multi-city-activation-planner",
      +  "event-staffing-procurement",
      +  "tempguru-pro-operations"
      +]
    • addedInput schema / properties / venue
      Added value: +{
      +  "description": "Primary venue name and/or address, when known",
      +  "maxLength": 200,
      +  "type": "string"
      +}
  6. Changed5 schema fields changed
    • addedInput schema / properties / plan_id
      Added value: +{
      +  "description": "Optional plan_id returned by plan_staffing; links the submitted quote to its saved non-PII plan",
      +  "maxLength": 12,
      +  "pattern": "^[A-HJ-NP-Z2-9]{12}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / skill_id
      Added value: +{
      +  "description": "Optional canonical TempGuru skill slug that assembled this request",
      +  "enum": [
      +    "event-staffing-ordering",
      +    "event-staffing-compliance",
      +    "staffing-plan-from-event-brief",
      +    "urgent-event-backfill",
      +    "staffing-agency-partner-growth"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / skill_version
      Added value: +{
      +  "description": "Optional version of the TempGuru staffing skill used to assemble this request",
      +  "maxLength": 40,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / source_platform
      Added value: +{
      +  "description": "Optional agent/platform attribution, e.g. chatgpt-gpt, claude-desktop, coze",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / plan_linked
      Added value: +{
      +  "description": "true when the supplied plan_id resolved and its saved snapshot was attached to the lead.",
      +  "type": "boolean"
      +}
  7. Changed16 schema fields changed
    • addedInput schema / properties / attire / maxLength
      Added value: +500
    • addedInput schema / properties / budget_range / maxLength
      Added value: +120
    • addedInput schema / properties / city / maxLength
      Added value: +120
    • addedInput schema / properties / company / maxLength
      Added value: +160
    • addedInput schema / properties / compliance_notes / maxLength
      Added value: +2000
    • addedInput schema / properties / contact_email / maxLength
      Added value: +254
    • addedInput schema / properties / contact_name / maxLength
      Added value: +120
    • addedInput schema / properties / contact_phone / maxLength
      Added value: +40
    • addedInput schema / properties / event_dates / maxLength
      Added value: +160
    • addedInput schema / properties / event_name / maxLength
      Added value: +200
    • addedInput schema / properties / event_type / maxLength
      Added value: +80
    • changedInput schema / properties / roles / items / properties / headcount / maximum
      Previous value: -9007199254740991New value: +10000
    • addedInput schema / properties / roles / items / properties / role / maxLength
      Added value: +80
    • addedInput schema / properties / roles / items / properties / shifts / maxLength
      Added value: +160
    • addedInput schema / properties / roles / maxItems
      Added value: +50
    • addedInput schema / properties / special_requirements / maxLength
      Added value: +2000
  8. Changed3 schema fields changed
    • addedInput schema / properties / contact_phone
      Added value: +{
      +  "description": "Optional phone number for the coordinator to reach the buyer (event ops is phone-first; include when known)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / reference
      Added value: +{
      +  "description": "Short reference code the buyer can quote when following up.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / submitted / description
      Previous value: -"true = lead created in TempGuru's CRM; false = submission failed (see error)."New value: +"true = lead created in TempGuru's CRM (or durably queued); false = submission failed (see error)."
  9. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "deal_name": {
      +      "description": "CRM deal name, present when submitted.",
      +      "type": "string"
      +    },
      +    "error": {
      +      "description": "Present when submission failed.",
      +      "type": "string"
      +    },
      +    "message": {
      +      "description": "Human-readable outcome to relay to the user.",
      +      "type": "string"
      +    },
      +    "next_steps": {
      +      "description": "Present when submitted.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "submitted": {
      +      "description": "true = lead created in TempGuru's CRM; false = submission failed (see error).",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "submitted",
      +    "message"
      +  ],
      +  "type": "object"
      +}
  10. Changed8 schema fields changed
    • addedInput schema / properties / city / minLength
      Added value: +1
    • addedInput schema / properties / company / minLength
      Added value: +1
    • addedInput schema / properties / contact_name / minLength
      Added value: +1
    • addedInput schema / properties / event_dates / minLength
      Added value: +1
    • addedInput schema / properties / event_name / minLength
      Added value: +1
    • addedInput schema / properties / event_type / minLength
      Added value: +1
    • addedInput schema / properties / roles / items / properties / role / minLength
      Added value: +1
    • addedInput schema / properties / roles / minItems
      Added value: +1
  11. Added

TDQS

A4.6/5.0
Behavior5/5

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

The annotations already carry readOnlyHint, idempotentHint, and destructiveHint, but the description adds meaningful non-obvious behavior: it never transmits contact information, never creates a lead itself, requires the buyer to open and submit the form, and does not reserve or guarantee pricing/availability. There is no contradiction with the annotation object.

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

Conciseness4/5

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

The description is dense but front-loaded with the trigger condition and key requirement. It is arguably a little long and contains a couple of repeated privacy-related caveats, but each sentence carries a meaningful operational or safety instruction for an agent.

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?

Given the schema covers all parameters, an output schema exists, and annotations cover the read-only behavior, the description supplies what is left: preconditions, fallback behavior, expiration handling, and the PII boundary. The tool is fully covered from the perspective of an agent deciding whether and how to invoke it.

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 description coverage is 100%, so the baseline applies. The description does reinforce that plan_id must be a saved non-PII plan reference from plan_staffing or save_staffing_plan, but it adds no new meaning for skill_id, skill_version, or source_platform beyond what the schema already documents.

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 names a specific verb and resource: after a buyer asks to proceed, return a TempGuru-owned pre-filled review form for a saved plan_id. It explicitly states the tool does not create a quote reference or CRM lead, which clearly distinguishes its purpose from quote-status or lead-creation tools.

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 an explicit trigger condition, required input source, and the buyer's required follow-up action. It also gives concrete when-not guidance by saying to give continuation.form_url directly when no plan_id exists, to never collect contact details, and to re-run an expired plan.

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.