diff --git a/README.md b/README.md index ba66f1c..64606e8 100644 --- a/README.md +++ b/README.md @@ -624,6 +624,7 @@ class MyPrompt < MCP::Prompt arguments [ MCP::Prompt::Argument.new( name: "message", + title: "Message Title", description: "Input message", required: true ) @@ -661,6 +662,7 @@ prompt = MCP::Prompt.define( arguments: [ MCP::Prompt::Argument.new( name: "message", + title: "Message Title", description: "Input message", required: true ) @@ -692,6 +694,7 @@ server.define_prompt( arguments: [ Prompt::Argument.new( name: "message", + title: "Message Title", description: "Input message", required: true ) @@ -718,7 +721,7 @@ e.g. around authentication state or user preferences. ### Key Components -- `MCP::Prompt::Argument` - Defines input parameters for the prompt template +- `MCP::Prompt::Argument` - Defines input parameters for the prompt template with name, title, description, and required flag - `MCP::Prompt::Message` - Represents a message in the conversation with a role and content - `MCP::Prompt::Result` - The output of a prompt template containing description and messages - `MCP::Content::Text` - Text content for messages diff --git a/lib/mcp/prompt/argument.rb b/lib/mcp/prompt/argument.rb index 8ec0cb0..336e2b1 100644 --- a/lib/mcp/prompt/argument.rb +++ b/lib/mcp/prompt/argument.rb @@ -3,17 +3,22 @@ module MCP class Prompt class Argument - attr_reader :name, :description, :required, :arguments + attr_reader :name, :title, :description, :required - def initialize(name:, description: nil, required: false) + def initialize(name:, title: nil, description: nil, required: false) @name = name + @title = title @description = description @required = required - @arguments = arguments end def to_h - { name:, description:, required: }.compact + { + name: name, + title: title, + description: description, + required: required, + }.compact end end end diff --git a/test/mcp/prompt_test.rb b/test/mcp/prompt_test.rb index 878fd06..c5853be 100644 --- a/test/mcp/prompt_test.rb +++ b/test/mcp/prompt_test.rb @@ -113,7 +113,12 @@ module MCP title: "Mock Prompt", description: "a mock prompt for testing", arguments: [ - Prompt::Argument.new(name: "test_argument", description: "Test argument", required: true), + Prompt::Argument.new( + name: "test_argument", + title: "Test argument title", + description: "This is a test argument description", + required: true, + ), ], ) do |args, server_context:| content = Content::Text.new(args["test_argument"] + " user: #{server_context[:user_id]}")