cxxmcp 1.1.6
C++ MCP SDK
Loading...
Searching...
No Matches
mcp::Peer< RoleClient > Class Reference

Client-side peer boundary for talking to an MCP server. More...

#include <peer.hpp>

Classes

class  Builder
 Fluent builder for common client peer construction. More...
 
class  TaskHandle
 

Public Member Functions

 Peer (std::unique_ptr< client::Transport > transport)
 Creates a client peer from an owned transport.
 
 Peer (std::unique_ptr< transport::ClientTransport > transport)
 Creates a client peer from an owned role-generic transport.
 
 Peer (client::Client client)
 Creates a client peer from an existing client implementation.
 
 CXXMCP_DEPRECATED ("client() is a compatibility escape hatch; prefer ClientPeer methods") client
 
void stop () noexcept
 
core::Result< protocol::Jsoninitialize (std::string client_name="cxxmcp", std::string client_version="0")
 
core::Result< protocol::Jsoninitialize (std::string client_name, std::string client_version, RequestOptions options)
 
std::optional< protocol::ServerCapabilitiesserver_capabilities () const
 
core::Result< core::Unitnotify_initialized ()
 
core::Result< core::Unitnotify_initialized (RequestOptions options)
 
core::Result< core::Unitnotify_cancelled (protocol::RequestId request_id, std::string reason={})
 
core::Result< core::Unitnotify_progress (protocol::ProgressToken progress_token, double progress, std::optional< double > total=std::nullopt, std::string message={})
 
core::Result< core::Unitnotify_roots_list_changed ()
 
core::Result< core::Unitping ()
 
std::vector< protocol::Rootlist_roots () const
 
Peerset_roots (std::vector< protocol::Root > roots)
 
Peerset_capabilities (protocol::ClientCapabilities capabilities)
 
Peeron_initialized (client::Client::InitializedHandler handler)
 
Peeron_cancelled (client::Client::CancelledHandler handler)
 
Peeron_logging_message (client::Client::LoggingMessageHandler handler)
 
Peeron_tool_list_changed (client::Client::ListChangedHandler handler)
 
Peeron_prompt_list_changed (client::Client::ListChangedHandler handler)
 
Peeron_resource_list_changed (client::Client::ListChangedHandler handler)
 
Peeron_resource_updated (client::Client::ResourceUpdatedHandler handler)
 
Peeron_progress (client::Client::ProgressHandler handler)
 
Peeron_elicitation_complete (client::Client::ElicitationCompleteHandler handler)
 
Peeron_task_status (client::Client::TaskStatusHandler handler)
 
Peeron_roots_list_changed (client::Client::ListChangedHandler handler)
 
Peeron_list_roots_request (client::Client::ListRootsRequestHandler handler)
 
Peeron_list_roots_request (client::Client::RootsListRequestCancellationHandler handler)
 
Peeron_create_message_request (client::Client::CreateMessageRequestHandler handler)
 
Peeron_create_message_request (client::Client::SamplingRequestCancellationHandler handler)
 
Peeron_create_elicitation_request (client::Client::CreateElicitationRequestHandler handler)
 
Peeron_create_elicitation_request (client::Client::ElicitationRequestCancellationHandler handler)
 
Peeron_custom_request (client::Client::CustomRequestHandler handler)
 
Peeron_custom_request (client::Client::CustomRequestCancellationHandler handler)
 
Peeron_raw_notification (client::Client::RawNotificationHandler handler)
 
Peerset_handler (const client::ClientHandler &handler)
 
Peerset_handler (const client::ClientHandlerInterface &handler)
 
core::Result< std::vector< protocol::ToolDefinition > > list_tools ()
 
core::Result< protocol::ToolsListResultlist_tools_page (const protocol::PaginatedRequestParams &params={})
 
core::Result< std::vector< protocol::ToolDefinition > > list_all_tools ()
 
core::Result< protocol::ToolResultcall_tool (const protocol::ToolCall &call)
 
core::Result< protocol::CreateTaskResultcall_tool_task (const protocol::ToolCall &call)
 
