Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Microsoft Autogen Studio MCP Prompts Tab

From Leeroopedia
Sources Microsoft_Autogen
Domains Frontend React MCP Prompts UI Components
Last Updated 2026-02-11 17:00 GMT

Overview

Description

The McpPromptsTab component provides an interface for discovering and executing prompt templates from MCP servers. It allows users to list available prompts, view their arguments, fill in required parameters, and retrieve rendered prompt messages.

Features include:

  • List all prompts available from the MCP server
  • Display prompt metadata (name, description, arguments)
  • Dynamic form generation for prompt arguments
  • Real-time validation of required fields
  • Prompt execution with argument substitution
  • Display rendered prompt messages (user/assistant roles)
  • Activity message clearing for clean operation tracking

Usage

This tab appears in the MCP Capabilities Panel when the connected MCP server exposes a prompts capability. It enables developers to test and preview prompt templates before integrating them into agent workflows.

Code Reference

Source Location

/tmp/kapso_repo_2mr4n2g4/python/packages/autogen-studio/frontend/src/components/views/teambuilder/builder/component-editor/fields/workbench/mcp-prompts-tab.tsx

Signature

interface McpPromptsTabProps {
  serverParams: McpServerParams;
  wsClient: McpWebSocketClient | null;
  connected: boolean;
  capabilities: ServerCapabilities | null;
}

const McpPromptsTabComponent: React.FC<McpPromptsTabProps> = ({
  serverParams,
  wsClient,
  connected,
  capabilities,
}) => { /* ... */ }

export const McpPromptsTab = React.memo(McpPromptsTabComponent);

Import

import { McpPromptsTab } from "./mcp-prompts-tab";

I/O Contract

Props/Inputs

  • serverParams (McpServerParams) - MCP server configuration
  • wsClient (McpWebSocketClient | null) - Active WebSocket client for operations
  • connected (boolean) - Connection status flag
  • capabilities (ServerCapabilities | null) - Server capability information

Data Types

interface Prompt {
  name: string;
  description?: string;
  arguments?: Array<{
    name: string;
    description?: string;
    required?: boolean;
  }>;
}

interface PromptMessage {
  role: "user" | "assistant";
  content: {
    type: "text";
    text: string;
  };
}

interface PromptResult {
  name: string;
  description?: string;
  messages: PromptMessage[];
}

Outputs

The component displays prompt results but does not return values. It manages:

  • List of available prompts from the server
  • Rendered prompt messages with user/assistant roles
  • Error and loading states
  • Validation feedback for required arguments

Usage Examples

// Used within McpCapabilitiesPanel
<McpPromptsTab
  serverParams={serverParams}
  wsClient={wsClient}
  connected={connected}
  capabilities={capabilities}
/>

Operation Flow

1. Click "Load Prompts" button
2. Component executes list_prompts operation
3. Prompts are displayed with their metadata
4. User selects a prompt to execute
5. Form fields appear for prompt arguments
6. Real-time validation checks required fields
7. Click "Get Prompt" to execute
8. Rendered messages display with role indicators

Validation Logic

The component implements comprehensive validation:

// Required field validation
const validatePromptArguments = (prompt: Prompt, promptArgs: Record<string, any>): string[] => {
  const errors: string[] = [];
  const requiredArgs = prompt.arguments?.filter((arg) => arg.required) || [];

  requiredArgs.forEach((arg) => {
    const value = promptArgs[arg.name];
    if (value === undefined || value === null ||
        (typeof value === "string" && value.trim() === "")) {
      errors.push(`Required argument '${arg.name}' is missing or empty`);
    }
  });

  return errors;
};

// Real-time field validation
const validateField = (fieldName: string, value: string, isRequired: boolean): string | null => {
  if (isRequired && (!value || value.trim() === "")) {
    return `${fieldName} is required`;
  }
  return null;
};

UI Components

Prompt List

  • Card-based layout for each prompt
  • Name, description, and argument count display
  • "Get Prompt" button to execute

Argument Form

  • Dynamic input fields based on argument definitions
  • Required field indicators
  • Real-time validation messages
  • Clear error feedback

Result Display

  • Collapsible sections for each message
  • Role-based icons (User/Bot)
  • Formatted text content
  • "Clear Result" button for cleanup

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment