FlashShot AI Product Photography
Server Details
AI studio product photo generation, background replacement, and e-commerce catalog imagery tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct resource: listing themes, creating a job, checking a user's credit balance, and retrieving pricing. The only mild overlap is between check_credit_balance and get_pricing_and_credit_packs, since both concern credits, but one is per-account balance and the other is public price lists, and the descriptions make that boundary clear.
All four names use a consistent snake_case verb_noun pattern (check_, create_, get_) with descriptive nouns. No mixed conventions or vague verbs anywhere in the set.
Four tools is on the thin side for a job-submission service: two are read-only informational queries (themes, pricing) and one is a balance lookup. The surface feels under-built rather than over-scoped.
The set can list themes, price credits, and submit a photo job, but there is no tool to check job status, retrieve results, or download the finished image — a dead end for the core workflow. Since credits explicitly pay for downloads, the absence of any retrieval or lifecycle tooling is a significant gap.
Available Tools
4 toolscheck_credit_balanceCheck Credit BalanceCRead-onlyIdempotentInspect
Query available high-definition download credits for an authenticated account. When to use: Call this tool when you specifically need to execute 'check_credit_balance' on FlashShot AI Product Photography (flashshot.io). Do NOT use this tool when another specialized tool fits better (use 'get_available_themes' or 'get_pricing_and_credit_packs' or 'create_photo_job' for their respective operations). Parameters: user_id (required). Behavior & Side Effects: Strictly read-only, idempotent query with zero state mutation; public unauthenticated access allowed; rate-limited to 60 requests/min per IP. Returns: Structured JSON object containing status, matched records or computed metrics, and canonical action URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User identifier [Required: non-empty valid value must be supplied]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the description earns credit mainly for the 60 req/min per-IP rate limit and the access statement. However, it internally contradicts itself: 'for an authenticated account' versus 'public unauthenticated access allowed', which leaves the agent unsure whether an auth token is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose line is front-loaded and useful, but several sentences earn nothing: the tautological 'when to use' clause and the boilerplate 'Returns' line about 'matched records or computed metrics and canonical action URLs', which is not credible for a balance lookup.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with full annotations and complete schema coverage, the essentials are present (purpose, rate limit). But the contradictory auth statement and the generic return-value claim leave avoidable ambiguity about credentials and output shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single required user_id is fully documented in the schema. The description only restates 'Parameters: user_id (required)' without adding format, source, or scope meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource: query available high-definition download credits for an account. That distinguishes it reasonably well from get_available_themes and create_photo_job, though the boundary with get_pricing_and_credit_packs (pricing/packs vs. balance) is never articulated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'when to use' sentence is circular — 'use this when you need to execute check_credit_balance' adds no selection criteria. The exclusion clause names three siblings but gives no condition under which each should win, so the agent still has to infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_photo_jobCreate Photo JobAInspect
Submit a commercial product image relighting and studio background job. When to use: Call this tool when you specifically need to execute 'create_photo_job' on FlashShot AI Product Photography (flashshot.io). Do NOT use this tool when another specialized tool fits better (use 'get_available_themes' or 'get_pricing_and_credit_packs' or 'check_credit_balance' for their respective operations). Parameters: theme_key (required), aspect_ratio (optional), image_url (required). Behavior & Side Effects: Creates a live record/session in the backend database; no authentication required for public initiation; rate-limited to 60 requests/min per IP. Returns: Structured JSON object containing status, matched records or computed metrics, and canonical action URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | Public URL or Base64 URI of the product image [Required: non-empty valid value must be supplied]. | |
| theme_key | Yes | Studio theme key (e.g. pro_white, natural_wood, luxe_marble) [Required: non-empty valid value must be supplied]. | |
| aspect_ratio | No | Target aspect ratio (1:1, 4:5, 16:9) [Optional: omit to use server default filter]. | 1:1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds genuinely non-redundant behavior: a live backend record/session is created, no auth is required for public initiation, and the endpoint is rate-limited to 60 requests/min per IP. The 'Returns' sentence is generic boilerplate ('matched records or computed metrics') that doesn't describe a job-submission response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is well front-loaded and the behavioral details are valuable, but the 'When to use' section is tautological filler and the 'Returns' sentence is generic template text. Roughly a third of the description does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Three parameters with full schema coverage and no output schema means the description need not explain parameters. However, for an asynchronous job-creation tool the agent still needs to know what the submission yields (a job id? a status to poll?) and the boilerplate 'Returns' line does not supply that. Adequate but with a clear gap at the point that matters most.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents image_url formats, theme_key examples, and aspect_ratio default/enum values. The description's parameter sentence ('theme_key (required), aspect_ratio (optional), image_url (required)') restates only requiredness and adds no syntax or format meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource: submit a product-image relighting and studio-background job. That is far more informative than the title. Sibling differentiation is only generic ('another specialized tool fits better'), so an agent learns what this tool does but not precisely where its boundary sits relative to get_available_themes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When to use' clause is circular — it says to call create_photo_job when you need to execute 'create_photo_job' — and the exclusion clause merely says to use other tools 'for their respective operations' without naming a condition. The only real routing signal is implicit: theme_key is required, so get_available_themes is likely a prerequisite, but the description never says that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_available_themesGet Available ThemesARead-onlyIdempotentInspect
List active commercial studio lighting and background themes (e.g. Studio White, Oak Collection, Carrara Marble, Fairway Green). When to use: Call this tool when you specifically need to execute 'get_available_themes' on FlashShot AI Product Photography (flashshot.io). Do NOT use this tool when another specialized tool fits better (use 'get_pricing_and_credit_packs' or 'check_credit_balance' or 'create_photo_job' for their respective operations). Parameters: none required (zero-argument query). Behavior & Side Effects: Strictly read-only, idempotent query with zero state mutation; public unauthenticated access allowed; rate-limited to 60 requests/min per IP. Returns: Structured JSON object containing status, matched records or computed metrics, and canonical action URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds useful operational context beyond annotations: public unauthenticated access and a rate limit of 60 requests per minute per IP, along with zero state mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful, but the 'when to use' sentence is circular boilerplate and the sibling-tool mention is mostly irrelevant. The behavior and returns sections are informative but somewhat formulaic for a simple zero-argument list query.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only listing tool with annotations covering safety and idempotency, the description covers purpose, access model, rate limit, and general return shape. The return description is generic ('status, matched records or computed metrics, and canonical action URLs') and could be more specific about theme fields, but it is adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly confirms this is a zero-argument query, matching the empty input schema without adding misleading detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: lists active commercial studio lighting and background themes, with concrete examples (Studio White, Oak Collection, etc.). This is clearer than the title alone, though it does not sharply differentiate from the sibling tools beyond noting they handle pricing, credits, and job creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'when to use' sentence is circular: it says to call this tool when you specifically need to execute 'get_available_themes'. The exclusion only says to use other tools for their respective operations, which is generic and does not explain when theme listing is appropriate versus other discovery tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricing_and_credit_packsGet Pricing And Credit PacksARead-onlyIdempotentInspect
Retrieve pricing for high-res photo download credit packs and commercial pro plans. When to use: Call this tool when you specifically need to execute 'get_pricing_and_credit_packs' on FlashShot AI Product Photography (flashshot.io). Do NOT use this tool when another specialized tool fits better (use 'get_available_themes' or 'check_credit_balance' or 'create_photo_job' for their respective operations). Parameters: none required (zero-argument query). Behavior & Side Effects: Strictly read-only, idempotent query with zero state mutation; public unauthenticated access allowed; rate-limited to 60 requests/min per IP. Returns: Structured JSON object containing status, matched records or computed metrics, and canonical action URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so restating 'strictly read-only, idempotent, zero state mutation' adds little. What does add value is the disclosure that access is public and unauthenticated and that the endpoint is rate-limited to 60 requests/min per IP — operationally useful facts that no structured field carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is correctly front-loaded, but the 'When to use' block wastes a full sentence on a circular restatement, and the 'Returns' line is family-template boilerplate ('matched records or computed metrics') that does not fit a pricing query. Roughly a third of the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Safety, auth and rate-limit context are covered, and there is no output schema to compensate for. But the return statement is generic template text rather than a description of the actual pricing payload (plan tiers, pack sizes, currencies, prices), leaving the agent unable to predict what it will get back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the baseline is 4, and the description corroborates the empty schema by stating it is a zero-argument query. Nothing is left ambiguous about how to invoke it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource: retrieve pricing for high-res photo download credit packs and commercial pro plans. That is clearly distinct from the sibling tools (credit balance, job creation, themes). The following 'When to use' sentence degrades into a tautology that restates the tool name instead of adding scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the alternatives (get_available_themes, check_credit_balance, create_photo_job) and says not to use this tool when one of them fits. However, the positive condition is circular ('call this when you specifically need to execute get_pricing_and_credit_packs'), so the agent gets no real criteria for choosing this tool over check_credit_balance, which is the genuinely confusable sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
check_credit_balance1 field changed- changed
Input schema / properties / user_id / descriptionPrevious value: -"User identifier"New value: +"User identifier [Required: non-empty valid value must be supplied]."
- Changed
create_photo_job3 fields changed- changed
Input schema / properties / aspect_ratio / descriptionPrevious value: -"Target aspect ratio (1:1, 4:5, 16:9)"New value: +"Target aspect ratio (1:1, 4:5, 16:9) [Optional: omit to use server default filter]." - changed
Input schema / properties / image_url / descriptionPrevious value: -"Public URL or Base64 URI of the product image"New value: +"Public URL or Base64 URI of the product image [Required: non-empty valid value must be supplied]." - changed
Input schema / properties / theme_key / descriptionPrevious value: -"Studio theme key (e.g. pro_white, natural_wood, luxe_marble)"New value: +"Studio theme key (e.g. pro_white, natural_wood, luxe_marble) [Required: non-empty valid value must be supplied]."
4 tool updates
- First observed
check_credit_balance - First observed
create_photo_job - First observed
get_available_themes - First observed
get_pricing_and_credit_packs
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.