PureBasic Requires Chilkat v11.6.0+
PureBasic
Get a Prompt from an MCP Server
See more MCP Client Examples
Demonstrates Mcp.GetPrompt, which calls the MCP prompts/get method for a named prompt, passing a JSON arguments object and receiving the prompt result.
Tip: Code to parse the returned JSON can be generated with Chilkat's online tool at https://tools.chilkat.io/jsonParse.
Background. The prompt name and its expected arguments come from the
prompts array returned by ListPrompts. Pass an empty arguments object for a prompt that takes none.Chilkat PureBasic Downloads
IncludeFile "CkJsonObject.pb"
IncludeFile "CkMcp.pb"
Procedure ChilkatExample()
success.i = 0
mcp.i = CkMcp::ckCreate()
If mcp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Connect to a public MCP (Model Context Protocol) server over its Streamable HTTP endpoint. The
; Microsoft Learn MCP server is public and requires no authentication.
success = CkMcp::ckConnect(mcp,"https://learn.microsoft.com/api/mcp")
If success = 0
Debug CkMcp::ckLastErrorText(mcp)
CkMcp::ckDispose(mcp)
ProcedureReturn
EndIf
; Build the prompt's arguments (pass an empty object for a prompt that takes no arguments). The
; prompt name and its arguments come from the "prompts" array returned by ListPrompts.
args.i = CkJsonObject::ckCreate()
If args.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(args,"topic","azure-storage")
; Call the MCP prompts/get method for the named prompt. The prompt result is placed in the
; JsonObject.
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkMcp::ckGetPrompt(mcp,"example-prompt",args,json)
If success = 0
Debug CkMcp::ckLastErrorText(mcp)
CkMcp::ckDispose(mcp)
CkJsonObject::ckDispose(args)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndIf
CkJsonObject::setCkEmitCompact(json, 0)
Debug CkJsonObject::ckEmit(json)
; JSON parsing code for this result can be generated at Chilkat's online tool:
; https://tools.chilkat.io/jsonParse
CkMcp::ckDispose(mcp)
CkJsonObject::ckDispose(args)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure