Scroll to navigation

MCP::Client(3) User Contributed Perl Documentation MCP::Client(3)

NAME

MCP::Server::Transport::HTTP - HTTP transport for MCP servers

SYNOPSIS

  use MCP::Client;
  my $client = MCP::Client->new(url => 'http://localhost:3000/mcp');
  $client->initialize_session;
  my $tools = $client->list_tools;

DESCRIPTION

MCP::Client is a client for MCP (Model Context Protocol) that communicates with MCP servers over HTTP.

ATTRIBUTES

MCP::Client inherits all attributes from Mojo::Base and implements the following new ones.

name

  my $name = $client->name;
  $client  = $client->name('PerlClient');

The name of the client, defaults to "PerlClient".

session_id

  my $session_id = $client->session_id;
  $client        = $client->session_id('12345');

The session ID for the client, used to maintain state across requests.

ua

  my $ua  = $client->ua;
  $client = $client->ua(Mojo::UserAgent->new);

The user agent used for making HTTP requests, defaults to a new instance of Mojo::UserAgent.

url

  my $url  = $client->url;
  $client  = $client->url('http://localhost:3000/mcp');

The URL of the MCP server, defaults to "http://localhost:3000/mcp".

version

  my $version = $client->version;
  $client     = $client->version('1.0.0');

The version of the client, defaults to 1.0.0.

METHODS

MCP::Client inherits all methods from Mojo::Base and implements the following new ones.

build_request

  my $request = $client->build_request('method_name', {param1 => 'value1'});

Builds a JSON-RPC request with the given method name and parameters.

build_notification

  my $notification = $client->build_notification('method_name', {param1 => 'value1'});

Builds a JSON-RPC notification with the given method name and parameters.

call_tool

  my $result = $client->call_tool('tool_name');
  my $result = $client->call_tool('tool_name', {arg1 => 'value1'});

Calls a tool on the MCP server with the specified name and arguments, returning the result.

initialize_session

  my $result = $client->initialize_session;

Initializes a session with the MCP server, setting up the protocol version and client information.

list_tools

  my $tools = $client->list_tools;

Lists all available tools on the MCP server.

ping

  my $result = $client->ping;

Sends a ping request to the MCP server to check connectivity.

send_request

  my $response = $client->send_request($request);

Sends a JSON-RPC request to the MCP server and returns the response.

SEE ALSO

MCP, <https://mojolicious.org>, <https://modelcontextprotocol.io>.

2025-08-05 perl v5.42.0