AI photo tools and 18 image models (GPT Image 2.6, Nano Banana, FLUX 3, more) over MCP. Pay per use.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer token: an AirGallery API key (ag_…) from https://airgallery.com/api-keys
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Expand (outpaint) an image beyond its borders. Returns { processedImage }. Cost: 3 credits.
Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL
Optional description of what to add in the new area
Where to extend (default all)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http airgallery https://wgbduttegyrwiukjhubh.supabase.co/functions/v1/mcp-server \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer token: an AirGallery API key (ag_…) from https://airgallery.com/api-keysExpand (outpaint) an image beyond its borders. Returns { processedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| context | string | Optional description of what to add in the new area |
| direction | string | Where to extend (default all) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"context": {
"type": "string",
"description": "Optional description of what to add in the new area"
},
"direction": {
"enum": [
"all",
"horizontal",
"vertical",
"left",
"right",
"top",
"bottom"
],
"type": "string",
"description": "Where to extend (default all)"
}
}
}Apply an artistic AI filter to an image. Returns { image }. Cost: 1 credit.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| filter* | string | Filter (default oilPainting) |
{
"type": "object",
"required": [
"image",
"filter"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"filter": {
"enum": [
"oilPainting",
"watercolor",
"sketch",
"anime",
"popArt",
"cyberpunk",
"impressionist",
"minimalist"
],
"type": "string",
"description": "Filter (default oilPainting)"
}
}
}Replace a marked area of an image with something described in words. Returns { processedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | The image with the area to change painted over in semi-transparent red brush strokes (the AirGallery app sends rgba(255, 80, 80, 0.6)), as a base64 data URI or HTTPS URL |
| replacePrompt* | string | What should appear in the marked area |
{
"type": "object",
"required": [
"image",
"replacePrompt"
],
"properties": {
"image": {
"type": "string",
"description": "The image with the area to change painted over in semi-transparent red brush strokes (the AirGallery app sends rgba(255, 80, 80, 0.6)), as a base64 data URI or HTTPS URL"
},
"replacePrompt": {
"type": "string",
"description": "What should appear in the marked area"
}
}
}Change an image's aspect ratio, filling new space with AI. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| aspectRatio* | string | Target ratio |
{
"type": "object",
"required": [
"image",
"aspectRatio"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"aspectRatio": {
"enum": [
"1:1",
"16:9",
"9:16",
"4:3",
"3:4",
"4:5",
"21:9"
],
"type": "string",
"description": "Target ratio"
}
}
}Generate a stylized avatar from a face photo. Returns { processedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| style | string | Avatar style (default pixar) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"style": {
"enum": [
"anime",
"pixar",
"cyberpunk",
"renaissance",
"comic",
"watercolor",
"pop-art",
"fantasy"
],
"type": "string",
"description": "Avatar style (default pixar)"
}
}
}Turn a photo into a cartoon. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| style | string | Cartoon style (default cartoon) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"style": {
"enum": [
"cartoon",
"anime",
"caricature",
"disney",
"simpsons",
"pixar"
],
"type": "string",
"description": "Cartoon style (default cartoon)"
}
}
}Colorize a black and white photograph. Returns { image }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| style | string | Color style (default natural) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"style": {
"enum": [
"natural",
"vintage",
"vibrant",
"cinematic"
],
"type": "string",
"description": "Color style (default natural)"
}
}
}Create or transform an image using AirGallery's core multi-modal image pipeline (powers the Create page). Accepts up to 5 reference images plus a custom prompt and/or style preset, and supports multiple image models. Every model accepts reference images. Returns { image }. Cost depends on the model, in credits: nano-banana-2 3, nano-banana-pro 6, nano-banana-2-lite 2, nano-banana 3, gpt-image-2.6-flare 8, gpt-image-2.6-sunburst 8, gpt-image-2.5-flare 8, gpt-image-2.5-sunburst 8, gpt-image 8, gpt-image-mini 3, flux-3 3, flux-3-klein 1, mai-image-2.6 3, grok-imagine-2 4, seedream-5-pro 2, muse-image 1, minimax-h3 2, recraft-v4.1 2. Requires 'ai' scope.
| Argument | Type | Description |
|---|---|---|
| model | string | Image model: 'nano-banana-2' (Gemini 3.1 Flash Image, default), 'nano-banana-pro' (Gemini 3 Pro Image), 'nano-banana-2-lite' (Gemini 3.1 Flash-Lite Image, fast and cheap), 'nano-banana' (Gemini 2.5 Flash Image), 'gpt-image-2.6-flare' (OpenAI GPT Image 2.6 Flare, newest, fast), 'gpt-image-2.6-sunburst' (OpenAI GPT Image 2.6 Sunburst, careful edits, about 50s), 'gpt-image-2.5-flare' and 'gpt-image-2.5-sunburst' (OpenAI GPT Image 2.5, previous generation), 'gpt-image' (OpenAI GPT Image 2), 'gpt-image-mini' (OpenAI GPT Image 1 Mini), 'flux-3' (Black Forest Labs FLUX 3), 'flux-3-klein' (FLUX 3 Klein, fastest and cheapest), 'mai-image-2.6' (Microsoft MAI-Image 2.6, precise edits), 'grok-imagine-2' (xAI Grok Imagine Image 2.0), 'seedream-5-pro' (ByteDance Seedream 5.0 Pro, slower), 'muse-image' (Meta Muse Image 1.0, blends photos), 'minimax-h3' (MiniMax H3 Image, open weights, many references), 'recraft-v4.1' (Recraft V4.1, design and illustration; text only, no reference images). |
| images | array | Optional: 0–5 reference images, each as a base64 data URI or HTTPS image URL. Omit for pure text-to-image (customPrompt is then required). |
| preset | string | Style preset applied to the images and/or prompt (default none). |
Delete an artwork from the authenticated user's gallery. Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| id* | string | Artwork UUID to delete |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Artwork UUID to delete"
}
}
}Make a phone photo look like it was taken with a DSLR camera. Returns { image }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
}
}
}Enhance image quality: general clean-up, sharpen, denoise or fix lighting. Returns { image }. Cost: 1 credit.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| enhanceType | string | Kind of enhancement (default general) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"enhanceType": {
"enum": [
"general",
"sharpen",
"denoise",
"lighting"
],
"type": "string",
"description": "Kind of enhancement (default general)"
}
}
}Follow another user. Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | UUID of user to follow |
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "UUID of user to follow"
}
}
}Generate 5–8 descriptive tags for an image. Returns { tags }. Cost: 1 credit; free the first time for one of your own saved artworks that has no tags yet.
| Argument | Type | Description |
|---|---|---|
| image_url* | string | Image URL (e.g. a saved artwork's image_url) or base64 data URI |
{
"type": "object",
"required": [
"image_url"
],
"properties": {
"image_url": {
"type": "string",
"description": "Image URL (e.g. a saved artwork's image_url) or base64 data URI"
}
}
}Get details of a specific artwork by ID including image URL, prompt, tags, and metadata.
| Argument | Type | Description |
|---|---|---|
| id* | string | Artwork UUID |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Artwork UUID"
}
}
}Get the authenticated user's current credit balance. Requires auth.
No arguments.
{
"type": "object",
"properties": {}
}Get the credit cost for each AI tool operation. No auth required.
No arguments.
{
"type": "object",
"properties": {}
}Get the authenticated user's profile (username, bio, avatar). Requires auth.
No arguments.
{
"type": "object",
"properties": {}
}Get available credit purchase tiers and prices. Requires auth.
No arguments.
{
"type": "object",
"properties": {}
}Get a public user profile by user ID.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | User UUID |
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "User UUID"
}
}
}Get a public white-label gallery by slug.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Gallery slug |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Gallery slug"
}
}
}Generate a professional headshot from a selfie. Returns { processedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Clear face photo: base64 data URI or HTTPS URL |
| style | string | Headshot style (default linkedin) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Clear face photo: base64 data URI or HTTPS URL"
},
"style": {
"enum": [
"linkedin",
"corporate",
"creative",
"actor",
"casual"
],
"type": "string",
"description": "Headshot style (default linkedin)"
}
}
}Like a public artwork. Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| artwork_id* | string | Artwork UUID to like |
{
"type": "object",
"required": [
"artwork_id"
],
"properties": {
"artwork_id": {
"type": "string",
"description": "Artwork UUID to like"
}
}
}List the authenticated user's saved artworks (private gallery). Requires auth.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max results (default 20) |
| offset | number | Pagination offset |
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max results (default 20)"
},
"offset": {
"type": "number",
"description": "Pagination offset"
}
}
}List the authenticated user's white-label galleries. Requires auth.
No arguments.
{
"type": "object",
"properties": {}
}Browse the public AirGallery discover feed. Returns artworks with image URLs, prompts, tags, and creator info. Supports pagination.
| Argument | Type | Description |
|---|---|---|
| tag | string | Filter by tag |
| limit | number | Max results (default 20, max 100) |
| offset | number | Pagination offset (default 0) |
{
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Filter by tag"
},
"limit": {
"type": "number",
"description": "Max results (default 20, max 100)"
},
"offset": {
"type": "number",
"description": "Pagination offset (default 0)"
}
}
}Place a logo on a realistic merchandise or signage mockup. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Logo image: base64 data URI or HTTPS URL |
| mockupType | string | Mockup (default tshirt) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Logo image: base64 data URI or HTTPS URL"
},
"mockupType": {
"enum": [
"tshirt",
"hoodie",
"hat",
"mug",
"business_card",
"billboard",
"storefront",
"laptop",
"phone",
"poster"
],
"type": "string",
"description": "Mockup (default tshirt)"
}
}
}Add classic top/bottom meme captions to an image. At least one caption is required. Returns { processedImage }. Cost: 1 credit.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| topText | string | Caption at the top |
| bottomText | string | Caption at the bottom |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"topText": {
"type": "string",
"description": "Caption at the top"
},
"bottomText": {
"type": "string",
"description": "Caption at the bottom"
}
}
}Erase marked objects from an image and fill the space naturally. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | The image with the area to change painted over in semi-transparent red brush strokes (the AirGallery app sends rgba(255, 80, 80, 0.6)), as a base64 data URI or HTTPS URL |
| maskDescription | string | Optional: what to remove, e.g. 'the person on the left' |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "The image with the area to change painted over in semi-transparent red brush strokes (the AirGallery app sends rgba(255, 80, 80, 0.6)), as a base64 data URI or HTTPS URL"
},
"maskDescription": {
"type": "string",
"description": "Optional: what to remove, e.g. 'the person on the left'"
}
}
}Restore an old photograph: scratches, fading, stains, creases. Returns { processedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| options | object | Restoration steps to apply (the app turns all of them on) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"options": {
"type": "object",
"properties": {
"fading": {
"type": "boolean",
"description": "Restore faded colors and contrast"
},
"stains": {
"type": "boolean",
"description": "Remove stains and spots"
},
"creases": {
"type": "boolean",
"description": "Fix fold lines and creases"
},
"enhance": {
"type": "boolean",
"description": "Enhance and sharpen overall"
},
"scratches": {
"type": "boolean",
"description": "Remove scratches and tears"
}
},
"description": "Restoration steps to apply (the app turns all of them on)"
}
}
}Fix blur, noise, low resolution or general damage in a photo. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| type | string | Repair type (default restore) |
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
{
"type": "object",
"required": [
"image"
],
"properties": {
"type": {
"enum": [
"restore",
"unblur",
"denoise",
"upscale"
],
"type": "string",
"description": "Repair type (default restore)"
},
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
}
}
}Turn an image into a Polaroid instant print. Returns { image }. Cost: 1 credit.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
}
}
}Retouch a portrait naturally. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| options | object | Enhancements to apply (none set = general skin, eye and lighting touch-up) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"options": {
"type": "object",
"properties": {
"lighting": {
"type": "boolean",
"description": "Improve facial lighting"
},
"eyeEnhance": {
"type": "boolean",
"description": "Brighten eyes"
},
"skinSmooth": {
"type": "boolean",
"description": "Smooth skin, keeping texture"
},
"teethWhiten": {
"type": "boolean",
"description": "Whiten teeth"
},
"blemishRemoval": {
"type": "boolean",
"description": "Remove blemishes"
}
},
"description": "Enhancements to apply (none set = general skin, eye and lighting touch-up)"
}
}
}Design a poster from a description. Returns { generatedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| style | string | Design style (default modern) |
| prompt* | string | What the poster is for: title, event details, mood |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"style": {
"enum": [
"modern",
"retro",
"minimal",
"neon",
"grunge",
"elegant"
],
"type": "string",
"description": "Design style (default modern)"
},
"prompt": {
"type": "string",
"description": "What the poster is for: title, event details, mood"
}
}
}Turn a product photo into a styled e-commerce shot. Returns { processedImage }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| background | string | Scene (default white_studio) |
| customPrompt | string | Optional custom scene description |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"background": {
"enum": [
"white_studio",
"marble",
"kitchen",
"desk",
"luxury",
"outdoor",
"gradient",
"wood"
],
"type": "string",
"description": "Scene (default white_studio)"
},
"customPrompt": {
"type": "string",
"description": "Optional custom scene description"
}
}
}Change the lighting of an image. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| lighting | string | Lighting preset (default golden-hour) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"lighting": {
"enum": [
"golden-hour",
"blue-hour",
"studio",
"dramatic",
"natural",
"moody",
"neon",
"soft"
],
"type": "string",
"description": "Lighting preset (default golden-hour)"
}
}
}Remove the background from an image, leaving the subject on transparency. Returns { processedImage }. Cost: 1 credit.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
}
}
}Apply a retro look to an image. Returns { processedImage }. Cost: 1 credit.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| style | string | Retro style (default 70s) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"style": {
"enum": [
"70s",
"80s",
"90s",
"vhs",
"film",
"sepia"
],
"type": "string",
"description": "Retro style (default 70s)"
}
}
}Save an artwork to the authenticated user's gallery. A data:image URI (PNG, JPEG, WebP or GIF) is uploaded to AirGallery storage and the artwork stores the resulting public URL; http(s) URLs are stored as given. Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| tags | array | Tags for the artwork |
| model | string | AI model used |
| preset | string | Preset/style used |
| prompt | string | Prompt used to generate the image |
| image_url* | string | http(s) image URL, or a data:image/…;base64 URI up to ~10 MB (e.g. a create_image result) |
| is_public | boolean | Whether to make the artwork public (default false) |
{
"type": "object",
"required": [
"image_url"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags for the artwork"
},
"model": {
"type": "string",
"description": "AI model used"
},
"preset": {
"type": "string",
"description": "Preset/style used"
},
"prompt": {
"type": "string",
"description": "Prompt used to generate the image"
},
"image_url": {
"type": "string",
"description": "http(s) image URL, or a data:image/…;base64 URI up to ~10 MB (e.g. a create_image result)"
},
"is_public": {
"type": "boolean",
"description": "Whether to make the artwork public (default false)"
}
}
}Repaint a content image in the style of a second, style reference image. Returns { processedImage }. Cost: 2 credits.
| Argument | Type | Description |
|---|---|---|
| strength | string | Style strength (default medium) |
| styleImage* | string | The style reference (e.g. a painting): base64 data URI or HTTPS URL |
| contentImage* | string | The photo to restyle: base64 data URI or HTTPS URL |
{
"type": "object",
"required": [
"contentImage",
"styleImage"
],
"properties": {
"strength": {
"enum": [
"light",
"medium",
"heavy"
],
"type": "string",
"description": "Style strength (default medium)"
},
"styleImage": {
"type": "string",
"description": "The style reference (e.g. a painting): base64 data URI or HTTPS URL"
},
"contentImage": {
"type": "string",
"description": "The photo to restyle: base64 data URI or HTTPS URL"
}
}
}Generate an image from a text prompt with a style and aspect ratio. Returns { generatedImage }. Cost: 3 credits. For a choice of image models use create_image.
| Argument | Type | Description |
|---|---|---|
| style | string | Style (default photorealistic) |
| prompt* | string | Text description of the image (max 2000 chars) |
| aspectRatio | string | Aspect ratio (default 1:1) |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"style": {
"enum": [
"photorealistic",
"digital-art",
"oil-painting",
"watercolor",
"anime",
"fantasy",
"minimal"
],
"type": "string",
"description": "Style (default photorealistic)"
},
"prompt": {
"type": "string",
"description": "Text description of the image (max 2000 chars)"
},
"aspectRatio": {
"enum": [
"1:1",
"16:9",
"9:16",
"4:3",
"3:2"
],
"type": "string",
"description": "Aspect ratio (default 1:1)"
}
}
}Unfollow a user. Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | UUID of user to unfollow |
{
"type": "object",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "UUID of user to unfollow"
}
}
}Remove a like from an artwork. Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| artwork_id* | string | Artwork UUID to unlike |
{
"type": "object",
"required": [
"artwork_id"
],
"properties": {
"artwork_id": {
"type": "string",
"description": "Artwork UUID to unlike"
}
}
}Update the authenticated user's profile (username, bio, avatar_url). Requires auth + 'write' scope.
| Argument | Type | Description |
|---|---|---|
| bio | string | Bio text (max 300 chars) |
| username | string | Display name (max 30 chars) |
| avatar_url | string | URL to avatar image |
{
"type": "object",
"properties": {
"bio": {
"type": "string",
"description": "Bio text (max 300 chars)"
},
"username": {
"type": "string",
"description": "Display name (max 30 chars)"
},
"avatar_url": {
"type": "string",
"description": "URL to avatar image"
}
}
}Upscale an image 1–6x with Topaz Gigapixel AI. Returns { image }. Cost: 3 credits.
| Argument | Type | Description |
|---|---|---|
| image* | string | Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL |
| model | string | Topaz model (default Standard V2) |
| scale | number | Upscale factor from 1 to 6 (default 2) |
| denoise | number | Denoise amount 0–1 (default 0) |
| sharpen | number | Sharpen amount 0–1 (default 0) |
| fixCompression | number | Compression artifact removal 0–1 (default 0) |
| faceEnhancement | boolean | Enhance faces (default false) |
| faceEnhancementStrength | number | Face enhancement strength 0–1 (default 0.5) |
{
"type": "object",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"description": "Image as a base64 data URI (data:image/png;base64,…) or an HTTPS image URL"
},
"model": {
"enum": [
"Standard V2",
"Low Resolution V2",
"High Fidelity V2",
"CGI",
"Text Refine",
"Standard",
"Strong",
"Lens Blur V2",
"Motion Blur",
"Natural",
"Normal",
"Extreme"
],
"type": "string",
"description": "Topaz model (default Standard V2)"
},
"scale": {
"type": "number",
"description": "Upscale factor from 1 to 6 (default 2)"
},
"denoise": {
"type": "number",
"description": "Denoise amount 0–1 (default 0)"
},
"sharpen": {
"type": "number",
"description": "Sharpen amount 0–1 (default 0)"
},
"fixCompression": {
"type": "number",
"description": "Compression artifact removal 0–1 (default 0)"
},
"faceEnhancement": {
"type": "boolean",
"description": "Enhance faces (default false)"
},
"faceEnhancementStrength": {
"type": "number",
"description": "Face enhancement strength 0–1 (default 0.5)"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| plugins | object | Optional effects (the Create page's Plugins & Effects). |
| customPrompt | string | Free-form description of what to create (max 2000 chars). Required when no images are given. |
{
"type": "object",
"properties": {
"model": {
"enum": [
"nano-banana-2",
"nano-banana-pro",
"nano-banana-2-lite",
"nano-banana",
"gpt-image-2.6-flare",
"gpt-image-2.6-sunburst",
"gpt-image-2.5-flare",
"gpt-image-2.5-sunburst",
"gpt-image",
"gpt-image-mini",
"flux-3",
"flux-3-klein",
"mai-image-2.6",
"grok-imagine-2",
"seedream-5-pro",
"muse-image",
"minimax-h3",
"recraft-v4.1"
],
"type": "string",
"description": "Image model: 'nano-banana-2' (Gemini 3.1 Flash Image, default), 'nano-banana-pro' (Gemini 3 Pro Image), 'nano-banana-2-lite' (Gemini 3.1 Flash-Lite Image, fast and cheap), 'nano-banana' (Gemini 2.5 Flash Image), 'gpt-image-2.6-flare' (OpenAI GPT Image 2.6 Flare, newest, fast), 'gpt-image-2.6-sunburst' (OpenAI GPT Image 2.6 Sunburst, careful edits, about 50s), 'gpt-image-2.5-flare' and 'gpt-image-2.5-sunburst' (OpenAI GPT Image 2.5, previous generation), 'gpt-image' (OpenAI GPT Image 2), 'gpt-image-mini' (OpenAI GPT Image 1 Mini), 'flux-3' (Black Forest Labs FLUX 3), 'flux-3-klein' (FLUX 3 Klein, fastest and cheapest), 'mai-image-2.6' (Microsoft MAI-Image 2.6, precise edits), 'grok-imagine-2' (xAI Grok Imagine Image 2.0), 'seedream-5-pro' (ByteDance Seedream 5.0 Pro, slower), 'muse-image' (Meta Muse Image 1.0, blends photos), 'minimax-h3' (MiniMax H3 Image, open weights, many references), 'recraft-v4.1' (Recraft V4.1, design and illustration; text only, no reference images)."
},
"images": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: 0–5 reference images, each as a base64 data URI or HTTPS image URL. Omit for pure text-to-image (customPrompt is then required)."
},
"preset": {
"enum": [
"none",
"polaroid",
"vintage",
"watercolor",
"oilpainting",
"sketch",
"popart",
"cyberpunk",
"anime"
],
"type": "string",
"description": "Style preset applied to the images and/or prompt (default none)."
},
"plugins": {
"type": "object",
"properties": {
"caption": {
"type": "string",
"description": "Handwritten caption added at the bottom of the image"
},
"frameColor": {
"type": "string",
"description": "Polaroid frame color (polaroid preset only; default white)"
},
"grainIntensity": {
"type": "string",
"description": "'heavy' adds pronounced film grain"
},
"vignetteStrength": {
"type": "string",
"description": "'strong' adds a dramatic vignette"
}
},
"description": "Optional effects (the Create page's Plugins & Effects)."
},
"customPrompt": {
"type": "string",
"description": "Free-form description of what to create (max 2000 chars). Required when no images are given."
}
}
}