unit Chilkat.Mcp;

{
  Pascal wrapper for Chilkat Mcp.
  Auto-generated by PascalWrapperGenerator -- do not edit manually.
}

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}

interface

uses
  SysUtils,
  Chilkat.Base;

type

  { TMcp wraps CkMcp via the C bridge layer. }
  TMcp = class(TChilkatBase)
  private
    FOnAbortCheck: TChilkatAbortCheckEvent;
    FOnPercentDone: TChilkatPercentDoneEvent;
    FOnProgressInfo: TChilkatProgressInfoEvent;
    function  GetLastErrorHtml: string;
    function  GetLastErrorText: string;
    function  GetLastErrorXml: string;
    function  GetVersion: string;
    function  GetDebugLogFilePath: string;
    procedure SetDebugLogFilePath(AValue: string);
    function  GetVerboseLogging: Boolean;
    procedure SetVerboseLogging(AValue: Boolean);
    function  GetLastMethodSuccess: Boolean;
    procedure SetLastMethodSuccess(AValue: Boolean);
    function  GetAuthToken: string;
    procedure SetAuthToken(AValue: string);
    function  GetSessionId: string;
    function  GetProtocolVersion: string;
    procedure SetProtocolVersion(AValue: string);
    function  GetServerName: string;
    function  GetServerVersion: string;
    function  GetServerInstructions: string;
    function  GetConnected: Boolean;
    function  GetIdleTimeoutMs: Integer;
    procedure SetIdleTimeoutMs(AValue: Integer);
    function  GetConnectTimeoutMs: Integer;
    procedure SetConnectTimeoutMs(AValue: Integer);
    function  GetHeartbeatMs: Integer;
    procedure SetHeartbeatMs(AValue: Integer);
    procedure SetOnAbortCheck(AValue: TChilkatAbortCheckEvent);
    procedure SetOnPercentDone(AValue: TChilkatPercentDoneEvent);
    procedure SetOnProgressInfo(AValue: TChilkatProgressInfoEvent);
  public
    constructor Create;
    destructor  Destroy; override;

    property LastErrorHtml: string read GetLastErrorHtml;
    property LastErrorText: string read GetLastErrorText;
    property LastErrorXml: string read GetLastErrorXml;
    property Version: string read GetVersion;
    property DebugLogFilePath: string read GetDebugLogFilePath write SetDebugLogFilePath;
    property VerboseLogging: Boolean read GetVerboseLogging write SetVerboseLogging;
    property LastMethodSuccess: Boolean read GetLastMethodSuccess write SetLastMethodSuccess;
    property AuthToken: string read GetAuthToken write SetAuthToken;
    property SessionId: string read GetSessionId;
    property ProtocolVersion: string read GetProtocolVersion write SetProtocolVersion;
    property ServerName: string read GetServerName;
    property ServerVersion: string read GetServerVersion;
    property ServerInstructions: string read GetServerInstructions;
    property Connected: Boolean read GetConnected;
    property IdleTimeoutMs: Integer read GetIdleTimeoutMs write SetIdleTimeoutMs;
    property ConnectTimeoutMs: Integer read GetConnectTimeoutMs write SetConnectTimeoutMs;
    property HeartbeatMs: Integer read GetHeartbeatMs write SetHeartbeatMs;

    { Event callbacks.  Return True from OnAbortCheck / OnPercentDone
      to abort the running method.  Callbacks are invoked on the
      thread that called the Chilkat method.  The HeartbeatMs
      property controls the AbortCheck frequency. }
    property OnAbortCheck: TChilkatAbortCheckEvent read FOnAbortCheck write SetOnAbortCheck;
    property OnPercentDone: TChilkatPercentDoneEvent read FOnPercentDone write SetOnPercentDone;
    property OnProgressInfo: TChilkatProgressInfoEvent read FOnProgressInfo write SetOnProgressInfo;

    function  Connect(const url: string): Boolean;
    function  Close: Boolean;
    function  ListTools(json: TChilkatBase): Boolean;
    function  CallTool(const name: string; arguments: TChilkatBase; result: TChilkatBase): Boolean;
    function  ListResources(json: TChilkatBase): Boolean;
    function  ReadResource(const uri: string; json: TChilkatBase): Boolean;
    function  ListPrompts(json: TChilkatBase): Boolean;
    function  GetPrompt(const name: string; arguments: TChilkatBase; json: TChilkatBase): Boolean;
    function  SetConnectionSettings(sock: TChilkatBase): Boolean;
    procedure GetLastJsonData(json: TChilkatBase);
  end;

