# `ExMCP.Client.Types`
[🔗](https://github.com/azmaveth/ex_mcp/blob/v1.0.0/lib/ex_mcp/client/types.ex#L1)

Shared type definitions for ExMCP.Client modules.

This module provides common type definitions used across the client
architecture to ensure consistency and type safety.

# `client`

```elixir
@type client() :: GenServer.server()
```

A client process reference - can be a PID, registered name, or GenServer reference.

# `default_timeout`

```elixir
@type default_timeout() :: pos_integer()
```

Default timeout value in milliseconds.

# `mcp_method`

```elixir
@type mcp_method() :: String.t()
```

MCP method name used in requests.

# `mcp_params`

```elixir
@type mcp_params() :: map()
```

Parameters map for MCP requests.

# `mcp_response`

```elixir
@type mcp_response() :: {:ok, any()} | {:error, any()}
```

Standard MCP response format - either success with data or error with reason.

# `request_opts`

```elixir
@type request_opts() :: keyword()
```

Options for MCP requests, typically including timeout and format options.

# `request_opts_or_timeout`

```elixir
@type request_opts_or_timeout() :: keyword() | timeout()
```

Request options or timeout value.

# `tool_arguments`

```elixir
@type tool_arguments() :: map()
```

Arguments map for tool calls.

# `tool_name`

```elixir
@type tool_name() :: String.t()
```

MCP tool name.

# `uri`

```elixir
@type uri() :: String.t()
```

MCP resource URI - typically a file:// or http:// URI.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
