Skip to main content
Glama

AI Headshot Generator

ai_headshot_generator_create_image

MCP guidance:

  • Starts an async image job; returns id and credits_charged. For finished results, call wait_for_image_project with that id or poll GET /v1/image-projects/{id} until complete, error, or canceled. Results include downloads; wait helpers add exact_download_urls. Preserve signed URLs and query parameters; never append expiration metadata.

  • For *_file_path, use an existing Magic Hour path or the upload-URL endpoint's file_path after uploading raw bytes to its presigned URL. Direct public media URLs may work if stable and fetchable as raw bytes; hotlinked URLs can fail. Prefer the upload-URL endpoint when unsure.

Create an AI headshot. Each headshot costs 50 credits.

Input Schema

NameRequiredDescriptionDefault
nameNoGive your image a custom name for easy identification.Ai Headshot - dateTime
styleNo
assetsYesProvide the assets for headshot photo

Output Schema

NameRequiredDescriptionDefault
idYesUnique ID of the image. Use it with the [Get image Project API](https://docs.magichour.ai/api-reference/image-projects/get-image-details) to fetch status and downloads.
credits_chargedYesThe amount of credits deducted from your account to generate the image. We charge credits right when the request is made. If an error occurred while generating the image(s), credits will be refunded and this field will be updated to include the refund.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / style / properties / prompt / example
      Added value: +"Professional studio headshot with soft lighting and a neutral background"
  2. Changed1 schema field changed
    • removedInput schema / properties / context
      Removed value: -{
      -  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      -  "type": "string"
      -}
  3. Changed1 schema field changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      +  "type": "string"
      +}
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare the mutation/open-world/safe-write profile. The description goes well beyond that by disclosing the async job lifecycle, the returned id and credits_charged fields, the 50-credit cost per call, and the signed-URL handling rule (preserve query parameters, never append expiration metadata) — all operationally relevant facts an agent cannot get from the annotations.

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 purpose sentence is buried at the end after two long bullet blocks, so the definition is not front-loaded. Every sentence carries information, but the generic multi-tool guidance dominates over the tool's own identity, making it read as boilerplate-first.

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?

The description covers the async lifecycle, cost, and asset-path resolution, and an output schema exists so return shapes need not be re-explained. It could still say more about auth and the single-detectable-face prerequisite, but nothing essential for a correct invocation is missing.

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 67%, so the baseline is 3. The description adds real value for `image_file_path` (existing Magic Hour path vs upload-URL file_path vs hotlinked URLs that can fail), but it says nothing about `name` or `style.prompt`, and the file-path guidance partially overlaps what the schema already states.

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

Purpose4/5

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

The closing line "Create an AI headshot" gives a specific verb plus a specific resource subtype, which distinguishes it from ai_image_generator_create_image, ai_meme_generator_create_image and other create_image siblings. The differentiation comes mostly from the name/title rather than any explicit contrast, so it falls short of a 5.

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?

The guidance is explicit about the async workflow: call wait_for_image_project with the returned id or poll GET /v1/image-projects/{id} until complete/error/canceled, and it gives a preference rule for asset resolution ("Prefer the upload-URL endpoint when unsure"). What is missing is any guidance on when to pick this tool over the other image-generation siblings.

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