implementation

uses
  CkDllLoader,
  Chilkat.Utils;

{ ---- C bridge function pointer types ---- }
type
  TCkMcp_Create  = function(): Pointer; cdecl;
  TCkMcp_Dispose = procedure(handle: Pointer); cdecl;
  TCkBridgeAbortCheckCb   = function(userData: Pointer): Integer; cdecl;
  TCkBridgePercentDoneCb  = function(pctDone: Integer; userData: Pointer): Integer; cdecl;
  TCkBridgeProgressInfoCb = procedure(name: PAnsiChar; value: PAnsiChar; userData: Pointer); cdecl;
  TCkMcp_SetAbortCheckCallback   = procedure(handle: Pointer; cb: TCkBridgeAbortCheckCb; userData: Pointer); cdecl;
  TCkMcp_SetPercentDoneCallback  = procedure(handle: Pointer; cb: TCkBridgePercentDoneCb; userData: Pointer); cdecl;
  TCkMcp_SetProgressInfoCallback = procedure(handle: Pointer; cb: TCkBridgeProgressInfoCb; userData: Pointer); cdecl;
  TCkMcp_get_LastErrorHtml = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_LastErrorText = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_LastErrorXml = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_Version = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_DebugLogFilePath = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_put_DebugLogFilePath = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkMcp_get_VerboseLogging = function(handle: Pointer): LongBool; cdecl;
  TCkMcp_put_VerboseLogging = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkMcp_get_LastMethodSuccess = function(handle: Pointer): LongBool; cdecl;
  TCkMcp_put_LastMethodSuccess = procedure(handle: Pointer; value: LongBool); cdecl;
  TCkMcp_get_AuthToken = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_put_AuthToken = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkMcp_get_SessionId = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_ProtocolVersion = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_put_ProtocolVersion = procedure(handle: Pointer; value: PAnsiChar); cdecl;
  TCkMcp_get_ServerName = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_ServerVersion = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_ServerInstructions = function(handle: Pointer): PAnsiChar; cdecl;
  TCkMcp_get_Connected = function(handle: Pointer): LongBool; cdecl;
  TCkMcp_get_IdleTimeoutMs = function(handle: Pointer): Integer; cdecl;
  TCkMcp_put_IdleTimeoutMs = procedure(handle: Pointer; value: Integer); cdecl;
  TCkMcp_get_ConnectTimeoutMs = function(handle: Pointer): Integer; cdecl;
  TCkMcp_put_ConnectTimeoutMs = procedure(handle: Pointer; value: Integer); cdecl;
  TCkMcp_get_HeartbeatMs = function(handle: Pointer): Integer; cdecl;
  TCkMcp_put_HeartbeatMs = procedure(handle: Pointer; value: Integer); cdecl;
  TCkMcp_Connect = function(handle: Pointer; url: PAnsiChar): LongBool; cdecl;
  TCkMcp_Close = function(handle: Pointer): LongBool; cdecl;
  TCkMcp_ListTools = function(handle: Pointer; json: Pointer): LongBool; cdecl;
  TCkMcp_CallTool = function(handle: Pointer; name: PAnsiChar; arguments: Pointer; result: Pointer): LongBool; cdecl;
  TCkMcp_ListResources = function(handle: Pointer; json: Pointer): LongBool; cdecl;
  TCkMcp_ReadResource = function(handle: Pointer; uri: PAnsiChar; json: Pointer): LongBool; cdecl;
  TCkMcp_ListPrompts = function(handle: Pointer; json: Pointer): LongBool; cdecl;
  TCkMcp_GetPrompt = function(handle: Pointer; name: PAnsiChar; arguments: Pointer; json: Pointer): LongBool; cdecl;
  TCkMcp_SetConnectionSettings = function(handle: Pointer; sock: Pointer): LongBool; cdecl;
  TCkMcp_GetLastJsonData = procedure(handle: Pointer; json: Pointer); cdecl;

