openai-mcp-server
openai-mcp-server
OpenAI API をあらゆる MCP クライアント(Claude Desktop、Claude Code、Cowork、Cursor、その他このプロトコルを話すあらゆるクライアント)に提供する MCP サーバーです。
9つのツールがあります: テキスト生成、チャット補完、モデル一覧取得、画像生成と編集、文字起こし、音声合成、埋め込み、モデレーションです。
なぜ存在するのか
Claude プラグインカタログには公式の OpenAI プラグインはありません。このサーバーはその同等品であり、あなたが所有し拡張できる通常のオープンソースプロジェクトとして構築されています。
Related MCP server: OpenAI Assistant MCP Server
ツール
ツール | 説明 | 読み取り専用 |
| Responses API によるテキスト生成 — 指示、推論努力量、JSON の強制、レスポンスチェーン | いいえ |
| Chat Completions を用いて明示的なメッセージ履歴を送信 | いいえ |
| 自分のキーで利用できるモデル ID 一覧を、フィルタリング・ページング付きで表示 | はい |
| プロンプトから画像を生成してディスクに保存 | いいえ |
| 既存画像の編集・合成(任意でマスク指定可能) | いいえ |
| ローカルの音声ファイルを文字起こし | いいえ |
| 音声を合成して音声ファイルに書き出す | いいえ |
| セマンティック検索用にテキストを埋め込み、JSON に保存 | いいえ |
| 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.jsonWindows:
%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 キー |
| OpenAI のデフォルト | 代替エンドポイント (Azure、gateway、proxy) |
| — | 組織 ID |
| — | プロジェクト ID |
|
| 生成ファイルの書き出し先 |
| 出力ディレクトリのみ | サーバーが読み取りできる絶対ディレクトリ (コロン区切り) |
|
| リクエストごとのタイムアウト |
|
| 一時的なエラーに対するリトライ回数 |
|
| デフォルトのテキストモデル |
|
| デフォルトの画像モデル |
|
| デフォルトの埋め込みモデル |
|
| デフォルトの文字起こしモデル |
|
| デフォルトの音声合成モデル |
|
| デフォルトのモデレーションモデル |
モデル ID は変わります。 OpenAI はモデルの追加・名前変更・廃止を行い、アクセスはプロジェクトごとに異なります。どのデフォルトも上書き可能であり、openai_list_models はあなたのキーが実際に利用可能なモデルを報告します — 「model not found」で呼び出しに失敗した場合は、まずそこを確認してください。
セキュリティモデル
意図的に2つの制約を課しています:
ファイルシステムはサンドボックス化されています。 ローカルファイルを読むツール (openai_edit_image、openai_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
ツールの追加方法
各フィールドに対して
.strict()と.describe()を持つ Zod スキーマを記述します。server.registerTool(name, config, handler)で登録します —title、description、inputSchema、outputSchema、annotationsを含めます。Markdown/JSON の処理と文字数制限を一貫させるために
toolResult(...)でレスポンスを返し、エラーはerrorResult(...)で catch します。登録呼び出しを
src/index.tsに、テストをtest/に追加します。
トラブルシューティング
症状 | 原因 |
クライアントにツールが表示されない | 設定のパスが間違っている、またはプロジェクトが未ビルド ( |
| クライアントの |
| パスが |
生成時に | あなたのキーにはモデル ID が存在しない — |
| 後で再試行するか、プロジェクトの課金状態を確認 |
サーバーログは stderr に出力されます。stdout は JSON-RPC ストリームを通しますので、常にクリーンである必要があります。
ライセンス
MIT — LICENSE を参照してください。
This server cannot be installed
Maintenance
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
- FlicenseBqualityDmaintenanceEnables interaction with OpenAI's Chat Completion and Assistants APIs, supporting assistant management, file operations, and direct queries to GPT models through standardized MCP tools.92
- AlicenseAqualityCmaintenanceProvides 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.1103MIT
- AlicenseBqualityDmaintenanceEnables MCP-compatible clients to leverage OpenAI's multimodal capabilities (vision, image generation, speech-to-text, text-to-speech) through file-oriented tools with a security-first architecture.101MIT
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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