Release 0.1.16
Added
-
MCP prompt support via the
x-mcp-promptsvendor extension on the root OpenAPI object. Prompts
are defined as an array of objects, each with aname,description, andargumentslist.
Two resolution modes are available:- Static templates — prompts with inline
messagescontaining Mustache{{placeholder}}
templates that are rendered server-side from user-supplied arguments. No backend call needed.
Missing required arguments fail the request; missing optional arguments render as empty strings. - Backend resolution — prompts with a
resolveblock that delegates to a backend HTTP
endpoint. Arguments are forwarded as query parameters forGETor as a JSON body forPOST.
Credentials are forwarded using the configuredCredentialProvider.
Prompts are discoverable by clients via
listPromptsand invocable viagetPrompt. Live
reload detects prompt additions and removals automatically.Prompt calls can be intercepted using the
PromptCallFilterchain-of-responsibility pattern,
mirroring theToolCallFilterAPI. Register Spring beans implementingPromptCallFilterto
add observability, authorization, caching, or other cross-cutting concerns to prompt resolution.Prompt call metrics are emitted via Micrometer when a
MeterRegistrybean is available:
com.infobip.openapi.prompt.call(counter),com.infobip.openapi.prompt.call.duration(timer),
and for backend-resolved promptscom.infobip.openapi.prompt.resolve.call(counter) and
com.infobip.openapi.prompt.resolve.call.duration(timer). - Static templates — prompts with inline
-
PromptExecutionExceptionwith typed MCP error codes:INVALID_PARAMSfor missing required
arguments,INTERNAL_ERRORfor backend resolution failures. -
PromptResolveConfigpath validation: theresolve.pathmust be non-blank and either a
relative path starting with/or an absolute URL starting withhttp://orhttps://. -
PromptResolveResponseresponse validation: the backend must return at least one message,
each with a non-null role and non-blank content.