Excessibility.MCP.Prompt behaviour (Excessibility v0.14.0)
View SourceBehaviour for MCP prompts.
Prompts are reusable prompt templates that can be retrieved and filled with arguments.
Example
defmodule MyApp.MCP.Prompts.FixIssue do
@behaviour Excessibility.MCP.Prompt
@impl true
def name, do: "fix-issue"
@impl true
def description, do: "Generate a prompt for fixing accessibility issues"
@impl true
def arguments do
[
%{
"name" => "issue",
"description" => "The accessibility issue to fix",
"required" => true
},
%{
"name" => "element",
"description" => "The HTML element causing the issue",
"required" => false
}
]
end
@impl true
def get(args) do
issue = Map.get(args, "issue", "unknown issue")
element = Map.get(args, "element")
content = if element do
"Fix this accessibility issue: #{issue}\n\nElement: #{element}"
else
"Fix this accessibility issue: #{issue}"
end
{:ok, %{
"messages" => [
%{
"role" => "user",
"content" => %{
"type" => "text",
"text" => content
}
}
]
}}
end
endCallbacks
name/0- String identifier for this promptdescription/0- Human-readable descriptionarguments/0- List of argument definitionsget/1- Returns the prompt content given arguments
Summary
Functions
Formats a prompt get result for MCP response.
Returns MCP prompt definition for a prompt module.