addPrompt method

  1. @override
void addPrompt({
  1. required String name,
  2. required String description,
  3. required List<PromptArgument> arguments,
  4. required PromptHandler handler,
  5. String? title,
  6. List<Map<String, dynamic>>? icons,
  7. Map<String, dynamic>? meta,
})
override

Add a prompt to the server

Implementation

@override
void addPrompt({
  required String name,
  required String description,
  required List<PromptArgument> arguments,
  required PromptHandler handler,
  String? title,
  List<Map<String, dynamic>>? icons,
  Map<String, dynamic>? meta,
}) {
  if (_prompts.containsKey(name)) {
    throw McpError('Prompt with name "$name" already exists');
  }

  final prompt = Prompt(
    name: name,
    title: title,
    description: description,
    arguments: arguments,
    icons: icons,
    meta: meta,
  );

  _prompts[name] = prompt;
  _promptHandlers[name] = handler;

  // Notify clients about prompt changes if connected and supported
  if (isConnected && capabilities.hasPrompts && capabilities.promptsListChanged) {
    _broadcastNotification('notifications/prompts/list_changed', {});
  }

  // Emit change event
  _promptsChangedController.add(null);
}