add title field to prompt argument
`PromptArgument extends BaseMetadata`, which includes both name and title -51e093b8eb/schema/2025-06-18/schema.ts (L686-L698)-51e093b8eb/schema/2025-06-18/schema.ts (L294-l309)
This commit is contained in:
parent
b5e344e456
commit
701f6faab6
3 changed files with 19 additions and 6 deletions
|
|
@ -624,6 +624,7 @@ class MyPrompt < MCP::Prompt
|
||||||
arguments [
|
arguments [
|
||||||
MCP::Prompt::Argument.new(
|
MCP::Prompt::Argument.new(
|
||||||
name: "message",
|
name: "message",
|
||||||
|
title: "Message Title",
|
||||||
description: "Input message",
|
description: "Input message",
|
||||||
required: true
|
required: true
|
||||||
)
|
)
|
||||||
|
|
@ -661,6 +662,7 @@ prompt = MCP::Prompt.define(
|
||||||
arguments: [
|
arguments: [
|
||||||
MCP::Prompt::Argument.new(
|
MCP::Prompt::Argument.new(
|
||||||
name: "message",
|
name: "message",
|
||||||
|
title: "Message Title",
|
||||||
description: "Input message",
|
description: "Input message",
|
||||||
required: true
|
required: true
|
||||||
)
|
)
|
||||||
|
|
@ -692,6 +694,7 @@ server.define_prompt(
|
||||||
arguments: [
|
arguments: [
|
||||||
Prompt::Argument.new(
|
Prompt::Argument.new(
|
||||||
name: "message",
|
name: "message",
|
||||||
|
title: "Message Title",
|
||||||
description: "Input message",
|
description: "Input message",
|
||||||
required: true
|
required: true
|
||||||
)
|
)
|
||||||
|
|
@ -718,7 +721,7 @@ e.g. around authentication state or user preferences.
|
||||||
|
|
||||||
### Key Components
|
### 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::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::Prompt::Result` - The output of a prompt template containing description and messages
|
||||||
- `MCP::Content::Text` - Text content for messages
|
- `MCP::Content::Text` - Text content for messages
|
||||||
|
|
|
||||||
|
|
@ -3,17 +3,22 @@
|
||||||
module MCP
|
module MCP
|
||||||
class Prompt
|
class Prompt
|
||||||
class Argument
|
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
|
@name = name
|
||||||
|
@title = title
|
||||||
@description = description
|
@description = description
|
||||||
@required = required
|
@required = required
|
||||||
@arguments = arguments
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_h
|
def to_h
|
||||||
{ name:, description:, required: }.compact
|
{
|
||||||
|
name: name,
|
||||||
|
title: title,
|
||||||
|
description: description,
|
||||||
|
required: required,
|
||||||
|
}.compact
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,12 @@ module MCP
|
||||||
title: "Mock Prompt",
|
title: "Mock Prompt",
|
||||||
description: "a mock prompt for testing",
|
description: "a mock prompt for testing",
|
||||||
arguments: [
|
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:|
|
) do |args, server_context:|
|
||||||
content = Content::Text.new(args["test_argument"] + " user: #{server_context[:user_id]}")
|
content = Content::Text.new(args["test_argument"] + " user: #{server_context[:user_id]}")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue