MCP Prompt Tester

Integrations

  • Supports loading API keys and configuration from .env files, making it easier to set up and manage credentials for different providers

  • Enables testing prompts with OpenAI models, allowing configuration of system prompts, user prompts, and parameters like temperature and max_tokens

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

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 OpenAI
  • ANTHROPIC_API_KEY - Su clave API antrópica

Opción 2: Archivo .env (recomendado)

  1. Cree un archivo llamado .env en el directorio de su proyecto o directorio de inicio
  2. Agregue sus claves API en el siguiente formato:
OPENAI_API_KEY=your-openai-api-key-here ANTHROPIC_API_KEY=your-anthropic-api-key-here
  1. El 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 8000

Herramientas 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 modelo
    • system_prompt (cadena): El mensaje del sistema (instrucciones para el modelo)
    • user_prompt (cadena): El mensaje/mensaje del usuario
    • temperature (número, opcional): controla la aleatoriedad
    • max_tokens (entero, opcional): Número máximo de tokens a generar
    • top_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ón
  • continue : continúa una conversación existente
  • get : recupera el historial de conversaciones
  • list : enumera todas las conversaciones activas
  • close : 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 modelo
  • max_tokens (entero, opcional): Máximo de tokens a generar
  • top_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:

  1. Descubrimiento : el agente puede usar list_providers para descubrir los modelos disponibles y sus capacidades
  2. Pruebas simples : para pruebas rápidas, utilice la herramienta test_comparison con una única configuración
  3. Comparación : cuando el agente necesita evaluar diferentes indicaciones o modelos, puede usar test_comparison con múltiples configuraciones
  4. Interacciones 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 OpenAI
  • ANTHROPIC_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 Langfuse
  • LANGFUSE_PUBLIC_KEY - Su clave pública de Langfuse
  • LANGFUSE_HOST : URL de su instancia de Langfuse

Si no desea utilizar el seguimiento de Langfuse, simplemente deje esta configuración vacía.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor MCP que permite a los agentes probar y comparar indicaciones LLM en modelos OpenAI y Anthropic, admitiendo pruebas individuales, comparaciones en paralelo y conversaciones de múltiples turnos.

  1. Features
    1. Installation
      1. API Key Setup
        1. Option 1: Environment Variables
        2. Option 2: .env File (Recommended)
      2. Usage
        1. Available Tools
      3. Example Usage for Agents
        1. MCP Agent Integration
          1. Configuration
            1. Required API Keys
            2. Optional Langfuse Tracing
          ID: z099g2zrvn