OpenAI Tools MCP Server

Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.

Should I use this

Quality & Safety

A
Description quality
82%
Schema completeness
79%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'createTranscription' description lacks action verbin createTranscription
  • LOWTool 'createTranslation' description lacks action verbin createTranslation

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,024Tokens (tool definitions)
~2.4 KBTypical response size
Moderate attention impact (1.58% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "openai-tools": {
      "url": "https://openai-tools.run.mcp.com.ai/mcp"
    }
  }
}

Remote endpoints

https://openai-tools.run.mcp.com.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪createImage(createImageBody, x-hapi-auth-state)

Creates an image given a prompt.

Input Schema

{
  "type": "object",
  "properties": {
    "createImageBody": {
      "type": "object",
      "properties": {
        "prompt": {
          "type": "string",
          "description": "A text description of the desired image(s). The maximum length is 1000 characters."
        },
        "n": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "The number of images to generate. Must be between 1 and 10."
        },
        "size": {
          "type": "string",
          "enum": [
            "256x256",
            "512x512",
            "1024x1024"
          ],
          "description": "The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`."
        },
        "response_format": {
          "type": "string",
          "enum": [
            "url",
            "b64_json"
          ],
          "description": "The format in which the generated images are returned. Must be one of `url` or `b64_json`."
        },
        "user": {
          "type": "string",
          "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n"
        }
      },
      "required": [
        "prompt"
      ]
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "createImageBody"
  ]
}
⚪createImageEdit(createImageEditBody, x-hapi-auth-state)

Creates an edited or extended image given an original image and a prompt.

Input Schema

{
  "type": "object",
  "properties": {
    "createImageEditBody": {
      "type": "object",
      "properties": {
        "image": {
          "type": "string",
          "format": "binary",
          "description": "The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask."
        },
        "mask": {
          "type": "string",
          "format": "binary",
          "description": "An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`."
        },
        "prompt": {
          "type": "string",
          "description": "A text description of the desired image(s). The maximum length is 1000 characters."
        },
        "n": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "The number of images to generate. Must be between 1 and 10."
        },
        "size": {
          "type": "string",
          "enum": [
            "256x256",
            "512x512",
            "1024x1024"
          ],
          "description": "The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`."
        },
        "response_format": {
          "type": "string",
          "enum": [
            "url",
            "b64_json"
          ],
          "description": "The format in which the generated images are returned. Must be one of `url` or `b64_json`."
        },
        "user": {
          "type": "string",
          "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n"
        }
      },
      "required": [
        "prompt",
        "image"
      ]
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "createImageEditBody"
  ]
}
⚪createImageVariation(createImageVariationBody, x-hapi-auth-state)

Creates a variation of a given image.

Input Schema

{
  "type": "object",
  "properties": {
    "createImageVariationBody": {
      "type": "object",
      "properties": {
        "image": {
          "type": "string",
          "format": "binary",
          "description": "The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square."
        },
        "n": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "The number of images to generate. Must be between 1 and 10."
        },
        "size": {
          "type": "string",
          "enum": [
            "256x256",
            "512x512",
            "1024x1024"
          ],
          "description": "The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`."
        },
        "response_format": {
          "type": "string",
          "enum": [
            "url",
            "b64_json"
          ],
          "description": "The format in which the generated images are returned. Must be one of `url` or `b64_json`."
        },
        "user": {
          "type": "string",
          "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).\n"
        }
      },
      "required": [
        "image"
      ]
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "createImageVariationBody"
  ]
}
⚪createTranscription(createTranscriptionBody, x-hapi-auth-state)

Transcribes audio into the input language.

Input Schema

{
  "type": "object",
  "properties": {
    "createTranscriptionBody": {
      "type": "object",
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "description": "The audio file object (not file name) to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.\n"
        },
        "model": {
          "type": "string",
          "description": "ID of the model to use. Only `whisper-1` is currently available.\n"
        },
        "prompt": {
          "type": "string",
          "description": "An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.\n"
        },
        "response_format": {
          "type": "string",
          "description": "The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.\n"
        },
        "temperature": {
          "type": "number",
          "description": "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.\n"
        },
        "language": {
          "type": "string",
          "description": "The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format will improve accuracy and latency.\n"
        }
      },
      "required": [
        "file",
        "model"
      ],
      "additionalProperties": false
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "createTranscriptionBody"
  ]
}
⚪createTranslation(createTranslationBody, x-hapi-auth-state)

Translates audio into English.

Input Schema

{
  "type": "object",
  "properties": {
    "createTranslationBody": {
      "type": "object",
      "properties": {
        "file": {
          "type": "string",
          "format": "binary",
          "description": "The audio file object (not file name) translate, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.\n"
        },
        "model": {
          "type": "string",
          "description": "ID of the model to use. Only `whisper-1` is currently available.\n"
        },
        "prompt": {
          "type": "string",
          "description": "An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.\n"
        },
        "response_format": {
          "type": "string",
          "description": "The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.\n"
        },
        "temperature": {
          "type": "number",
          "description": "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.\n"
        }
      },
      "required": [
        "file",
        "model"
      ],
      "additionalProperties": false
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "createTranslationBody"
  ]
}
⚪listModels(x-hapi-auth-state)

Lists the currently available models, and provides basic information about each one such as the owner and availability.

Input Schema

{
  "type": "object",
  "properties": {
    "x-hapi-auth-state": {
      "type": "string"
    }
  }
}
⚪retrieveModel(model, x-hapi-auth-state)

Retrieves a model instance, providing basic information about the model such as the owner and permissioning.

Input Schema

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string"
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "model"
  ]
}
🔴deleteModel(model, x-hapi-auth-state)

Delete a fine-tuned model. You must have the Owner role in your organization.

Input Schema

{
  "type": "object",
  "properties": {
    "model": {
      "type": "string"
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "model"
  ]
}
⚪createModeration(createModerationBody, x-hapi-auth-state)

Classifies if text violates OpenAI's Content Policy

Input Schema

{
  "type": "object",
  "properties": {
    "createModerationBody": {
      "type": "object",
      "properties": {
        "input": {
          "type": "string",
          "description": "The input text to classify"
        },
        "model": {
          "type": "string",
          "description": "Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`.\n\nThe default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`.\n"
        }
      },
      "required": [
        "input"
      ]
    },
    "x-hapi-auth-state": {
      "type": "string"
    }
  },
  "required": [
    "createModerationBody"
  ]
}

Recommended Prompts

list_items
List all [items] available in OpenAI Tools MCP Server
Expected tools: listModels
browse_collection
Show me the [collection] from OpenAI Tools MCP Server
Expected tools: listModels

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools