Skip to main content
Glama

openai-mcp-server

OpenAI API をあらゆる MCP クライアント(Claude Desktop、Claude Code、Cowork、Cursor、その他このプロトコルを話すあらゆるクライアント)に提供する MCP サーバーです。

9つのツールがあります: テキスト生成、チャット補完、モデル一覧取得、画像生成と編集、文字起こし、音声合成、埋め込み、モデレーションです。

なぜ存在するのか

Claude プラグインカタログには公式の OpenAI プラグインはありません。このサーバーはその同等品であり、あなたが所有し拡張できる通常のオープンソースプロジェクトとして構築されています。

Related MCP server: OpenAI Assistant MCP Server

ツール

ツール

説明

読み取り専用

openai_generate_text

Responses API によるテキスト生成 — 指示、推論努力量、JSON の強制、レスポンスチェーン

いいえ

openai_chat_completion

Chat Completions を用いて明示的なメッセージ履歴を送信

いいえ

openai_list_models

自分のキーで利用できるモデル ID 一覧を、フィルタリング・ページング付きで表示

はい

openai_generate_image

プロンプトから画像を生成してディスクに保存

いいえ

openai_edit_image

既存画像の編集・合成(任意でマスク指定可能)

いいえ

openai_transcribe_audio

ローカルの音声ファイルを文字起こし

いいえ

openai_text_to_speech

音声を合成して音声ファイルに書き出す

いいえ

openai_create_embeddings

セマンティック検索用にテキストを埋め込み、JSON に保存

いいえ

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
{
  "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"
      }
    }
  }
}

MCP クライアントの設定

サーバーは stdio 上で MCP を話すため、クライアントはサブプロセスとしてサーバーを起動します。

Claude Desktop

claude_desktop_config.json を編集します:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

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

その後、Claude Desktop を再起動します。

Claude Code

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/

その他の MCP クライアント

OPENAI_API_KEY を環境に設定した上で、node /absolute/path/to/dist/index.js をサーバーとして指定してください。

設定

必要になるのは OPENAI_API_KEY のみです。コピーして利用できるテンプレートは .env.example にあります。

変数

デフォルト

目的

OPENAI_API_KEY

必須。 あなたの OpenAI API キー

OPENAI_BASE_URL

OpenAI のデフォルト

代替エンドポイント (Azure、gateway、proxy)

OPENAI_ORG_ID

組織 ID

OPENAI_PROJECT_ID

プロジェクト 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

デフォルトのモデレーションモデル

モデル ID は変わります。 OpenAI はモデルの追加・名前変更・廃止を行い、アクセスはプロジェクトごとに異なります。どのデフォルトも上書き可能であり、openai_list_models はあなたのキーが実際に利用可能なモデルを報告します — 「model not found」で呼び出しに失敗した場合は、まずそこを確認してください。

セキュリティモデル

意図的に2つの制約を課しています:

ファイルシステムはサンドボックス化されています。 ローカルファイルを読むツール (openai_edit_imageopenai_transcribe_audio) は、OPENAI_MCP_ALLOWED_DIRS 内の絶対パスのみを受け付けます。パスはチェック前に realpath で正規化されるため、シンボリックリンクや ../ による遷移で外に抜け出すことはできません。出力ディレクトリは常に許可されますが、それ以外はあなたが追加するまで許可されません。このリストは狭く維持してください。

バイナリ出力が会話に入り込むことはありません。 画像・音声・埋め込みベクトルはディスクに保存され、返されるのは同じパスのみです。base64 PNG 1枚や3072個の float ベクトルが返されると、モデルのコンテキストウィンドウを圧迫してしまうからです。

API キーは環境変数からのみ読み取られます — ツールの引数、ログ行、エラーメッセージに現れることは決してありません。

MCP クライアントに自然言語で指示すると、クライアントがツールを選択します。

「OpenAI サーバーを使って、このテキストを3文で要約してください。」

OpenAI generate_code_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 に含まれている必要があります

「これらの40個の製品説明を埋め込みして、クラスタリングできるようにして。」

openai_create_embeddings を使用後、報告された JSON ファイルを読み取ります

開発

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

テストスイートは、設定ファイルの解析、ファイルシステムサンドボックス (シンボリックリンクによる任意脱出やトラバーサルを含む)、エラーフォーマット、レスポンス整形をカバーしています。OpenAI API には一切接続しません。

プロジェクト構成

GXP7

ツールの追加方法

  1. 各フィールドに対して .strict().describe() を持つ Zod スキーマを記述します。

  2. server.registerTool(name, config, handler) で登録します — titledescriptioninputSchemaoutputSchemaannotations を含めます。

  3. Markdown/JSON の処理と文字数制限を一貫させるために toolResult(...) でレスポンスを返し、エラーは errorResult(...) で catch します。

  4. 登録呼び出しを src/index.ts に、テストを test/ に追加します。

トラブルシューティング

症状

原因

クライアントにツールが表示されない

設定のパスが間違っている、またはプロジェクトが未ビルド (npm run build)

Configuration error: OPENAI_API_KEY is not set (終了コード 78)

クライアントの env ブロックにキーが存在しない

Error: Access は許可されていません

パスが OPENAI_TIMEOUT_DIR の外にある

生成時に Error: Not found

あなたのキーにはモデル ID が存在しない — 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