{ ---- C bridge function pointer variables ---- }
var
  CkMcp_Create:  TCkMcp_Create  = nil;
  CkMcp_Dispose: TCkMcp_Dispose = nil;
  CkMcp_SetAbortCheckCallback:   TCkMcp_SetAbortCheckCallback   = nil;
  CkMcp_SetPercentDoneCallback:  TCkMcp_SetPercentDoneCallback  = nil;
  CkMcp_SetProgressInfoCallback: TCkMcp_SetProgressInfoCallback = nil;
  CkMcp_get_LastErrorHtml: TCkMcp_get_LastErrorHtml = nil;
  CkMcp_get_LastErrorText: TCkMcp_get_LastErrorText = nil;
  CkMcp_get_LastErrorXml: TCkMcp_get_LastErrorXml = nil;
  CkMcp_get_Version: TCkMcp_get_Version = nil;
  CkMcp_get_DebugLogFilePath: TCkMcp_get_DebugLogFilePath = nil;
  CkMcp_put_DebugLogFilePath: TCkMcp_put_DebugLogFilePath = nil;
  CkMcp_get_VerboseLogging: TCkMcp_get_VerboseLogging = nil;
  CkMcp_put_VerboseLogging: TCkMcp_put_VerboseLogging = nil;
  CkMcp_get_LastMethodSuccess: TCkMcp_get_LastMethodSuccess = nil;
  CkMcp_put_LastMethodSuccess: TCkMcp_put_LastMethodSuccess = nil;
  CkMcp_get_AuthToken: TCkMcp_get_AuthToken = nil;
  CkMcp_put_AuthToken: TCkMcp_put_AuthToken = nil;
  CkMcp_get_SessionId: TCkMcp_get_SessionId = nil;
  CkMcp_get_ProtocolVersion: TCkMcp_get_ProtocolVersion = nil;
  CkMcp_put_ProtocolVersion: TCkMcp_put_ProtocolVersion = nil;
  CkMcp_get_ServerName: TCkMcp_get_ServerName = nil;
  CkMcp_get_ServerVersion: TCkMcp_get_ServerVersion = nil;
  CkMcp_get_ServerInstructions: TCkMcp_get_ServerInstructions = nil;
  CkMcp_get_Connected: TCkMcp_get_Connected = nil;
  CkMcp_get_IdleTimeoutMs: TCkMcp_get_IdleTimeoutMs = nil;
  CkMcp_put_IdleTimeoutMs: TCkMcp_put_IdleTimeoutMs = nil;
  CkMcp_get_ConnectTimeoutMs: TCkMcp_get_ConnectTimeoutMs = nil;
  CkMcp_put_ConnectTimeoutMs: TCkMcp_put_ConnectTimeoutMs = nil;
  CkMcp_get_HeartbeatMs: TCkMcp_get_HeartbeatMs = nil;
  CkMcp_put_HeartbeatMs: TCkMcp_put_HeartbeatMs = nil;
  CkMcp_Connect: TCkMcp_Connect = nil;
  CkMcp_Close: TCkMcp_Close = nil;
  CkMcp_ListTools: TCkMcp_ListTools = nil;
  CkMcp_CallTool: TCkMcp_CallTool = nil;
  CkMcp_ListResources: TCkMcp_ListResources = nil;
  CkMcp_ReadResource: TCkMcp_ReadResource = nil;
  CkMcp_ListPrompts: TCkMcp_ListPrompts = nil;
  CkMcp_GetPrompt: TCkMcp_GetPrompt = nil;
  CkMcp_SetConnectionSettings: TCkMcp_SetConnectionSettings = nil;
  CkMcp_GetLastJsonData: TCkMcp_GetLastJsonData = nil;

constructor TMcp.Create;
begin
  inherited Create;
  FHandle := CkMcp_Create();
end;

destructor TMcp.Destroy;
begin
  if FHandle <> nil then
    CkMcp_Dispose(FHandle);
  FHandle := nil;
  inherited;
end;

