Skip to main content
Glama
recraft-ai

Recraft AI MCP Server

Official

creative_upscale

Enhance image quality by upscaling resolution and refining details, especially for faces, using advanced Recraft AI technology. Accepts image URLs or local paths for processing.

Instructions

Creative upscale of the input image using Recraft. This operation takes an input image and returns an upscaled image, boosting resolution with a focus on refining small details and faces. This version of upscale is expensive and slower than crisp upscale. Local path or URL to resulting image and its preview will be returned in the response.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imageURIYesImage to use as an input. This can be a URL (starting with http:// or https://) or an absolute file path (starting with file://).

Implementation Reference

  • Tool definition with name, description, and input schema for creative_upscale.
    export const creativeUpscaleTool = {
      name: "creative_upscale",
      description: "Creative upscale of the input image using Recraft.\n" +
        "This operation takes an input image and returns an upscaled image, boosting resolution with a focus on refining small details and faces.\n" +
        "This version of upscale is expensive and slower than crisp upscale.\n" +
        "Local path or URL to resulting image and its preview will be returned in the response.",
      inputSchema: {
        type: "object",
        properties: {
          imageURI: PARAMETERS.imageURI,
        },
        required: ["imageURI"]
      }
    }
  • Handler function that validates args, downloads image, calls Recraft API creativeUpscale, and returns formatted result or error.
    export const creativeUpscaleHandler = async (server: RecraftServer, args: Record<string, unknown>): Promise<CallToolResult> => {
      try {
        const { imageURI } = z.object({
          imageURI: z.string(),
        }).parse(args)
    
        const imageData = await downloadImage(imageURI)
    
        const result = await server.api.imageApi.creativeUpscale({
          image: await imageDataToBlob(imageData),
          responseFormat: 'url',
          expire: server.isLocalResultsStorage,
        })
    
        return await server.transformSingleImageOperationToCallToolResult(result.image, 'Creative upscale completed.')
      } catch (error) {
        return {
          content: [
            {
              type: 'text',
              text: `Creative upscale error: ${error}`
            }
          ],
          isError: true
        }
      }
    }
  • src/index.ts:68-82 (registration)
    Registers creativeUpscaleTool in the MCP listTools response.
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: [
          generateImageTool,
          createStyleTool,
          vectorizeImageTool,
          imageToImageTool,
          removeBackgroundTool,
          replaceBackgroundTool,
          crispUpscaleTool,
          creativeUpscaleTool,
          getUserTool,
        ],
      }
    })
  • src/index.ts:116-117 (registration)
    Dispatches calls to creative_upscale to the corresponding handler in the MCP callTool handler.
    case creativeUpscaleTool.name:
      return await creativeUpscaleHandler(recraftServer, args ?? {})
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits like being 'expensive and slower' and mentions the output format ('Local path or URL to resulting image and its preview'). However, it lacks details on rate limits, authentication needs, or error handling.

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

Conciseness4/5

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

The description is appropriately sized with four sentences that are front-loaded with purpose and usage guidance. Each sentence adds value, though it could be slightly more streamlined by combining related points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (image processing with performance trade-offs), no annotations, and no output schema, the description is moderately complete. It covers purpose, usage, and output format but lacks details on error cases, limitations, or exact performance metrics.

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?

The schema description coverage is 100%, so the schema already documents the single parameter 'imageURI' thoroughly. The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the specific action ('creative upscale'), resource ('input image'), and technology ('using Recraft'), distinguishing it from sibling tools like 'crisp_upscale' by emphasizing its creative focus on refining details and faces.

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 description provides clear context by noting this is 'expensive and slower than crisp upscale,' which helps guide when to use it versus alternatives. However, it doesn't explicitly state when not to use it or name other specific alternatives beyond the implied comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Related Tools

Latest Blog Posts

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/recraft-ai/mcp-recraft-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server