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
Findings (2)
- LOWin createTranscription
- LOWin createTranslation
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (9)
⚪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
listModelslistModelsCommunity
Evidence