core::Result< TaskHandle > call_tool_task_handle (const protocol::ToolCall &call)
 
core::Result< protocol::ToolResultcall_tool (std::string_view name, const protocol::Json &arguments=protocol::Json::object())
 
core::Result< std::vector< protocol::Prompt > > list_prompts ()
 
core::Result< protocol::PromptsListResultlist_prompts_page (const protocol::PaginatedRequestParams &params={})
 
core::Result< std::vector< protocol::Prompt > > list_all_prompts ()
 
core::Result< protocol::PromptsGetResultget_prompt (const protocol::PromptsGetParams &params)
 
core::Result< protocol::PromptsGetResultget_prompt (std::string_view name, const protocol::Json &arguments=protocol::Json::object())
 
core::Result< std::vector< protocol::Resource > > list_resources ()
 
core::Result< protocol::ResourcesListResultlist_resources_page (const protocol::PaginatedRequestParams &params={})
 
core::Result< std::vector< protocol::Resource > > list_all_resources ()
 
core::Result< std::vector< protocol::ResourceTemplate > > list_resource_templates ()
 
core::Result< protocol::ResourceTemplatesListResultlist_resource_templates_page (const protocol::PaginatedRequestParams &params={})
 
core::Result< std::vector< protocol::ResourceTemplate > > list_all_resource_templates ()
 
core::Result< protocol::ResourcesReadResultread_resource (const protocol::ResourcesReadParams &params)
 
core::Result< protocol::ResourcesReadResultread_resource (std::string_view uri)
 
core::Result< protocol::CompleteResultcomplete (const protocol::CompleteParams &request)
 
core::Result< protocol::Jsoncomplete (const protocol::Json &request)
 
core::Result< protocol::CompletionResultcomplete_prompt_argument (std::string_view prompt_name, std::string_view argument_name, std::string current_value, protocol::Json context=protocol::Json::object())
 
core::Result< protocol::CompletionResultcomplete_resource_argument (std::string_view uri_template, std::string_view argument_name, std::string current_value, protocol::Json context=protocol::Json::object())
 
core::Result< std::vector< std::string > > complete_prompt_simple (std::string_view prompt_name, std::string_view argument_name, std::string current_value, protocol::Json context=protocol::Json::object())
 
core::Result< std::vector< std::string > > complete_resource_simple (std::string_view uri_template, std::string_view argument_name, std::string current_value, protocol::Json context=protocol::Json::object())
 
core::Result< protocol::CreateMessageResultcreate_message (const protocol::CreateMessageParams &request)
 
core::Result< protocol::Jsoncreate_message (const protocol::Json &request)
 
core::Result< protocol::CreateElicitationResultcreate_elicitation (const protocol::CreateElicitationRequestParam &request)
 
core::Result< protocol::Jsoncreate_elicitation (const protocol::Json &request)
 
core::Result< std::vector< protocol::Task > > list_tasks ()
 
core::Result< protocol::TaskListResultlist_tasks_page (const protocol::TaskListParams &params={})
 
core::Result< std::vector< protocol::Task > > list_all_tasks ()
 
core::Result< protocol::Taskget_task (std::string_view task_id)
 
core::Result< protocol::Taskcancel_task (std::string_view task_id)
 
core::Result< protocol::Jsontask_result (std::string_view task_id)
 
core::Result< core::Unitset_level (std::string_view level)
 
core::Result< core::Unitsubscribe (std::string_view uri)
 
core::Result< core::Unitunsubscribe (std::string_view uri)
 
core::Result< protocol::Jsonraw_request (const protocol::JsonRpcRequest &request)
 
RequestHandle< protocol::Jsonrequest_async (std::string method, protocol::Json params=protocol::Json::object(), RequestOptions options={})
 
template<class T , class Parser >
RequestHandle< T > request_async (std::string method, protocol::Json params, Parser parser, RequestOptions options={})
 
RequestHandle< std::vector< protocol::ToolDefinition > > list_tools_async (RequestOptions options={})
 
RequestHandle< std::vector< protocol::Prompt > > list_prompts_async (RequestOptions options={})
 
