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

Server-side peer boundary for exposing MCP capabilities. More...

#include <peer.hpp>

Classes

class  Builder
 Fluent builder for common server peer construction. More...
 

Public Member Functions

 Peer (server::ServerOptions options={})
 Creates a server peer from options.
 
 Peer (std::unique_ptr< server::Server > server)
 Creates a server peer from an owned server implementation.
 
 CXXMCP_DEPRECATED ("server() is a compatibility escape hatch; prefer ServerPeer methods") server
 
Peer & set_completion_handler (server::Server::JsonContextHandler handler)
 
Peer & set_sampling_handler (server::Server::JsonHandler handler)
 
Peer & set_sampling_handler (server::Server::JsonContextHandler handler)
 
Peer & set_logging_handler (server::Server::LoggingHandler handler)
 
Peer & set_raw_request_handler (server::Server::RawRequestHandler handler)
 
Peer & set_raw_request_handler (server::Server::RawRequestContextHandler handler)
 
Peer & set_raw_notification_handler (server::Server::RawNotificationHandler handler)
 
Peer & set_custom_request_handler (server::Server::RawRequestHandler handler)
 
Peer & set_custom_request_handler (server::Server::RawRequestContextHandler handler)
 
Peer & set_custom_notification_handler (server::Server::RawNotificationHandler handler)
 
Peer & set_tools_list_handler (server::Server::ToolsListHandler handler)
 
Peer & set_prompts_list_handler (server::Server::PromptsListHandler handler)
 
Peer & set_resources_list_handler (server::Server::ResourcesListHandler handler)
 
Peer & set_resource_templates_list_handler (server::Server::ResourceTemplatesListHandler handler)
 
Peer & set_task_list_handler (server::Server::TaskListHandler handler)
 
Peer & set_task_get_handler (server::Server::TaskGetHandler handler)
 
Peer & set_task_cancel_handler (server::Server::TaskCancelHandler handler)
 
Peer & set_task_result_handler (server::Server::TaskResultHandler handler)
 
Peer & set_progress_handler (server::Server::ProgressHandler handler)
 
Peer & set_roots_list_changed_handler (server::Server::RootsListChangedHandler handler)
 
Peer & set_tool_list_changed_handler (server::Server::ListChangedHandler handler)
 
Peer & set_prompt_list_changed_handler (server::Server::ListChangedHandler handler)
 
Peer & set_resource_list_changed_handler (server::Server::ListChangedHandler handler)
 
Peer & set_resource_updated_handler (server::Server::ResourceUpdatedHandler handler)
 
Peer & set_handler (const server::ServerHandler &handler)
 
Peer & set_handler (const server::ServerHandlerInterface &handler)
 
std::vector< protocol::ToolDefinition > list_tools () const
 
core::Result< protocol::ToolDefinition > get_tool (std::string_view name) const
 
core::Result< protocol::ToolResult > call_tool (std::string_view name, protocol::Json arguments=protocol::Json::object(), const std::string &session_id={}) const
 
core::Result< protocol::ToolResult > call_tool (std::string_view name, protocol::Json arguments, const server::SessionContext &context, CancellationToken cancellation=CancellationToken::none()) const
 
std::vector< protocol::Prompt > list_prompts () const
 
core::Result< protocol::PromptsGetResult > get_prompt (std::string_view name, protocol::Json arguments=protocol::Json::object(), const std::string &session_id={}) const
 
core::Result< protocol::PromptsGetResult > get_prompt (std::string_view name, protocol::Json arguments, const server::SessionContext &context, CancellationToken cancellation=CancellationToken::none()) const
 
std::vector< protocol::Resource > list_resources () const
 
core::Result< protocol::ResourcesReadResult > read_resource (std::string_view uri, protocol::Json params=protocol::Json::object(), const std::string &session_id={}) const
 
core::Result< protocol::ResourcesReadResult > read_resource (std::string_view uri, protocol::Json params, const server::SessionContext &context, CancellationToken cancellation=CancellationToken::none()) const
 
std::vector< protocol::ResourceTemplate > list_resource_templates () const
 
core::Result< protocol::Json > initialize ()
 
core::Result< protocol::Json > ping (const server::SessionContext &context={})
 
core::Result< protocol::JsonRpcResponse > handle_request (const protocol::JsonRpcRequest &request, const server::SessionContext &input_context={}, transport::ServerTransport *native_transport=nullptr)
 
core::Result< core::Unit > handle_notification (const protocol::JsonRpcNotification &notification, const server::SessionContext &context={})
 
core::Result< core::Unit > add_transport (std::unique_ptr< server::Transport > transport)
 
core::Result< core::Unit > add_transport (std::unique_ptr< transport::ServerTransport > transport)
 Adds an owned role-generic server transport.
 
core::Result< core::Unit > start (CancellationToken cancellation=CancellationToken::none())
 
void stop () noexcept
 
void wait_until_ready ()
 Blocks until all native transports are ready to process messages.
 
core::Result< core::Unit > notify_roots_list_changed ()
 
core::Result< core::Unit > notify_tool_list_changed ()
 
core::Result< core::Unit > notify_prompt_list_changed ()
 
core::Result< core::Unit > notify_resource_list_changed ()
 
core::Result< core::Unit > notify_resource_updated (std::string_view uri)
 
core::Result< core::Unit > notify_progress (const protocol::ProgressNotificationParams &params)
 
core::Result< core::Unit > notify_logging_message (const protocol::LoggingMessageNotificationParams &params)
 
core::Result< core::Unit > notify_elicitation_complete (std::string elicitation_id)
 
core::Result< core::Unit > notify_task_status (const protocol::Task &task)
 
core::Result< std::optional< protocol::JsonRpcMessage > > dispatch_message (const protocol::JsonRpcMessage &message, const server::SessionContext &context={}, transport::ServerTransport *native_transport=nullptr)
 Dispatches one inbound role-generic transport message.
 
core::Result< core::Unit > serve_transport (transport::ServerTransport &transport, const server::SessionContext &context={}, CancellationToken cancellation=CancellationToken::none())
 Runs a receive loop over a role-generic server transport.
 

Static Public Member Functions

static core::Result< Peer > build (server::ServerBuilder builder)
 
static Builder builder ()
 Starts a fluent builder for common server peer construction.
 

Detailed Description

Server-side peer boundary for exposing MCP capabilities.

Member Function Documentation

◆ dispatch_message()

core::Result< std::optional< protocol::JsonRpcMessage > > mcp::Peer< RoleServer >::dispatch_message ( const protocol::JsonRpcMessage &  message,
const server::SessionContext &  context = {},
transport::ServerTransport *  native_transport = nullptr 
)
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.

◆ serve_transport()

core::Result< core::Unit > mcp::Peer< RoleServer >::serve_transport ( transport::ServerTransport &  transport,
const server::SessionContext &  context = {},
CancellationToken  cancellation = CancellationToken::none() 
)
inline

Runs a receive loop over a role-generic server transport.

Initialize handshakes and notifications are dispatched on the receive thread. After initialization, requests are dispatched on workers so a long-running tool call does not block the transport from reading later requests.


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