Jido.MCP (Jido MCP v1.0.0)

Copy Markdown View Source

Public API for calling MCP servers through direct Anubis client integration.

Summary

Types

endpoint_id()

@type endpoint_id() :: atom()

result()

@type result() :: {:ok, map()} | {:error, map()}

Functions

await_endpoint_ready(endpoint_id, opts \\ [])

@spec await_endpoint_ready(
  endpoint_id(),
  keyword()
) :: :ok | {:error, term()}

Ensures an endpoint client is started and MCP initialization is complete.

This is intended for flows that must guarantee server readiness before subsequent operations (for example runtime tool synchronization).

call_tool(endpoint_id, tool_name, arguments \\ %{}, opts \\ [])

@spec call_tool(endpoint_id(), String.t(), map(), keyword()) :: result()

endpoint_status(endpoint_id)

@spec endpoint_status(endpoint_id()) :: {:ok, map()} | {:error, term()}

get_prompt(endpoint_id, prompt_name, arguments \\ %{}, opts \\ [])

@spec get_prompt(endpoint_id(), String.t(), map(), keyword()) :: result()

list_prompts(endpoint_id, opts \\ [])

@spec list_prompts(
  endpoint_id(),
  keyword()
) :: result()

list_resource_templates(endpoint_id, opts \\ [])

@spec list_resource_templates(
  endpoint_id(),
  keyword()
) :: result()

list_resources(endpoint_id, opts \\ [])

@spec list_resources(
  endpoint_id(),
  keyword()
) :: result()

list_tools(endpoint_id, opts \\ [])

@spec list_tools(
  endpoint_id(),
  keyword()
) :: result()

read_resource(endpoint_id, uri, opts \\ [])

@spec read_resource(endpoint_id(), String.t(), keyword()) :: result()

refresh_endpoint(endpoint_id)

@spec refresh_endpoint(endpoint_id()) ::
  {:ok, Jido.MCP.Endpoint.t(), Jido.MCP.ClientPool.client_ref()}
  | {:error, term()}

register_endpoint(endpoint)

@spec register_endpoint(Jido.MCP.Endpoint.t()) ::
  {:ok, Jido.MCP.Endpoint.t()}
  | {:error,
     {:endpoint_already_registered, atom()} | {:invalid_endpoint, term()}}

unregister_endpoint(endpoint_id)

@spec unregister_endpoint(endpoint_id()) ::
  {:ok, Jido.MCP.Endpoint.t()} | {:error, :unknown_endpoint}