ExUtcp.Transports.Mcp.ConnectionBehaviour behaviour (ex_utcp v0.3.2)

Copy Markdown View Source

Behaviour for MCP connections to enable mocking in tests.

Summary

Callbacks

call_tool(pid, tool_name, args, opts)

@callback call_tool(pid(), tool_name :: String.t(), args :: map(), opts :: keyword()) ::
  {:ok, map()} | {:error, term()}

call_tool_stream(pid, tool_name, args, opts)

@callback call_tool_stream(
  pid(),
  tool_name :: String.t(),
  args :: map(),
  opts :: keyword()
) ::
  {:ok, Enumerable.t()} | {:error, term()}

close(pid)

@callback close(pid()) :: :ok | {:error, term()}

get_last_used(pid)

@callback get_last_used(pid()) :: integer()

send_notification(pid, method, params, opts)

@callback send_notification(
  pid(),
  method :: String.t(),
  params :: map(),
  opts :: keyword()
) ::
  :ok | {:error, term()}

send_request(pid, method, params, opts)

@callback send_request(pid(), method :: String.t(), params :: map(), opts :: keyword()) ::
  {:ok, map()} | {:error, term()}

start_link(provider, opts)

@callback start_link(provider :: map(), opts :: keyword()) ::
  {:ok, pid()} | {:error, term()}

update_last_used(pid)

@callback update_last_used(pid()) :: :ok