DataFlex Requires Chilkat v11.6.0+
DataFlex
Call a Tool on an MCP Server
See more MCP Client Examples
Demonstrates Mcp.CallTool, which calls the MCP tools/call method for a named tool, passing a JSON arguments object and receiving the tool's result. The example calls the Microsoft Learn microsoft_docs_search tool.
Tip: Code to parse the returned JSON can be generated with Chilkat's online tool at https://tools.chilkat.io/jsonParse.
Background. The members of the arguments object are defined by the tool's input schema, which is reported by ListTools. This example uses the public, no-authentication Microsoft Learn MCP server.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMcp
Variant vArgs
Handle hoArgs
Variant vResult
Handle hoResult
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 tool's input arguments. The members required depend on the tool's input schema (see
// ListTools). Here the Microsoft Learn "microsoft_docs_search" tool takes a search query.
Get Create (RefClass(cComChilkatJsonObject)) To hoArgs
If (Not(IsComObjectCreated(hoArgs))) Begin
Send CreateComObject of hoArgs
End
Get ComUpdateString Of hoArgs "query" "How do I create an Azure storage account?" To iSuccess
// Call the MCP tools/call method for the named tool. The tool's result is placed in the result
// JsonObject.
Get Create (RefClass(cComChilkatJsonObject)) To hoResult
If (Not(IsComObjectCreated(hoResult))) Begin
Send CreateComObject of hoResult
End
Get pvComObject of hoArgs to vArgs
Get pvComObject of hoResult to vResult
Get ComCallTool Of hoMcp "microsoft_docs_search" vArgs vResult To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoMcp To sTemp1
Showln sTemp1
Procedure_Return
End
Set ComEmitCompact Of hoResult To False
Get ComEmit Of hoResult 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