MCP Prompt Tester
MCP 即时测试仪
一个简单的 MCP 服务器,允许代理使用不同的提供商测试 LLM 提示。
特征
使用 OpenAI 和 Anthropic 模型进行测试提示
配置系统提示、用户提示和其他参数
获取格式化的响应或错误消息
通过 .env 文件支持轻松设置环境
Related MCP server: A2A Client MCP Server
安装
# Install with pip
pip install -e .
# Or with uv
uv install -e .API 密钥设置
服务器需要您所使用的提供商的 API 密钥。您可以通过两种方式设置这些密钥:
选项 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. 列表提供者
检索可用的 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(字符串):操作模式(“开始”、“继续”、“获取”、“列出”或“关闭”)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 追踪
服务器支持使用 Langfuse 来跟踪和观察 LLM 调用。以下设置是可选的:
LANGFUSE_SECRET_KEY- 您的 Langfuse 密钥LANGFUSE_PUBLIC_KEY- 您的 Langfuse 公钥LANGFUSE_HOST- 您的 Langfuse 实例的 URL
如果您不想使用 Langfuse 跟踪,只需将这些设置留空。
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- FlicenseBqualityDmaintenanceA lightweight MCP server that provides a unified interface to various LLM providers including OpenAI, Anthropic, Google Gemini, Groq, DeepSeek, and Ollama.6738-
- FlicenseAqualityDmaintenanceAn MCP server that enables LLMs to interact with Agent-to-Agent (A2A) protocol compatible agents, allowing for sending messages, tracking tasks, and receiving streaming responses.528-
- TypeScriptMIT
- AlicenseAqualityDmaintenanceA Node.js/TypeScript MCP server that facilitates interactive communication between LLMs and users, allowing AI assistants to request user input, display notifications, and manage command-line chat sessions.567 npm1MIT