Just Prompt - A lightweight MCP server for LLM providers について
just-prompt は、OpenAI、Anthropic、Google Gemini、Groq、DeepSeek、Ollama に統一的なインターフェースを提供する軽量の MCP サーバーです。同じプロンプトを複数のモデルに並列に送信し、応答をファイルに保存できます。
主な機能
- 016 つの LLM プロバイダーへの統一インターフェース
- 02複数モデルへのプロンプトの並列送信
- 03文字列またはファイルからのプロンプト読み込み
- 04応答の Markdown ファイルへの保存
- 05推論強度と思考トークンのサフィックス指定
活用シーン
- 01同一の質問に対する複数モデルの回答の比較
- 02ボードメンバーのモデルの応答を基に CEO モデルで判断
- 03ファイルに記述したプロンプトの複数モデルへの一括送信
MCP 対応
本プロジェクトは MCP サーバーであり、prompt、prompt_from_file、ceo_and_board、list_models などのツールを MCP クライアントに公開します。モデルはプロバイダー接頭辞で指定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Just Prompt - LLM プロバイダー向けの軽量 MCP サーバー
just-prompt は、OpenAI、Anthropic、Google Gemini、Groq、DeepSeek、Ollama など、さまざまな大規模言語モデル(LLM)プロバイダーに統一されたインターフェースを提供する Model Control Protocol(MCP)サーバーです。ceo_and_board ツールを使って、o3 で難しい意思決定を簡単にする方法はこちらをご覧ください。
ツール
サーバーでは、次の MCP ツールを利用できます。
-
prompt:複数の LLM モデルにプロンプトを送信します- パラメーター:
text:プロンプトのテキストmodels_prefixed_by_provider(任意):プロバイダーのプレフィックスが付いたモデルのリストです。指定しない場合は、デフォルトのモデルを使用します。
- パラメーター:
-
prompt_from_file:ファイルから複数の LLM モデルにプロンプトを送信します- パラメーター:
abs_file_path:プロンプトを含むファイルの絶対パス(相対パスではなく、絶対パスを指定する必要があります)models_prefixed_by_provider(任意):プロバイダーのプレフィックスが付いたモデルのリストです。指定しない場合は、デフォルトのモデルを使用します。
- パラメーター:
-
prompt_from_file_to_file:ファイルから複数の LLM モデルにプロンプトを送信し、応答を Markdown ファイルとして保存します- パラメーター:
abs_file_path:プロンプトを含むファイルの絶対パス(相対パスではなく、絶対パスを指定する必要があります)models_prefixed_by_provider(任意):プロバイダーのプレフィックスが付いたモデルのリストです。指定しない場合は、デフォルトのモデルを使用します。abs_output_dir(デフォルト:「.」):応答の Markdown ファイルを保存するディレクトリの絶対パス(相対パスではなく、絶対パスを指定する必要があります)
- パラメーター:
-
ceo_and_board:「取締役」モデルにプロンプトを送信し、その応答に基づいて「CEO」モデルが判断を下します- パラメーター:
abs_file_path:プロンプトを含むファイルの絶対パス(相対パスではなく、絶対パスを指定する必要があります)models_prefixed_by_provider(任意):取締役として動作する、プロバイダーのプレフィックスが付いたモデルのリストです。指定しない場合は、デフォルトのモデルを使用します。abs_output_dir(デフォルト:「.」):応答ファイルと CEO の判断を保存するディレクトリの絶対パス(相対パスではなく、絶対パスを指定する必要があります)ceo_model(デフォルト:「openai:o3」):CEO の判断に使用するモデル。「provider:model」の形式で指定します。
- パラメーター:
-
list_providers:利用可能なすべての LLM プロバイダーを一覧表示します- パラメーター:なし
-
list_models:特定の LLM プロバイダーで利用可能なすべてのモデルを一覧表示します- パラメーター:
provider:モデルを一覧表示するプロバイダー(例:「openai」または「o」)
- パラメーター:
プロバイダーのプレフィックス
すべてのモデルには、プロバイダー名のプレフィックスを付ける必要があります
よりすばやく指定するには、短縮名を使用します
oまたはopenai:OpenAIo:gpt-4o-miniopenai:gpt-4o-mini
aまたはanthropic:Anthropica:claude-3-5-haikuanthropic:claude-3-5-haiku
gまたはgemini:Google Geminig:gemini-2.5-pro-exp-03-25gemini:gemini-2.5-pro-exp-03-25
qまたはgroq:Groqq:llama-3.1-70b-versatilegroq:llama-3.1-70b-versatile
dまたはdeepseek:DeepSeekd:deepseek-coderdeepseek:deepseek-coder
lまたはollama:Ollamal:llama3.1ollama:llama3.1
機能
- 複数の LLM プロバイダーに対応する統一 API
- 文字列またはファイルからのテキストプロンプトに対応
- 複数のモデルを並列実行
--default-modelsリストの最初のモデルを使用したモデル名の自動補正- 応答をファイルに保存可能
- 利用可能なプロバイダーとモデルを簡単に一覧表示
インストール
# Clone the repository
git clone https://github.com/yourusername/just-prompt.git
cd just-prompt
# Install with pip
uv sync
環境変数
API キーを含む .env ファイルを作成します(.env.sample ファイルをコピーして使用できます)。
cp .env.sample .env
次に、.env ファイルを編集して API キーを追加します(またはシェルで環境変数としてエクスポートします)。
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
GROQ_API_KEY=your_groq_api_key_here
DEEPSEEK_API_KEY=your_deepseek_api_key_here
OLLAMA_HOST=http://localhost:11434
Claude Code のインストール
これらの例ではすべて、ディレクトリを just-prompt ディレクトリへのパスに置き換えてください。
デフォルトモデルは openai:o3:high、openai:o4-mini:high、anthropic:claude-opus-4-20250514、anthropic:claude-sonnet-4-20250514、gemini:gemini-2.5-pro-preview-03-25、gemini:gemini-2.5-flash-preview-04-17 に設定されています。
リポジトリからそのまま Claude Code を使用する場合、.mcp.json ファイルでデフォルトモデルが次のように設定されていることを確認できます。
{
"mcpServers": {
"just-prompt": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
".",
"run",
"just-prompt",
"--default-models",
"openai:o3:high,openai:o4-mini:high,anthropic:claude-opus-4-20250514,anthropic:claude-sonnet-4-20250514,gemini:gemini-2.5-pro-preview-03-25,gemini:gemini-2.5-flash-preview-04-17"
],
"env": {}
}
}
}
--default-models パラメーターは、API エンドポイントに明示的に指定されていない場合に使用するモデルを設定します。リストの最初のモデルは、必要に応じてモデル名を補正する際にも使用されます。モデルはカンマ区切りで複数指定できます。
サーバーの起動時に、環境で利用可能な API キーが自動的に確認され、使用できるプロバイダーが通知されます。キーが見つからない場合、そのプロバイダーは利用不可として表示されますが、サーバーは起動し、利用可能なプロバイダーを使用できます。
mcp add-json を使用する
これをコピーして Claude Code に貼り付けます。ただし、JSON をコピーするまでは実行しないでください。
claude mcp add just-prompt "$(pbpaste)"
コピーする JSON
{
"command": "uv",
"args": ["--directory", ".", "run", "just-prompt"]
}
カスタムデフォルトモデルを openai:gpt-4o に設定した場合。
{
"command": "uv",
"args": ["--directory", ".", "run", "just-prompt", "--default-models", "openai:gpt-4o"]
}
デフォルトモデルを複数設定する場合:
{
"command": "uv",
"args": ["--directory", ".", "run", "just-prompt", "--default-models", "openai:o3:high,openai:o4-mini:high,anthropic:claude-opus-4-20250514,anthropic:claude-sonnet-4-20250514,gemini:gemini-2.5-pro-preview-03-25,gemini:gemini-2.5-flash-preview-04-17"]
}
プロジェクトスコープで mcp add を使用する
# With default models
claude mcp add just-prompt -s project \
-- \
uv --directory . \
run just-prompt
# With custom default model
claude mcp add just-prompt -s project \
-- \
uv --directory . \
run just-prompt --default-models "openai:gpt-4o"
# With multiple default models
claude mcp add just-prompt -s user \
-- \
uv --directory . \
run just-prompt --default-models "openai:o3:high,openai:o4-mini:high,anthropic:claude-opus-4-20250514,anthropic:claude-sonnet-4-20250514,gemini:gemini-2.5-pro-preview-03-25,gemini:gemini-2.5-flash-preview-04-17"
mcp remove
claude mcp remove just-prompt
テストの実行
uv run pytest
コードベースの構成
.
├── ai_docs/ # Documentation for AI model details
│ ├── extending_thinking_sonny.md
│ ├── llm_providers_details.xml
│ ├── openai-reasoning-effort.md
│ └── pocket-pick-mcp-server-example.xml
├── example_outputs/ # Example outputs from different models
├── list_models.py # Script to list available LLM models
├── prompts/ # Example prompt files
├── pyproject.toml # Python project configuration
├── specs/ # Project specifications
│ ├── init-just-prompt.md
│ ├── new-tool-llm-as-a-ceo.md
│ └── oai-reasoning-levels.md
├── src/ # Source code directory
│ └── just_prompt/
│ ├── __init__.py
│ ├── __main__.py
│ ├── atoms/ # Core components
│ │ ├── llm_providers/ # Individual provider implementations
│ │ │ ├── anthropic.py
│ │ │ ├── deepseek.py
│ │ │ ├── gemini.py
│ │ │ ├── groq.py
│ │ │ ├── ollama.py
│ │ │ └── openai.py
│ │ └── shared/ # Shared utilities and data types
│ │ ├── data_types.py
│ │ ├── model_router.py
│ │ ├── utils.py
│ │ └── validator.py
│ ├── molecules/ # Higher-level functionality
│ │ ├── ceo_and_board_prompt.py
│ │ ├── list_models.py
│ │ ├── list_providers.py
│ │ ├── prompt.py
│ │ ├── prompt_from_file.py
│ │ └── prompt_from_file_to_file.py
│ ├── server.py # MCP server implementation
│ └── tests/ # Test directory
│ ├── atoms/ # Tests for atoms
│ │ ├── llm_providers/
│ │ └── shared/
│ └── molecules/ # Tests for molecules
│ ├── test_ceo_and_board_prompt.py
│ ├── test_list_models.py
│ ├── test_list_providers.py
│ ├── test_prompt.py
│ ├── test_prompt_from_file.py
│ └── test_prompt_from_file_to_file.py
└── ultra_diff_review/ # Diff review outputs
コンテキストの事前読み込み
プロジェクトのコンテキストを把握するために、README.md、pyproject.toml を読み込み、その後 git ls-files と 'eza --git-ignore --tree' を実行してください。
OpenAI o シリーズでの推論の強度
OpenAI o シリーズの推論モデル(o4-mini、o3-mini、o3)では、目に見える回答を生成する前にモデルが行う 内部 推論の量を制御できます。
モデル名の末尾に、次のいずれかのサフィックスを追加します(プロバイダーの接頭辞の後に指定します)。
:low– 内部推論を最小限にします(高速で低コスト)。:medium– バランスの取れた推論です(省略した場合のデフォルト)。:high– 徹底的に推論します(低速で、より多くのトークンを使用)。
例:
openai:o4-mini:lowo:o4-mini:high
推論サフィックスが指定されている場合、just‑prompt は自動的に OpenAI Responses API(利用可能な場合)に切り替え、対応する reasoning.effort パラメーターを設定します。インストールされている OpenAI SDK が古い場合は、Chat Completions エンドポイントに適切にフォールバックし、指定された推論の強度を近似するための内部システム指示を埋め込みます。
Claude での思考トークン
Anthropic Claude モデルの claude-opus-4-20250514 と claude-sonnet-4-20250514 は、思考トークンを使用した拡張思考機能をサポートしています。これにより、Claude は回答する前に、より徹底的に思考できます。
モデル名に次の形式でサフィックスを追加すると、思考トークンを有効にできます。
anthropic:claude-opus-4-20250514:1k- Opus 4 で 1024 個の思考トークンを使用しますanthropic:claude-sonnet-4-20250514:4k- Sonnet 4 で 4096 個の思考トークンを使用しますanthropic:claude-opus-4-20250514:8000- Opus 4 で 8000 個の思考トークンを使用します
注意:
- 思考トークンは、
claude-opus-4-20250514、claude-sonnet-4-20250514、claude-3-7-sonnet-20250219モデルでサポートされています - 有効な思考トークンの予算は 1024~16000 です
- この範囲外の値は、自動的に範囲内に調整されます
- 予算は k 表記(1k、4k など)または正確な数値(1024、4096 など)で指定できます
Gemini の思考予算
Google Gemini モデル gemini-2.5-flash-preview-04-17 は、思考予算を使用した拡張思考機能をサポートしています。これにより、Gemini は回答を返す前に、より詳細な推論を行えます。
モデル名に次の形式でサフィックスを追加すると、思考予算を有効にできます。
gemini:gemini-2.5-flash-preview-04-17:1k- 思考予算を 1024 に設定しますgemini:gemini-2.5-flash-preview-04-17:4k- 思考予算を 4096 に設定しますgemini:gemini-2.5-flash-preview-04-17:8000- 思考予算を 8000 に設定します
注意:
- 思考予算は
gemini-2.5-flash-preview-04-17モデルでのみサポートされています - 有効な思考予算の範囲は 0 から 24576 です
- 範囲外の値は、自動的に有効範囲内に調整されます
- 予算は k 表記(1k、4k など)または正確な数値(1024、4096 など)で指定できます
リソース
- https://docs.anthropic.com/en/api/models-list?q=list+models
- https://github.com/googleapis/python-genai
- https://platform.openai.com/docs/api-reference/models/list
- https://api-docs.deepseek.com/api/list-models
- https://github.com/ollama/ollama-python
- https://github.com/openai/openai-python
AI コーディングを極める
AI コーディングの基礎となるAI コーディングの原則を学びましょう。
AI コーディングのヒントやコツをさらに知りたい方は、IndyDevDan の YouTube チャンネルをフォローしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。