Sample code for 30+ languages & platforms
DataFlex Requires Chilkat v11.6.0+

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMcp
    Variant vArgs
    Handle hoArgs
    Variant vJson
    Handle hoJson
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatMcp)) To hoMcp
    If (Not(IsComObjectCreated(hoMcp))) Begin
        Send CreateComObject of hoMcp
    End

    //  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.
    Get ComConnect Of hoMcp "https://learn.microsoft.com/api/mcp" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMcp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    //  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.
    Get Create (RefClass(cComChilkatJsonObject)) To hoArgs
    If (Not(IsComObjectCreated(hoArgs))) Begin
        Send CreateComObject of hoArgs
    End
    Get ComUpdateString Of hoArgs "topic" "azure-storage" To iSuccess

    //  Call the MCP prompts/get method for the named prompt.  The prompt result is placed in the
    //  JsonObject.
    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get pvComObject of hoArgs to vArgs
    Get pvComObject of hoJson to vJson
    Get ComGetPrompt Of hoMcp "example-prompt" vArgs vJson To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMcp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Set ComEmitCompact Of hoJson To False
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1
    //  JSON parsing code for this result can be generated at Chilkat's online tool:
    //  https://tools.chilkat.io/jsonParse


End_Procedure