MCP Prompt Tester
MCPプロンプトテスター
エージェントがさまざまなプロバイダーで LLM プロンプトをテストできるようにするシンプルな MCP サーバー。
特徴
OpenAIとAnthropicモデルによるテストプロンプト
システムプロンプト、ユーザープロンプト、その他のパラメータを構成する
フォーマットされた応答またはエラーメッセージを取得する
.env ファイルのサポートによる簡単な環境設定
Related MCP server: A2A Client MCP Server
インストール
# Install with pip
pip install -e .
# Or with uv
uv install -e .APIキーの設定
サーバーには、使用するプロバイダーのAPIキーが必要です。APIキーは2つの方法で設定できます。
オプション1: 環境変数
次の環境変数を設定します。
OPENAI_API_KEY- OpenAI API キーANTHROPIC_API_KEY- Anthropic APIキー
オプション 2: .env ファイル (推奨)
プロジェクトディレクトリまたはホームディレクトリに
.envという名前のファイルを作成します。次の形式で API キーを追加します。
OPENAI_API_KEY=your-openai-api-key-here
ANTHROPIC_API_KEY=your-anthropic-api-key-hereサーバーはこれらのキーを自動的に検出して読み込みます
便宜上、サンプル テンプレートが.env.exampleとして含まれています。
使用法
stdio (デフォルト) または SSE トランスポートを使用してサーバーを起動します。
# Using stdio transport (default)
prompt-tester
# Using SSE transport on custom port
prompt-tester --transport sse --port 8000利用可能なツール
サーバーは、MCP 対応エージェントに対して次のツールを公開します。
1. list_providers
利用可能な LLM プロバイダーとそのデフォルト モデルを取得します。
パラメータ:
不要
応答例:
{
"providers": {
"openai": [
{
"type": "gpt-4",
"name": "gpt-4",
"input_cost": 0.03,
"output_cost": 0.06,
"description": "Most capable GPT-4 model"
},
// ... other models ...
],
"anthropic": [
// ... models ...
]
}
}2. テスト比較
複数のプロンプトを並べて比較し、さまざまなプロバイダー、モデル、パラメータを同時にテストできます。
パラメータ:
comparisons(配列): 1 ~ 4 個の比較構成のリスト。各比較構成には次の内容が含まれます。provider(文字列): 使用する LLM プロバイダー ("openai" または "anthropic")model(文字列): モデル名system_prompt(文字列): システムプロンプト(モデルの指示)user_prompt(文字列): ユーザーのメッセージ/プロンプトtemperature(数値、オプション): ランダム性を制御するmax_tokens(整数、オプション): 生成するトークンの最大数top_p(数値、オプション):核サンプリングによる多様性の制御
使用例:
{
"comparisons": [
{
"provider": "openai",
"model": "gpt-4",
"system_prompt": "You are a helpful assistant.",
"user_prompt": "Explain quantum computing in simple terms.",
"temperature": 0.7
},
{
"provider": "anthropic",
"model": "claude-3-opus-20240229",
"system_prompt": "You are a helpful assistant.",
"user_prompt": "Explain quantum computing in simple terms.",
"temperature": 0.7
}
]
}3. マルチターン会話のテスト
LLM プロバイダーとのマルチターン会話を管理し、ステートフル会話の作成と維持を可能にします。
モード:
start: 新しい会話を開始しますcontinue: 既存の会話を継続しますget: 会話履歴を取得するlist: すべてのアクティブな会話を一覧表示しますclose: 会話を閉じる
パラメータ:
mode(文字列): 操作モード ("start"、"continue"、"get"、"list"、または "close")conversation_id(文字列): 会話の一意のID (続行、取得、終了モードで必要)provider(文字列): LLM プロバイダー (開始モードに必須)model(文字列): モデル名(開始モードに必須)system_prompt(文字列): システムプロンプト(開始モードに必須)user_prompt(文字列): ユーザーメッセージ(開始モードと継続モードで使用)temperature(数値、オプション):モデルの温度パラメータmax_tokens(整数、オプション): 生成するトークンの最大数top_p(数値、オプション): Top-pサンプリングパラメータ
使用例(会話を始める):
{
"mode": "start",
"provider": "openai",
"model": "gpt-4",
"system_prompt": "You are a helpful assistant specializing in physics.",
"user_prompt": "Can you explain what dark matter is?"
}使用例(会話を続ける):
{
"mode": "continue",
"conversation_id": "conv_12345",
"user_prompt": "How does that relate to dark energy?"
}エージェントの使用例
MCP クライアントを使用すると、エージェントは次のようなツールを使用できます。
import asyncio
import json
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async def main():
async with stdio_client(
StdioServerParameters(command="prompt-tester")
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 1. List available providers and models
providers_result = await session.call_tool("list_providers", {})
print("Available providers and models:", providers_result)
# 2. Run a basic test with a single model and prompt
comparison_result = await session.call_tool("test_comparison", {
"comparisons": [
{
"provider": "openai",
"model": "gpt-4",
"system_prompt": "You are a helpful assistant.",
"user_prompt": "Explain quantum computing in simple terms.",
"temperature": 0.7,
"max_tokens": 500
}
]
})
print("Single model test result:", comparison_result)
# 3. Compare multiple prompts/models side by side
comparison_result = await session.call_tool("test_comparison", {
"comparisons": [
{
"provider": "openai",
"model": "gpt-4",
"system_prompt": "You are a helpful assistant.",
"user_prompt": "Explain quantum computing in simple terms.",
"temperature": 0.7
},
{
"provider": "anthropic",
"model": "claude-3-opus-20240229",
"system_prompt": "You are a helpful assistant.",
"user_prompt": "Explain quantum computing in simple terms.",
"temperature": 0.7
}
]
})
print("Comparison result:", comparison_result)
# 4. Start a multi-turn conversation
conversation_start = await session.call_tool("test_multiturn_conversation", {
"mode": "start",
"provider": "openai",
"model": "gpt-4",
"system_prompt": "You are a helpful assistant specializing in physics.",
"user_prompt": "Can you explain what dark matter is?"
})
print("Conversation started:", conversation_start)
# Get the conversation ID from the response
response_data = json.loads(conversation_start.text)
conversation_id = response_data.get("conversation_id")
# Continue the conversation
if conversation_id:
conversation_continue = await session.call_tool("test_multiturn_conversation", {
"mode": "continue",
"conversation_id": conversation_id,
"user_prompt": "How does that relate to dark energy?"
})
print("Conversation continued:", conversation_continue)
# Get the conversation history
conversation_history = await session.call_tool("test_multiturn_conversation", {
"mode": "get",
"conversation_id": conversation_id
})
print("Conversation history:", conversation_history)
asyncio.run(main())MCPエージェント統合
MCP 権限を持つエージェントの場合、統合は簡単です。エージェントが LLM プロンプトをテストする必要がある場合は、次の手順に従ってください。
検出: エージェントは
list_providersを使用して利用可能なモデルとその機能を検出できます。シンプルなテスト: 簡単なテストには、単一の構成で
test_comparisonツールを使用します。比較:エージェントが異なるプロンプトやモデルを評価する必要がある場合、複数の構成で
test_comparison使用できます。ステートフルインタラクション: マルチターンの会話の場合、エージェントは
test_multiturn_conversationツールを使用して会話を管理できます。
これにより、エージェントは次のことが可能になります。
プロンプトのバリエーションをテストして、最も効果的なフレーズを見つけます
特定のタスクのさまざまなモデルを比較する
複数ターンの会話でコンテキストを維持する
温度やmax_tokensなどのパラメータを最適化する
開発中のトークンの使用状況とコストを追跡する
構成
環境変数を使用して、API キーとオプションのトレース構成を設定できます。
必要なAPIキー
OPENAI_API_KEY- OpenAI API キーANTHROPIC_API_KEY- Anthropic APIキー
オプションのLangfuseトレース
サーバーは、LLM呼び出しのトレースと監視のためにLangfuseをサポートしています。以下の設定はオプションです。
LANGFUSE_SECRET_KEY- Langfuse の秘密鍵LANGFUSE_PUBLIC_KEY- Langfuseの公開鍵LANGFUSE_HOST- LangfuseインスタンスのURL
Langfuse トレースを使用しない場合は、これらの設定を空のままにしておきます。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/rt96-hub/prompt-tester'
If you have feedback or need assistance with the MCP directory API, please join our Discord server