RequestHandle< std::vector< protocol::Resource > > list_resources_async (RequestOptions options={})
 
RequestHandle< std::vector< protocol::ResourceTemplate > > list_resource_templates_async (RequestOptions options={})
 
RequestHandle< protocol::ToolResultcall_tool_async (const protocol::ToolCall &call, RequestOptions options={})
 
RequestHandle< protocol::ToolResultcall_tool_async (std::string_view name, const protocol::Json &arguments=protocol::Json::object(), RequestOptions options={})
 
RequestHandle< protocol::CreateTaskResultcall_tool_task_async (const protocol::ToolCall &call, RequestOptions options={})
 
RequestHandle< protocol::PromptsGetResultget_prompt_async (const protocol::PromptsGetParams &params, RequestOptions options={})
 
RequestHandle< protocol::PromptsGetResultget_prompt_async (std::string_view name, const protocol::Json &arguments=protocol::Json::object(), RequestOptions options={})
 
RequestHandle< protocol::ResourcesReadResultread_resource_async (const protocol::ResourcesReadParams &params, RequestOptions options={})
 
RequestHandle< protocol::ResourcesReadResultread_resource_async (std::string_view uri, RequestOptions options={})
 
RequestHandle< protocol::CompleteResultcomplete_async (const protocol::CompleteParams &request, RequestOptions options={})
 
RequestHandle< protocol::Jsoncomplete_async (const protocol::Json &request, RequestOptions options={})
 
RequestHandle< protocol::CreateMessageResultcreate_message_async (const protocol::CreateMessageParams &request, RequestOptions options={})
 
RequestHandle< protocol::Jsoncreate_message_async (const protocol::Json &request, RequestOptions options={})
 
RequestHandle< protocol::CreateElicitationResultcreate_elicitation_async (const protocol::CreateElicitationRequestParam &request, RequestOptions options={})
 
RequestHandle< protocol::Jsoncreate_elicitation_async (const protocol::Json &request, RequestOptions options={})
 
RequestHandle< std::vector< protocol::Task > > list_tasks_async (RequestOptions options={})
 
RequestHandle< protocol::Taskget_task_async (const protocol::TaskGetParams &request, RequestOptions options={})
 
RequestHandle< protocol::Taskget_task_async (std::string_view task_id, RequestOptions options={})
 
RequestHandle< protocol::Taskcancel_task_async (const protocol::TaskCancelParams &request, RequestOptions options={})
 
RequestHandle< protocol::Taskcancel_task_async (std::string_view task_id, RequestOptions options={})
 
RequestHandle< protocol::Jsontask_result_async (const protocol::TaskResultParams &request, RequestOptions options={})
 
RequestHandle< protocol::Jsontask_result_async (std::string_view task_id, RequestOptions options={})
 
core::Result< core::Unitraw_notification (const protocol::JsonRpcNotification &notification)
 
core::Result< std::optional< protocol::JsonRpcMessage > > dispatch_message (const protocol::JsonRpcMessage &message)
 Dispatches one inbound role-generic transport message.
 
core::Result< core::Unitserve_transport (transport::ClientTransport &transport, CancellationToken cancellation=CancellationToken::none())
 Runs a sequential receive loop over a role-generic client transport.
 

Static Public Member Functions

static Peer connect_stdio (client::Client::StdioEndpoint endpoint)
 
static Builder builder ()
 Starts a fluent builder for common client peer construction.
 

Detailed Description

Client-side peer boundary for talking to an MCP server.

When constructed with a role-generic ClientTransport, request/response helpers serialize native transport access. This preserves the transport contract that receive() is single-consumer and avoids competing receive loops until a dedicated client receive pump is introduced.

Member Function Documentation

◆ dispatch_message()

core::Result< std::optional< protocol::JsonRpcMessage > > mcp::Peer< RoleClient >::dispatch_message ( const protocol::JsonRpcMessage message)
inline

Dispatches one inbound role-generic transport message.

Requests produce a JSON-RPC response message, notifications produce no outbound message, and standalone responses remain the responsibility of request-handle correlation paths.


The documentation for this class was generated from the following file: