|
cxxmcp 1.1.6
C++ MCP SDK
|
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::Json > | initialize (std::string client_name="cxxmcp", std::string client_version="0") |
| core::Result< protocol::Json > | initialize (std::string client_name, std::string client_version, RequestOptions options) |
| std::optional< protocol::ServerCapabilities > | server_capabilities () const |
| core::Result< core::Unit > | notify_initialized () |
| core::Result< core::Unit > | notify_initialized (RequestOptions options) |
| core::Result< core::Unit > | notify_cancelled (protocol::RequestId request_id, std::string reason={}) |
| core::Result< core::Unit > | notify_progress (protocol::ProgressToken progress_token, double progress, std::optional< double > total=std::nullopt, std::string message={}) |
| core::Result< core::Unit > | notify_roots_list_changed () |
| core::Result< core::Unit > | ping () |
| std::vector< protocol::Root > | list_roots () const |
| Peer & | set_roots (std::vector< protocol::Root > roots) |
| Peer & | set_capabilities (protocol::ClientCapabilities capabilities) |
| Peer & | on_initialized (client::Client::InitializedHandler handler) |
| Peer & | on_cancelled (client::Client::CancelledHandler handler) |
| Peer & | on_logging_message (client::Client::LoggingMessageHandler handler) |
| Peer & | on_tool_list_changed (client::Client::ListChangedHandler handler) |
| Peer & | on_prompt_list_changed (client::Client::ListChangedHandler handler) |
| Peer & | on_resource_list_changed (client::Client::ListChangedHandler handler) |
| Peer & | on_resource_updated (client::Client::ResourceUpdatedHandler handler) |
| Peer & | on_progress (client::Client::ProgressHandler handler) |
| Peer & | on_elicitation_complete (client::Client::ElicitationCompleteHandler handler) |
| Peer & | on_task_status (client::Client::TaskStatusHandler handler) |
| Peer & | on_roots_list_changed (client::Client::ListChangedHandler handler) |
| Peer & | on_list_roots_request (client::Client::ListRootsRequestHandler handler) |
| Peer & | on_list_roots_request (client::Client::RootsListRequestCancellationHandler handler) |
| Peer & | on_create_message_request (client::Client::CreateMessageRequestHandler handler) |
| Peer & | on_create_message_request (client::Client::SamplingRequestCancellationHandler handler) |
| Peer & | on_create_elicitation_request (client::Client::CreateElicitationRequestHandler handler) |
| Peer & | on_create_elicitation_request (client::Client::ElicitationRequestCancellationHandler handler) |
| Peer & | on_custom_request (client::Client::CustomRequestHandler handler) |
| Peer & | on_custom_request (client::Client::CustomRequestCancellationHandler handler) |
| Peer & | on_raw_notification (client::Client::RawNotificationHandler handler) |
| Peer & | set_handler (const client::ClientHandler &handler) |
| Peer & | set_handler (const client::ClientHandlerInterface &handler) |
| core::Result< std::vector< protocol::ToolDefinition > > | list_tools () |
| core::Result< protocol::ToolsListResult > | list_tools_page (const protocol::PaginatedRequestParams ¶ms={}) |
| core::Result< std::vector< protocol::ToolDefinition > > | list_all_tools () |
| core::Result< protocol::ToolResult > | call_tool (const protocol::ToolCall &call) |
| core::Result< protocol::CreateTaskResult > | call_tool_task (const protocol::ToolCall &call) |
| core::Result< TaskHandle > | call_tool_task_handle (const protocol::ToolCall &call) |
| core::Result< protocol::ToolResult > | call_tool (std::string_view name, const protocol::Json &arguments=protocol::Json::object()) |
| core::Result< std::vector< protocol::Prompt > > | list_prompts () |
| core::Result< protocol::PromptsListResult > | list_prompts_page (const protocol::PaginatedRequestParams ¶ms={}) |
| core::Result< std::vector< protocol::Prompt > > | list_all_prompts () |
| core::Result< protocol::PromptsGetResult > | get_prompt (const protocol::PromptsGetParams ¶ms) |
| core::Result< protocol::PromptsGetResult > | get_prompt (std::string_view name, const protocol::Json &arguments=protocol::Json::object()) |
| core::Result< std::vector< protocol::Resource > > | list_resources () |
| core::Result< protocol::ResourcesListResult > | list_resources_page (const protocol::PaginatedRequestParams ¶ms={}) |
| core::Result< std::vector< protocol::Resource > > | list_all_resources () |
| core::Result< std::vector< protocol::ResourceTemplate > > | list_resource_templates () |
| core::Result< protocol::ResourceTemplatesListResult > | list_resource_templates_page (const protocol::PaginatedRequestParams ¶ms={}) |
| core::Result< std::vector< protocol::ResourceTemplate > > | list_all_resource_templates () |
| core::Result< protocol::ResourcesReadResult > | read_resource (const protocol::ResourcesReadParams ¶ms) |
| core::Result< protocol::ResourcesReadResult > | read_resource (std::string_view uri) |
| core::Result< protocol::CompleteResult > | complete (const protocol::CompleteParams &request) |
| core::Result< protocol::Json > | complete (const protocol::Json &request) |
| core::Result< protocol::CompletionResult > | complete_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::CompletionResult > | complete_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::CreateMessageResult > | create_message (const protocol::CreateMessageParams &request) |
| core::Result< protocol::Json > | create_message (const protocol::Json &request) |
| core::Result< protocol::CreateElicitationResult > | create_elicitation (const protocol::CreateElicitationRequestParam &request) |
| core::Result< protocol::Json > | create_elicitation (const protocol::Json &request) |
| core::Result< std::vector< protocol::Task > > | list_tasks () |
| core::Result< protocol::TaskListResult > | list_tasks_page (const protocol::TaskListParams ¶ms={}) |
| core::Result< std::vector< protocol::Task > > | list_all_tasks () |
| core::Result< protocol::Task > | get_task (std::string_view task_id) |
| core::Result< protocol::Task > | cancel_task (std::string_view task_id) |
| core::Result< protocol::Json > | task_result (std::string_view task_id) |
| core::Result< core::Unit > | set_level (std::string_view level) |
| core::Result< core::Unit > | subscribe (std::string_view uri) |
| core::Result< core::Unit > | unsubscribe (std::string_view uri) |
| core::Result< protocol::Json > | raw_request (const protocol::JsonRpcRequest &request) |
| RequestHandle< protocol::Json > | request_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::ToolResult > | call_tool_async (const protocol::ToolCall &call, RequestOptions options={}) |
| RequestHandle< protocol::ToolResult > | call_tool_async (std::string_view name, const protocol::Json &arguments=protocol::Json::object(), RequestOptions options={}) |
| RequestHandle< protocol::CreateTaskResult > | call_tool_task_async (const protocol::ToolCall &call, RequestOptions options={}) |
| RequestHandle< protocol::PromptsGetResult > | get_prompt_async (const protocol::PromptsGetParams ¶ms, RequestOptions options={}) |
| RequestHandle< protocol::PromptsGetResult > | get_prompt_async (std::string_view name, const protocol::Json &arguments=protocol::Json::object(), RequestOptions options={}) |
| RequestHandle< protocol::ResourcesReadResult > | read_resource_async (const protocol::ResourcesReadParams ¶ms, RequestOptions options={}) |
| RequestHandle< protocol::ResourcesReadResult > | read_resource_async (std::string_view uri, RequestOptions options={}) |
| RequestHandle< protocol::CompleteResult > | complete_async (const protocol::CompleteParams &request, RequestOptions options={}) |
| RequestHandle< protocol::Json > | complete_async (const protocol::Json &request, RequestOptions options={}) |
| RequestHandle< protocol::CreateMessageResult > | create_message_async (const protocol::CreateMessageParams &request, RequestOptions options={}) |
| RequestHandle< protocol::Json > | create_message_async (const protocol::Json &request, RequestOptions options={}) |
| RequestHandle< protocol::CreateElicitationResult > | create_elicitation_async (const protocol::CreateElicitationRequestParam &request, RequestOptions options={}) |
| RequestHandle< protocol::Json > | create_elicitation_async (const protocol::Json &request, RequestOptions options={}) |
| RequestHandle< std::vector< protocol::Task > > | list_tasks_async (RequestOptions options={}) |
| RequestHandle< protocol::Task > | get_task_async (const protocol::TaskGetParams &request, RequestOptions options={}) |
| RequestHandle< protocol::Task > | get_task_async (std::string_view task_id, RequestOptions options={}) |
| RequestHandle< protocol::Task > | cancel_task_async (const protocol::TaskCancelParams &request, RequestOptions options={}) |
| RequestHandle< protocol::Task > | cancel_task_async (std::string_view task_id, RequestOptions options={}) |
| RequestHandle< protocol::Json > | task_result_async (const protocol::TaskResultParams &request, RequestOptions options={}) |
| RequestHandle< protocol::Json > | task_result_async (std::string_view task_id, RequestOptions options={}) |
| core::Result< core::Unit > | raw_notification (const protocol::JsonRpcNotification ¬ification) |
| core::Result< std::optional< protocol::JsonRpcMessage > > | dispatch_message (const protocol::JsonRpcMessage &message) |
| Dispatches one inbound role-generic transport message. | |
| core::Result< core::Unit > | serve_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. | |
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.
|
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.