Photo AI Studio MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Photo AI Studio MCP ServerGenerate a professional headshot from my uploaded photo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Photo AI Studio MCP Server
AI photo generation, editing, and video creation MCP server for Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.
Generate professional AI headshots, edit photos with 19 AI operations, and create AI videos, all from your AI assistant.
Powered by Photo AI Studio.
What Can You Do?
Ask your AI assistant things like:
"Upload my photo and generate a professional headshot"
"Remove the background from this image"
"Make me look 10 years younger in this photo"
"Change my hairstyle to curly blonde"
"Swap my face onto this photo"
"Upscale this image to higher resolution"
"Create a video from this image with cinematic motion"
"Show me available photo themes for women"
Related MCP server: mcp-media-engine
Quick Start
1. Create a Free Account
Sign up at photoaistudio.com — new accounts get 100 free credits.
2. Get an API Key
Go to photoaistudio.com/api-keys to create your API key.
3. Configure Your AI Assistant
Claude Desktop (~/.claude/settings.json):
{
"mcpServers": {
"photoaistudio": {
"command": "npx",
"args": ["-y", "@photoaistudio/mcp-server"],
"env": {
"PHOTOAI_API_KEY": "pa_sk_your-key-here"
}
}
}
}Cursor: Add the same config in Cursor Settings > MCP Servers.
Windsurf / VS Code Copilot: Add to your MCP configuration file.
Available Tools
Photo Generation
Tool | Description | Credits |
| Generate AI photos from face images using 150+ themed styles or custom prompts | 100/photo |
| Browse all available photo themes, filter by gender or search by keyword | Free |
Photo Editing
Tool | Description | Credits |
| 19 AI-powered edit operations (see list below) | 3-100 |
Edit operations: remove_background (10 cr), replace_background (3 cr), retouch, skin, hair, makeup, age, expression, body_type, eye_color, color_correction, custom, clothes, try_on, product, upscale, restore, face_swap, extend (100 cr each)
Video Creation
Tool | Description | Credits |
| Create AI videos from images | 100-500 |
Video types: image_to_video (500 cr) — animate any photo, ugc (500 cr) — AI-generated spokesperson videos, product_holder (500 cr video / 100 cr image) — product showcase
Utilities
Tool | Description | Credits |
| Upload an image (URL or base64) to the CDN for use in other tools | Free |
| Check your credit balance and account info | Free |
| Check the status of an async operation | Free |
| List your past generations, edits, and videos | Free |
How It Works
1. Upload your photo → upload_image (returns CDN URL)
2. Browse available styles → browse_themes (150+ options)
3. Generate AI photos → generate_photo (auto-waits for result)
4. Or edit your photo → edit_image (19 operations available)
5. Results returned directly → Auto-polls until completeAll operations are async but auto-poll by default — the tool waits and returns the final result URL. Set wait_for_result: false to get the prediction ID immediately for manual polling.
Credits and Pricing
New accounts start with 100 free credits.
Package | Price | |
500 credits | $9 | |
1,000 credits | $17 | |
2,000 credits | $25 | |
4,000 credits | $35 | |
8,000 credits | $80 | |
20,000 credits | $190 |
Monthly subscriptions also available at photoaistudio.com/pricing.
Environment Variables
Variable | Required | Description |
| Yes | Your API key from photoaistudio.com/api-keys |
| No | API base URL (default: |
Examples
Generate a Professional Headshot
User: "Upload this photo and generate a professional headshot"
1. upload_image → CDN URL
2. browse_themes (gender: "female", tag: "professional") → theme slug
3. generate_photo (images: [CDN URL], gender: "female", category: "professional") → result URLRemove Background
User: "Remove the background from this image"
1. upload_image → CDN URL
2. edit_image (operation: "remove_background", image_url: CDN URL) → result URLFace Swap
User: "Swap my face onto this celebrity photo"
1. upload_image (source face) → source CDN URL
2. upload_image (target photo) → target CDN URL
3. edit_image (operation: "face_swap", source_image_url, target_image_url) → result URLTech Stack
TypeScript
stdio transport (runs locally, calls Photo AI Studio API over HTTPS)
Links
Photo AI Studio — Main website
API Keys — Create and manage API keys
Pricing — Credit packages and subscriptions
Photo Themes — Browse 150+ AI photo styles
License
Available Tools
8 toolsbrowse_themesA
Browse available photo themes/categories for AI photo generation. Filter by gender or search by tag. Returns theme slugs needed for the generate_photo tool.
| Name | Required | Description | Default |
|---|---|---|---|
| gender | No | Filter themes by gender category | |
| tag | No | Search themes by name or keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description discloses that it is a read operation (browsing) and mentions the return of slugs, but lacks details on pagination, rate limits, or whether it requires authentication. For a simple listing, it is adequate but not comprehensive.
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 description is two sentences, concise and front-loaded with the core purpose. Every sentence adds value with no redundancy.
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?
Given the lack of output schema, the description explains the return value (theme slugs). It covers the filter parameters but does not specify behavior when no parameters are provided (e.g., returns all themes). Overall, it is sufficient for the tool's simplicity.
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 coverage is 100%, so the schema already documents both parameters. The description rephrases filtering by gender and search by tag, adding minimal extra meaning. It also hints at the output usage, which is helpful but not parameter-specific.
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 description clearly states the tool browses photo themes/categories, specifies filtering by gender or tag, and explains the return value (theme slugs) needed by generate_photo. It distinguishes from sibling tools like generate_photo by establishing a dependency.
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 description implies when to use: to obtain theme slugs for generate_photo. It does not explicitly state when not to use or mention alternatives, but the context is clear enough for this simple browse tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_videoA
Create AI videos. Costs 500 credits (video) or 100 credits (product_holder image).
Types:
image_to_video: Animate an image with a prompt (image_url, prompt required). 500 credits.
ugc: Generate UGC video with script and voice (script, voice_id required). 500 credits.
product_holder: Product showcase with person holding product (product_image_url required). 500 credits (video) or 100 credits (image).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of video to create | |
| image_url | No | CDN URL of image to animate (image_to_video, product_holder) | |
| prompt | No | Animation prompt (required for image_to_video) | |
| resolution | No | Video resolution (default: 720p) | |
| duration | No | Video duration in seconds (default: 4) | |
| aspect_ratio | No | Output aspect ratio | |
| script | No | UGC script text (max 150 chars, required for ugc) | |
| voice_id | No | Voice ID for UGC (required for ugc) | |
| emotion | No | UGC emotion (default: neutral) | |
| language | No | UGC language (default: English) | |
| gender | No | UGC model gender | |
| person_image_url | No | Person image URL for product_holder | |
| product_image_url | No | Product image URL (required for product_holder) | |
| output_type | No | product_holder output type (image=100 credits, video=500 credits) | |
| person_prompt | No | Person description for product_holder | |
| wait_for_result | No | If true (default), waits for the result. If false, returns prediction_id immediately. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses credit costs, required parameters per type, output type options, and the behavior of the wait_for_result parameter, providing good insight into tool behavior.
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 description is well-structured with bullet points for each type and credit costs front-loaded. It is concise yet informative, though the credit listing could be slightly more streamlined.
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?
Given 16 parameters and no output schema, the description covers input requirements well but lacks details on output format, error handling, or processing time. This gap reduces completeness.
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 coverage is 100%, so the baseline is 3. The description adds value by grouping parameters by type and explicitly stating which parameters are required for each type, along with credit cost implications, enhancing understanding beyond the schema.
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 description explicitly states 'Create AI videos' and details three distinct types (image_to_video, ugc, product_holder) with their specific use cases and credit costs, making the purpose crystal clear and differentiating from sibling tools.
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 description provides clear guidance on when to use each type by listing required parameters and credit costs for each. It lacks explicit 'when not to use' but the enum and descriptions suffice for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageA
Edit a photo using one of 19 AI operations. Credit costs: remove_background (10), replace_background (3), all others (100).
Operations:
remove_background: Remove image background (image_url required)
replace_background: Replace background with prompt (image_url, prompt required)
retouch: AI retouch with prompt guidance (image_url, prompt required)
skin: Smooth and enhance skin (image_url required)
hair: Change hairstyle (image_url required, hairstyle or reference_image_url)
makeup: Apply AI makeup (image_url required)
age: Change apparent age (image_url, target_age required)
expression: Change facial expression (image_url, target_expression required)
body_type: Modify body type (image_url, target_body_type required)
eye_color: Change eye color (image_url, target_eye_color required)
color_correction: Auto color correction (image_url required)
custom: Custom AI edit with prompt (image_url, prompt required)
clothes: Change clothes (image_url, clothes_image_url required)
try_on: Virtual clothes try-on (image_url, clothes_image_url required)
product: Product placement (image_url, product_image_url required)
upscale: Enhance resolution (image_url required)
restore: Restore old/damaged photo (image_url required)
face_swap: Swap faces between photos (source_image_url, target_image_url required)
extend: Extend image canvas (image_url required)
All image URLs must be CDN URLs from upload_image.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | The edit operation to perform | |
| image_url | No | CDN URL of the image to edit (required for all operations except face_swap) | |
| prompt | No | Text prompt for replace_background, retouch, custom operations | |
| hairstyle | No | Target hairstyle for hair operation | |
| hair_color | No | Target hair color for hair operation | |
| reference_image_url | No | Reference image URL for hair or custom operations | |
| target_age | No | Target age for age operation | |
| target_expression | No | Target expression for expression operation (e.g. "happy", "serious") | |
| target_body_type | No | Target body type for body_type operation | |
| target_eye_color | No | Target eye color for eye_color operation | |
| clothes_image_url | No | Clothes image URL for clothes/try_on operations | |
| product_image_url | No | Product image URL for product operation | |
| source_image_url | No | Source face image for face_swap operation | |
| target_image_url | No | Target image for face_swap operation | |
| num_images | No | Number of variations for try_on operation | |
| wait_for_result | No | If true (default), waits for the result. If false, returns prediction_id immediately. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses credit costs, required parameters per operation, and the 'wait_for_result' behavior. Missing details on idempotency, rate limits, or side effects, but adequate given no annotations.
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?
Well-structured with bullet points and clear sections. Could be slightly more concise, but every sentence adds necessary information.
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?
No output schema; the description does not explain the return format (e.g., edited image URL or prediction ID) for most operations, leaving the agent uncertain about what to expect.
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 coverage is 100%, but the description adds value by mapping operations to required parameters and providing examples, which helps the agent understand usage beyond raw schema.
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 description clearly states it edits photos using 19 AI operations, with a specific verb and resource. It distinguishes from siblings like 'generate_photo' and 'create_video' by focusing on editing existing images.
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?
Provides explicit guidance on which operation requires which parameters and credit costs. However, it does not explicitly state when to avoid this tool in favor of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_photoA
Generate AI photos from face images using 150+ themed styles or custom prompts. Costs 100 credits per photo. Requires uploading face images first via upload_image. Use browse_themes to discover available categories.
| Name | Required | Description | Default |
|---|---|---|---|
| images | Yes | CDN URLs of face photos (1-9), obtained from upload_image | |
| gender | Yes | Gender category for theme selection | |
| category | No | Theme slug from browse_themes (required for themed generation) | |
| type | No | Generation type: themed (use a preset style) or custom (use a prompt) | |
| prompt | No | Custom prompt (required when type=custom) | |
| num_images | No | Number of variations to generate (1-4) | |
| style | No | Style override (e.g. "realistic") | |
| aspect_ratio | No | Output aspect ratio | |
| wait_for_result | No | If true (default), waits for the result. If false, returns prediction_id immediately. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description attempts to disclose behaviors: credit cost and prerequisite upload. However, it omits details about the generation process (e.g., whether it is synchronous or async, what happens on error, or how the wait_for_result parameter affects behavior). This leaves some ambiguity for the agent.
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 description is extremely concise at three sentences, with no redundant information. It front-loads the core purpose and follows with essential usage guidance in a logical order. Every sentence earns 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?
The description covers the tool's purpose, prerequisites, and cost, and mentions the key distinction between themed and custom generation. However, it does not explain the conditional dependency between type/category/prompt, nor describe the output format (e.g., image URL or prediction ID) despite having a wait_for_result parameter. Given the complexity (9 params, no output schema), slightly more detail would improve completeness.
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 100% schema description coverage, the schema already documents all parameters. The description adds value by explaining the credit cost and linking category usage to browse_themes, but does not clarify conditional requirements (e.g., when type=themed vs custom). Baseline 3 is appropriate.
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 description explicitly states the tool generates AI photos from face images using themed styles or custom prompts. It clearly identifies the verb 'generate', the resource 'AI photos', and the method, and distinguishes itself from sibling tools like upload_image and browse_themes by referencing them as prerequisites or discoverability tools.
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 description provides clear usage context: it requires prior face image upload via upload_image, costs 100 credits per photo, and recommends browse_themes for theme discovery. It does not explicitly state when not to use this tool (e.g., for other media types), but the sibling tools cover those purposes, and the guidance is sufficient for an informed selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountA
Get your Photo AI Studio account info: credit balance, total predictions, and membership date. Use this to check available credits before generating photos.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states the tool is a read operation that returns credit balance, total predictions, and membership date. This is sufficient for a simple retrieval. Could mention authentication implicitly.
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?
Two sentences, front-loaded with purpose, then usage advice. Every word earns its place. No fluff.
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 simple account info tool with no output schema, the description covers what is returned and the use case. It is complete enough for an agent to decide when to use it.
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?
No parameters, so schema coverage is 100%. According to guidelines, 0 params gives a baseline of 4. The description adds no parameter info, which is fine.
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 description uses a specific verb 'Get' and identifies the resource 'account info', listing the exact fields returned. It clearly distinguishes from sibling tools which are about browsing themes, creating videos, editing images, generating photos, etc.
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?
Explicitly states when to use: 'before generating photos to check available credits.' Provides clear context, though it doesn't explicitly list when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_predictionA
Check the status of an async operation (generation, edit, or video). Returns the current state and result URL when complete.
| Name | Required | Description | Default |
|---|---|---|---|
| prediction_id | Yes | The prediction ID returned by generate_photo, edit_image, or create_video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It states the tool returns 'current state and result URL when complete,' which is adequate but lacks details on possible states, error handling, or idempotency. More transparency on the async behavior would help.
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?
Two concise sentences efficiently convey purpose, scope, and output. Front-loaded with the verb 'Check' and no unnecessary words.
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?
Given low complexity (one param, no output schema), the description covers the essential purpose, output, and input origin. Minor gaps: does not enumerate possible states or mention error cases for invalid IDs, but still fully usable.
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 coverage is 100% and the description's parameter info ('returned by generate_photo, edit_image, or create_video') duplicates the schema. No additional meaning is added beyond the schema, meeting baseline expectations.
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 description clearly states the tool checks the status of an async operation for generation, edit, or video. It explicitly distinguishes from sibling tools like generate_photo, edit_image, and create_video (which start operations) and list_predictions (which lists all predictions).
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 description implies the tool is used after initiating an async operation to check its status, and differentiates from siblings. However, it lacks explicit guidance on when not to use it (e.g., for initiating operations or listing all predictions) or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_predictionsA
List past predictions (generations, edits, videos) with pagination and optional state filter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Items per page (default: 20, max: 100) | |
| state | No | Filter by prediction state |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies read-only operation ('list past predictions'), but lacks details on rate limits, auth, or behavior with empty results. Minimal disclosure.
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?
Single, efficient sentence (13 words) conveying purpose, scope, and features. Front-loaded with key action and resource.
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?
Adequate for a simple list tool with well-documented schema. Missing description of return format, but no output schema exists, and list context is clear.
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 covers all 3 parameters with descriptions (100% coverage). Description only adds 'past predictions' context and optional state filter, providing minimal value beyond schema.
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?
Description clearly states verb 'list', resource 'predictions', and specifies scope as 'past predictions (generations, edits, videos)' with pagination and state filter. Distinguishes from siblings like get_prediction (single) and creation tools.
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?
No explicit when/when-not or alternatives, but context implies listing past predictions. Sibling tools provide implicit guidance, but no exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_imageA
Upload an image to Photo AI Studio CDN. Returns a CDN URL needed by generate_photo, edit_image, and create_video tools. Accepts a public image URL or base64-encoded image data. Max 10MB.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | No | Public URL of the image to upload | |
| image_base64 | No | Base64-encoded image data (raw or data URI) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full transparency burden. It discloses the CDN destination, max file size (10MB), and input formats. However, it omits details like allowed image types, idempotency, overwrite behavior, or response format beyond 'CDN URL'.
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?
Four sentences, no wasted words. Critical information (purpose, output, input options, size limit) is front-loaded. Highly concise and structured for quick parsing.
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 simple upload tool with two optional parameters and no output schema, the description adequately covers purpose, input constraints, and downstream use. However, since no output schema exists, a more precise description of the returned URL format would improve completeness.
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 baseline is 3. The description adds value by clarifying that image_url expects a 'Public URL' and image_base64 accepts 'raw or data URI' base64, elaborating on the schema's simple type strings.
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 description clearly states the tool's action ('Upload an image'), the target resource ('Photo AI Studio CDN'), and the outcome ('Returns a CDN URL'). It explicitly names the downstream tools that use this URL (generate_photo, edit_image, create_video), distinguishing it from those sibling tools.
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 description explains when to use this tool (to upload an image for later use by other tools) and specifies accepted input formats (URL or base64). However, it does not explicitly mention when NOT to use it or name alternatives, though no alternative upload tool exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: browse_themes for theme discovery, create_video for video generation, edit_image for photo editing, generate_photo for AI photo generation, get_account for account info, get_prediction and list_predictions for status, and upload_image for image upload. There is no overlap between these functions.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., browse_themes, create_video, edit_image, generate_photo, get_account, get_prediction, list_predictions, upload_image). The verbs are imperative and descriptive, providing a predictable naming convention.
With 8 tools, the server covers the essential operations of a photo AI studio: uploading, generating, editing, creating videos, checking account info, and managing predictions. The number is well-scoped and neither too sparse nor too bloated.
The tool set covers the main lifecycle: upload, generate/edit/video, and check predictions. Minor gaps exist, such as no tool to delete uploaded images or cancel predictions, but these are non-critical for common workflows. The included operations are comprehensive.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Generate AI images and videos from any compatible MCP client.
Create images & video from any MCP agent — 17 models, spend limits, one URL.
Multi-model AI image and video generator. 14 models behind one OAuth-secured MCP endpoint.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceEnables video generation from text, images, and more through MCP-compatible apps like Claude and Cursor.52MIT- AlicenseAqualityBmaintenanceMCP server for AI-powered image, audio, and video generation, enabling media creation directly from Claude, Cursor, and other MCP clients.1164MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered image and video generation using Higgsfield AI models through MCP-compatible clients like Claude Desktop and Perplexity.376MIT
- AlicenseNot gradedqualityBmaintenanceEnables image generation and editing using Google Vertex AI's Imagen API through natural language commands in MCP clients like Claude Desktop.251MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/photo-ai-studio/photo-ai-studio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server