{ ---- Event callback thunks ---- }
{ Standalone cdecl functions registered with the C bridge.  The bridge
  passes back the userData pointer, which carries the Pascal object
  instance.  A non-zero return value aborts the running method. }

function TMcp_AbortCheckThunk(userData: Pointer): Integer; cdecl;
var
  obj: TMcp;
begin
  Result := 0;
  obj := TMcp(userData);
  if Assigned(obj) and Assigned(obj.FOnAbortCheck) then
    if obj.FOnAbortCheck(obj) then Result := 1;
end;

function TMcp_PercentDoneThunk(pctDone: Integer; userData: Pointer): Integer; cdecl;
var
  obj: TMcp;
begin
  Result := 0;
  obj := TMcp(userData);
  if Assigned(obj) and Assigned(obj.FOnPercentDone) then
    if obj.FOnPercentDone(obj, pctDone) then Result := 1;
end;

procedure TMcp_ProgressInfoThunk(name: PAnsiChar; value: PAnsiChar; userData: Pointer); cdecl;
var
  obj: TMcp;
begin
  obj := TMcp(userData);
  if Assigned(obj) and Assigned(obj.FOnProgressInfo) then
    obj.FOnProgressInfo(obj, CkToStr(name), CkToStr(value));
end;

procedure TMcp.SetOnAbortCheck(AValue: TChilkatAbortCheckEvent);
begin
  FOnAbortCheck := AValue;
  if Assigned(AValue) then
    CkMcp_SetAbortCheckCallback(FHandle, @TMcp_AbortCheckThunk, Self)
  else
    CkMcp_SetAbortCheckCallback(FHandle, nil, nil);
end;

procedure TMcp.SetOnPercentDone(AValue: TChilkatPercentDoneEvent);
begin
  FOnPercentDone := AValue;
  if Assigned(AValue) then
    CkMcp_SetPercentDoneCallback(FHandle, @TMcp_PercentDoneThunk, Self)
  else
    CkMcp_SetPercentDoneCallback(FHandle, nil, nil);
end;

procedure TMcp.SetOnProgressInfo(AValue: TChilkatProgressInfoEvent);
begin
  FOnProgressInfo := AValue;
  if Assigned(AValue) then
    CkMcp_SetProgressInfoCallback(FHandle, @TMcp_ProgressInfoThunk, Self)
  else
    CkMcp_SetProgressInfoCallback(FHandle, nil, nil);
end;

function TMcp.GetLastErrorHtml: string;
begin
  Result := CkToStr(CkMcp_get_LastErrorHtml(FHandle));
end;

function TMcp.GetLastErrorText: string;
begin
  Result := CkToStr(CkMcp_get_LastErrorText(FHandle));
end;

function TMcp.GetLastErrorXml: string;
begin
  Result := CkToStr(CkMcp_get_LastErrorXml(FHandle));
end;

function TMcp.GetVersion: string;
begin
  Result := CkToStr(CkMcp_get_Version(FHandle));
end;

function TMcp.GetDebugLogFilePath: string;
begin
  Result := CkToStr(CkMcp_get_DebugLogFilePath(FHandle));
end;

