Probador de indicaciones MCP
Un servidor MCP simple que permite a los agentes probar los mensajes LLM con diferentes proveedores.
Características
Indicaciones de prueba con OpenAI y modelos antrópicos
Configurar indicaciones del sistema, indicaciones del usuario y otros parámetros
Obtener respuestas formateadas o mensajes de error
Configuración sencilla del entorno con soporte para archivos .env
Related MCP server: A2A Client MCP Server
Instalación
# Install with pip
pip install -e .
# Or with uv
uv install -e .Configuración de la clave API
El servidor requiere claves API para los proveedores que desea utilizar. Puede configurarlas de dos maneras:
Opción 1: Variables de entorno
Establezca las siguientes variables de entorno:
OPENAI_API_KEY: su clave API de OpenAIANTHROPIC_API_KEY- Su clave API antrópica
Opción 2: Archivo .env (recomendado)
Cree un archivo llamado
.enven el directorio de su proyecto o directorio de inicioAgregue sus claves API en el siguiente formato:
OPENAI_API_KEY=your-openai-api-key-here
ANTHROPIC_API_KEY=your-anthropic-api-key-hereEl servidor detectará y cargará automáticamente estas claves.
Para mayor comodidad, se incluye una plantilla de muestra como .env.example .
Uso
Inicie el servidor utilizando stdio (predeterminado) o el transporte SSE:
# Using stdio transport (default)
prompt-tester
# Using SSE transport on custom port
prompt-tester --transport sse --port 8000Herramientas disponibles
El servidor expone las siguientes herramientas para agentes habilitados para MCP:
1. lista_de_proveedores
Recupera los proveedores LLM disponibles y sus modelos predeterminados.
Parámetros:
No se requiere ninguno
Ejemplo de respuesta:
{
"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. comparación de pruebas
Compara múltiples indicaciones una al lado de la otra, lo que le permite probar diferentes proveedores, modelos y parámetros simultáneamente.
Parámetros:
comparisons(matriz): una lista de 1 a 4 configuraciones de comparación, cada una de las cuales contiene:provider(cadena): el proveedor LLM que se utilizará ("openai" o "anthropic")model(cadena): El nombre del modelosystem_prompt(cadena): El mensaje del sistema (instrucciones para el modelo)user_prompt(cadena): El mensaje/mensaje del usuariotemperature(número, opcional): controla la aleatoriedadmax_tokens(entero, opcional): Número máximo de tokens a generartop_p(número, opcional): controla la diversidad mediante el muestreo del núcleo
Ejemplo de uso:
{
"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. prueba_conversación_multiturno
Administra conversaciones de múltiples turnos con proveedores de LLM, lo que le permite crear y mantener conversaciones con estado.
Modos:
start: inicia una nueva conversacióncontinue: continúa una conversación existenteget: recupera el historial de conversacioneslist: enumera todas las conversaciones activasclose: cierra una conversación
Parámetros:
mode(cadena): Modo de operación ("inicio", "continuar", "obtener", "listar" o "cerrar")conversation_id(cadena): ID único para la conversación (obligatorio para los modos continuar, obtener y cerrar)provider(cadena): el proveedor LLM (obligatorio para el modo de inicio)model(cadena): el nombre del modelo (obligatorio para el modo de inicio)system_prompt(cadena): El indicador del sistema (necesario para el modo de inicio)user_prompt(cadena): El mensaje del usuario (utilizado en los modos de inicio y continuación)temperature(número, opcional): parámetro de temperatura para el modelomax_tokens(entero, opcional): Máximo de tokens a generartop_p(número, opcional): parámetro de muestreo top-p
Ejemplo de uso (para iniciar una conversación):
{
"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?"
}Ejemplo de uso (para continuar una conversación):
{
"mode": "continue",
"conversation_id": "conv_12345",
"user_prompt": "How does that relate to dark energy?"
}Ejemplo de uso para agentes
Al utilizar el cliente MCP, un agente puede utilizar las herramientas de la siguiente manera:
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())Integración del agente MCP
Para los agentes con MCP, la integración es sencilla. Cuando su agente necesite probar las indicaciones de LLM:
Descubrimiento : el agente puede usar
list_providerspara descubrir los modelos disponibles y sus capacidadesPruebas simples : para pruebas rápidas, utilice la herramienta
test_comparisoncon una única configuraciónComparación : cuando el agente necesita evaluar diferentes indicaciones o modelos, puede usar
test_comparisoncon múltiples configuracionesInteracciones con estado : para conversaciones de múltiples turnos, el agente puede administrar una conversación utilizando la herramienta
test_multiturn_conversation
Esto permite a los agentes:
Pruebe variantes de indicaciones para encontrar la redacción más eficaz
Comparar diferentes modelos para tareas específicas
Mantener el contexto en conversaciones de varios turnos
Optimizar parámetros como la temperatura y max_tokens
Seguimiento del uso y los costos de los tokens durante el desarrollo
Configuración
Puede configurar claves API y configuraciones de seguimiento opcionales mediante variables de entorno:
Claves API requeridas
OPENAI_API_KEY: su clave API de OpenAIANTHROPIC_API_KEY- Su clave API antrópica
Seguimiento de Langfuse opcional
El servidor admite Langfuse para el seguimiento y la observabilidad de las llamadas LLM. Estas configuraciones son opcionales:
LANGFUSE_SECRET_KEY- Su clave secreta de LangfuseLANGFUSE_PUBLIC_KEY- Su clave pública de LangfuseLANGFUSE_HOST: URL de su instancia de Langfuse
Si no desea utilizar el seguimiento de Langfuse, simplemente deje esta configuración vacía.