Mcpixir.Connectors.Base behaviour (Mcpixir v0.1.0)

View Source

Base behaviour for MCP connectors.

Summary

Functions

Common function to close the connection.

Common function to execute a tool.

Common function to get tools.

Common initialization function for connectors.

Types

connector()

@type connector() :: %{
  :__struct__ => atom(),
  :initialized => boolean(),
  :url => String.t(),
  :timeout => integer(),
  optional(:client_pid) => pid(),
  optional(:response_table) => atom() | :ets.tid(),
  optional(atom()) => any()
}

response()

@type response() :: %{required(String.t()) => any()}

Callbacks

close(connector)

@callback close(connector()) :: :ok | {:error, any()}

execute_tool(connector, t, map)

@callback execute_tool(connector(), String.t(), map()) :: {:ok, any()} | {:error, any()}

get_tools(connector)

@callback get_tools(connector()) :: {:ok, list()} | {:error, any()}

initialize(connector)

@callback initialize(connector()) :: {:ok, connector()} | {:error, any()}

Functions

close(connector)

@spec close(connector()) :: :ok | {:error, any()}

Common function to close the connection.

execute_tool(connector, tool_name, args)

@spec execute_tool(connector(), String.t(), map()) :: {:ok, any()} | {:error, any()}

Common function to execute a tool.

get_tools(connector)

@spec get_tools(connector()) :: {:ok, list()} | {:error, any()}

Common function to get tools.

initialize(connector)

@spec initialize(connector()) :: {:ok, connector()} | {:error, any()}

Common initialization function for connectors.