Skip to main content
Glama

openai-mcp-server

MCP-сервер, который подключает OpenAI API к любому MCP-клиенту — Claude Desktop, Claude Code, Cowork, Cursor или любому другому, работающему с этим протоколом.

Девять инструменттов: генерация текста, chat completions, обнаружение моделей, генерация и редактироввание изображений, Driver... transscription... Wait, let's correct.

Actually need to produce carefully. Let's re-write.

We need to produce translation with correct Russian. I'm going to write final carefully.# openai-mcp-server

MCP-сервер, который подключает OpenAI API к любому MCP-клиенту — Claude Desktop, Claude Code, Cowork, Cursor или любому другому, поддерживающему этот протокол.

Девять инструментов: генерация текста, chat completions, обнаружение моделей, генерация и редактирование изображений, транскрибация, синтез речи, эмбеддинги и модерация.

Зачем это существует

В каталоге плагинов Claude нет официального плагина OpenAI. Этот сервер — его аналог, созданный как обычный open-source-проект, который принадлежит вам и который можно расширять.

Related MCP server: OpenAI Assistant MCP Server

Инструменты

Инструмент

Что делает

Только чтение

openai_generate_text

Генерация текста через Responses API — инструкции, уровень рассуждений, принудительный JSON, цепочки ответов

нет

openai_chat_completion

Отправка явной истории сообщений через Chat Completions

нет

openai_list_models

Список идентификаторов моделей, доступных вашему ключу, с фильтрацией и пагинацией

да

openai_generate_image

Создание изоборожений по промпту с сохранением на диск

нет

openai_edit_image

Редактирование или совмещение существующих изображений, опционально с маской

нет

openai_transcribe_audio

Транскрибация локального аудиофайла

нет

openai_text_to_speech

Синтез речи в аудиофайл

нет

openai_create_embeddings

Эмбеддин текста для семантического поиска, с сохронением в JSO

нет

openai_moderate_content

Проверка текста на соответствие полтике модеации OpenAI

да

Каждый инструмент принимает response_format: "markdown" | "json" — markdown для чтения, json для обработки. Все инструменты также возвронют structuredContent, так клиенты, поониющие схемы вывода, полутот типизированнные даннные без раобра.

Требование

  • Node.js 20 или новее

  • Клю OpenAI API с доступной квотой

Установка

git clone <your-repo-url> openai-mcp-server
cd openai-mcp-server
npm install
npm run build

Сперите сбор ка:

node dist/index.js --version   # prints 1.0.0
node dist/index.js --help      # lists all environment variables

Настройка MCP-клиента

Сервер общается по MCP через stdio, так клиент запускает его как подпроцесс.

Claude Desktop

Отредактируйти claude_desktop_config.json:

| macO | ~/Library/Application Support/Claude/claude_desktop_config.json | Windows | %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "openai": {
      "command": "node",
      "args": ["/absolute/path/to/openai-mcp-server/dist/index.js"],
      "env": {
        "OPENAI_API_KEY": "sk-proj-...",
        "OPENAI_MCP_OUTPUT_DIR": "/Users/you/openai-mcp-output"
      }
    }
  }
}

После этого перезапустите Claude Desktop.

Claude Code

claude mcp add openai \
  --env OPENAI_API_KEY=sk-proj-... \
  -- node /absolute/path/to/openai-mcp-server/dist/index.js

Любой другой MCP-клиент

Укажи те ему node /absolute/path/to/dist/index.js с OPENAI_API_KEY в окружении.

Конфигурация

Требуется только OPENAI_API_KEY. Шаблон для копирования — в .env.example.

Переменная

По умолчанию

Назначение

OPENAI_API_KEY

Обязательно. Ваш ключ OpenAI API

OPENAI_BASE_URL

OpenAI по умолчанию

Альтернативная конечная точка (Azure, шлюз, прокси)

OPENAI_ORG_ID

Идентификатор организации

OPENAI_PROJECT_ID

Идентификатор проекта

OPENAI_MCP_OUTPUT_DIR

<tmp>/openai-mcp

Каталог, куда записываются созданные файлы

OPENAI_MCP_ALLOWED_DIRS

только каталог вывода

Абсолютные каталоги через двоеточие, из которых сервер может читать

OPENAI_MCP_TIMEOUT_MS

120000

Таймаут на запрос

OPENAI_MCP_MAX_RETRIES

2

Повторы при временных сбоях

OPENAI_DEFAULT_TEXT_MODEL

gpt-5.6-terra

Текстовая модель по умолчанию

OPENAI_DEFAULT_IMAGE_MODEL

gpt-image-2

Модель изображений по умолчанию

OPENAI_DEFAULT_EMBEDDING_MODEL

text-embedding-3-small

Модель эмбеддингов по умолчанию

OPENAI_DEFAULT_TRANSCRIPTION_MODEL

gpt-transcribe

Модель транскрибации по умолчанию

OPENAI_DEFAULT_SPEECH_MODEL

gpt-4o-mini-tts

Модель речи по умолчанию