procedure TMcp.SetDebugLogFilePath(AValue: string);
begin
  CkMcp_put_DebugLogFilePath(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TMcp.GetVerboseLogging: Boolean;
begin
  Result := Boolean(CkMcp_get_VerboseLogging(FHandle));
end;

procedure TMcp.SetVerboseLogging(AValue: Boolean);
begin
  CkMcp_put_VerboseLogging(FHandle, LongBool(AValue));
end;

function TMcp.GetLastMethodSuccess: Boolean;
begin
  Result := Boolean(CkMcp_get_LastMethodSuccess(FHandle));
end;

procedure TMcp.SetLastMethodSuccess(AValue: Boolean);
begin
  CkMcp_put_LastMethodSuccess(FHandle, LongBool(AValue));
end;

function TMcp.GetAuthToken: string;
begin
  Result := CkToStr(CkMcp_get_AuthToken(FHandle));
end;

procedure TMcp.SetAuthToken(AValue: string);
begin
  CkMcp_put_AuthToken(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TMcp.GetSessionId: string;
begin
  Result := CkToStr(CkMcp_get_SessionId(FHandle));
end;

function TMcp.GetProtocolVersion: string;
begin
  Result := CkToStr(CkMcp_get_ProtocolVersion(FHandle));
end;

procedure TMcp.SetProtocolVersion(AValue: string);
begin
  CkMcp_put_ProtocolVersion(FHandle, PAnsiChar(StrToCk(AValue)));
end;

function TMcp.GetServerName: string;
begin
  Result := CkToStr(CkMcp_get_ServerName(FHandle));
end;

function TMcp.GetServerVersion: string;
begin
  Result := CkToStr(CkMcp_get_ServerVersion(FHandle));
end;

function TMcp.GetServerInstructions: string;
begin
  Result := CkToStr(CkMcp_get_ServerInstructions(FHandle));
end;

function TMcp.GetConnected: Boolean;
begin
  Result := Boolean(CkMcp_get_Connected(FHandle));
end;

function TMcp.GetIdleTimeoutMs: Integer;
begin
  Result := CkMcp_get_IdleTimeoutMs(FHandle);
end;

procedure TMcp.SetIdleTimeoutMs(AValue: Integer);
begin
  CkMcp_put_IdleTimeoutMs(FHandle, AValue);
end;

function TMcp.GetConnectTimeoutMs: Integer;
begin
  Result := CkMcp_get_ConnectTimeoutMs(FHandle);
end;

procedure TMcp.SetConnectTimeoutMs(AValue: Integer);
begin
  CkMcp_put_ConnectTimeoutMs(FHandle, AValue);
end;

function TMcp.GetHeartbeatMs: Integer;
begin
  Result := CkMcp_get_HeartbeatMs(FHandle);
end;

procedure TMcp.SetHeartbeatMs(AValue: Integer);
begin
  CkMcp_put_HeartbeatMs(FHandle, AValue);
end;

function TMcp.Connect(const url: string): Boolean;
begin
  Result := Boolean(CkMcp_Connect(FHandle, PAnsiChar(StrToCk(url))));
end;

function TMcp.Close: Boolean;
begin
  Result := Boolean(CkMcp_Close(FHandle));
end;

function TMcp.ListTools(json: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_ListTools(FHandle, json.Handle));
end;

function TMcp.CallTool(const name: string; arguments: TChilkatBase; result: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_CallTool(FHandle, PAnsiChar(StrToCk(name)), arguments.Handle, result.Handle));
end;

function TMcp.ListResources(json: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_ListResources(FHandle, json.Handle));
end;

function TMcp.ReadResource(const uri: string; json: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_ReadResource(FHandle, PAnsiChar(StrToCk(uri)), json.Handle));
end;

function TMcp.ListPrompts(json: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_ListPrompts(FHandle, json.Handle));
end;

function TMcp.GetPrompt(const name: string; arguments: TChilkatBase; json: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_GetPrompt(FHandle, PAnsiChar(StrToCk(name)), arguments.Handle, json.Handle));
end;

function TMcp.SetConnectionSettings(sock: TChilkatBase): Boolean;
begin
  Result := Boolean(CkMcp_SetConnectionSettings(FHandle, sock.Handle));
end;

procedure TMcp.GetLastJsonData(json: TChilkatBase);
begin
  CkMcp_GetLastJsonData(FHandle, json.Handle);
end;

initialization
  Chilkat_GetProcedureAddress(CkMcp_Create,  'CkMcp_Create');
  Chilkat_GetProcedureAddress(CkMcp_Dispose, 'CkMcp_Dispose');
  Chilkat_GetProcedureAddress(CkMcp_SetAbortCheckCallback, 'CkMcp_SetAbortCheckCallback');
  Chilkat_GetProcedureAddress(CkMcp_SetPercentDoneCallback, 'CkMcp_SetPercentDoneCallback');
  Chilkat_GetProcedureAddress(CkMcp_SetProgressInfoCallback, 'CkMcp_SetProgressInfoCallback');
  Chilkat_GetProcedureAddress(CkMcp_get_LastErrorHtml, 'CkMcp_get_LastErrorHtml');
  Chilkat_GetProcedureAddress(CkMcp_get_LastErrorText, 'CkMcp_get_LastErrorText');
  Chilkat_GetProcedureAddress(CkMcp_get_LastErrorXml, 'CkMcp_get_LastErrorXml');
  Chilkat_GetProcedureAddress(CkMcp_get_Version, 'CkMcp_get_Version');
  Chilkat_GetProcedureAddress(CkMcp_get_DebugLogFilePath, 'CkMcp_get_DebugLogFilePath');
  Chilkat_GetProcedureAddress(CkMcp_put_DebugLogFilePath, 'CkMcp_put_DebugLogFilePath');
  Chilkat_GetProcedureAddress(CkMcp_get_VerboseLogging, 'CkMcp_get_VerboseLogging');
  Chilkat_GetProcedureAddress(CkMcp_put_VerboseLogging, 'CkMcp_put_VerboseLogging');
  Chilkat_GetProcedureAddress(CkMcp_get_LastMethodSuccess, 'CkMcp_get_LastMethodSuccess');
  Chilkat_GetProcedureAddress(CkMcp_put_LastMethodSuccess, 'CkMcp_put_LastMethodSuccess');
  Chilkat_GetProcedureAddress(CkMcp_get_AuthToken, 'CkMcp_get_AuthToken');
  Chilkat_GetProcedureAddress(CkMcp_put_AuthToken, 'CkMcp_put_AuthToken');
  Chilkat_GetProcedureAddress(CkMcp_get_SessionId, 'CkMcp_get_SessionId');
  Chilkat_GetProcedureAddress(CkMcp_get_ProtocolVersion, 'CkMcp_get_ProtocolVersion');
  Chilkat_GetProcedureAddress(CkMcp_put_ProtocolVersion, 'CkMcp_put_ProtocolVersion');
  Chilkat_GetProcedureAddress(CkMcp_get_ServerName, 'CkMcp_get_ServerName');
  Chilkat_GetProcedureAddress(CkMcp_get_ServerVersion, 'CkMcp_get_ServerVersion');
  Chilkat_GetProcedureAddress(CkMcp_get_ServerInstructions, 'CkMcp_get_ServerInstructions');
  Chilkat_GetProcedureAddress(CkMcp_get_Connected, 'CkMcp_get_Connected');
  Chilkat_GetProcedureAddress(CkMcp_get_IdleTimeoutMs, 'CkMcp_get_IdleTimeoutMs');
  Chilkat_GetProcedureAddress(CkMcp_put_IdleTimeoutMs, 'CkMcp_put_IdleTimeoutMs');
  Chilkat_GetProcedureAddress(CkMcp_get_ConnectTimeoutMs, 'CkMcp_get_ConnectTimeoutMs');
  Chilkat_GetProcedureAddress(CkMcp_put_ConnectTimeoutMs, 'CkMcp_put_ConnectTimeoutMs');
  Chilkat_GetProcedureAddress(CkMcp_get_HeartbeatMs, 'CkMcp_get_HeartbeatMs');
  Chilkat_GetProcedureAddress(CkMcp_put_HeartbeatMs, 'CkMcp_put_HeartbeatMs');
  Chilkat_GetProcedureAddress(CkMcp_Connect, 'CkMcp_Connect');
  Chilkat_GetProcedureAddress(CkMcp_Close, 'CkMcp_Close');
  Chilkat_GetProcedureAddress(CkMcp_ListTools, 'CkMcp_ListTools');
  Chilkat_GetProcedureAddress(CkMcp_CallTool, 'CkMcp_CallTool');
  Chilkat_GetProcedureAddress(CkMcp_ListResources, 'CkMcp_ListResources');
  Chilkat_GetProcedureAddress(CkMcp_ReadResource, 'CkMcp_ReadResource');
  Chilkat_GetProcedureAddress(CkMcp_ListPrompts, 'CkMcp_ListPrompts');
  Chilkat_GetProcedureAddress(CkMcp_GetPrompt, 'CkMcp_GetPrompt');
  Chilkat_GetProcedureAddress(CkMcp_SetConnectionSettings, 'CkMcp_SetConnectionSettings');
  Chilkat_GetProcedureAddress(CkMcp_GetLastJsonData, 'CkMcp_GetLastJsonData');

end.