OPENAI_DEFAULT_MODERATION_MODEL

omni-moderation-latest

Модель модерации по умолчанию

Идентификаторы моделей меняются. OpenAI добавляет, переименовывает и снимает модели, а доступ различается от проекта к проекту. Каждое значение по умолчанию можно переопределить, а openai_list_models сообщает, к чему ваш ключ действительно может обращаться. Если вызов завершается с ошибкой «model not found» — начинайте с этого инструмента.

Модель безопасности

Два намеренных ограничения:

Файловая система находится в песочнице. Инструменты, которые читают локальные файлы (openai_edit_image, openai_transcribe_audio), принимают только абсолютные пути внутри OPENAI_MCP_ALLOWED_DIRS. Перед проверкой пути канонизируются через realpath, чтобы символьные ссылки и обход через ../ не могли выйти за пределы. Каталог вывода разрешён всегда; всё остальное — нет, пока вы это не добавите. Держите этот список узким.

Бинарный вывод никогда не попадает в разговор. Изображения, аудио и векторы эмбеддингов записываются на диск, а возвращаются только их пути. В противном случае одно base64-изображение PNG или вектор из 3072 чисел заполонили бы контекстное окно модели.

Ключ API читается только из окружения — он никогда не попадает в аргументы инструмента, в строку лога или в сообщение об ошибке.

Примеры

Попросите ваш MCP-клиент на обычном языке; инструмент он выберет сам.

«Используйте сервер OpenAI, чтобы кратко изложить этот текст в трёх предложениях.»

openai_generate_text

«Какие модели эмбеддингов OpenAI я могу использовать?»

openai_list_models с filter="embedding"

«Создайте прозрачный PNG-логотип с синим лисом.»

openai_generate_image с background="transparent"

«Траскрибируй ~/Documents/audio/interview.m4a на жабском.»

openai_transcribe_audio с language="de" — требуется, чтобы этот каталог был в OPENAI_MCP_ALLOWED_DIRS

«Создай эмбеддинги для этиx 40 описаний товаров, чтобы я мог их кластеризовать.»

OPENAI_MCP_ALLOWED_DIRS ... Actually: → openai_create_embeddings, затем читать JSON-файл, который он укажет.

Разработ ка

npm run dev        # watch mode via tsx
npm run typecheck  # tsc --noEmit, strict
npm test           # unit tests, no network calls
npm run build      # compile to dist/

Тестовый набор покрывает разбор конфигурации, файловую песочницу (включая побег через симлин и обход каталогов), форматирование ошибок и формирование ответов. Он никогда не обращается к OpenAI API.

Структура проекта

src/
├── index.ts          entry point, server assembly, CLI flags
├── config.ts         environment parsing and validation
├── client.ts         OpenAI client construction
├── constants.ts      defaults, limits, response formats
├── errors.ts         API errors → actionable agent messages
├── files.ts          sandboxed read/write
├── format.ts         tool result shaping, character limit
└── tools/
    ├── text.ts       generate_text, chat_completion
    ├── models.ts     list_models
    ├── images.ts     generate_image, edit_image
    ├── audio.ts      transcribe_audio, text_to_speech
    └── analysis.ts   create_embeddings, moderate_content

Добавление инструмента

  1. Напишите схему Zod с .strict() и .describe() для каждого поля.

  2. Зарегистрируйте инструмент через server.registerTool(name, config, handler) — укажите title, description, inputSchema, outputSchema и annotations.

  3. Возвращайте результат через toolResult(...), чтобы обработка markdown/JSON и лимит символов оставались согласованными; перехватывайте ошибки через errorResult(...).

  4. Добавьте вызов регистрации в src/index.ts и тест в test/.

Устранение неполадок

Симптом

Причина

Клиент не показывает инструменты

Неверный путь в конфигурации или проект не собран командой npm run build

Configuration error: OPENAI_API_KEY is not set (exit 78)

Ключ отсутствует в блоке env клиента

Error: Access to ... is not permitted

Путь находится за пределами OPENAI_MCP_ALLOWED_DIRS

Error: Not found при генерации

Идентификатор модели не существует для вашего ключа — запустите openai_list_models

Error: Rate limit or quota exceeded

Повторите позже или проверьте баланс/квоту в проекте

Сервер пишет логи в stderr; stdout несёт поток JSON-RPC и должен оставаться чистым.

Лицензия

MIT — см. LICENSE.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • -
    license
    C
    quality
    Not graded
    maintenance
    Enables interaction with OpenAI-compatible APIs (like Ollama) through MCP tools. Provides access to chat completions, model listings, and embeddings generation from local or remote OpenAI-style endpoints.
    3
  • A
    license
    A
    quality
    C
    maintenance
    Provides access to OpenAI's ChatGPT API with web search capabilities for Claude and other MCP clients. Supports various GPT models with configurable parameters like reasoning effort, temperature, and streaming mode.
    1
    10
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Connect MCP clients to 2,000+ AI models without managing provider API keys.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

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/piorkowskim79/openai-mcp-server'

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