cxxmcp 1.1.6
C++ MCP SDK
Loading...
Searching...
No Matches
capabilities.hpp File Reference

MCP client and server capability declarations. More...

#include <optional>
#include <string>
#include <utility>
#include "cxxmcp/protocol/task.hpp"
#include "cxxmcp/protocol/types.hpp"

Go to the source code of this file.

Classes

struct  mcp::protocol::ToolCapabilities
 Server capability flags for tool discovery and invocation. More...
 
struct  mcp::protocol::ResourceCapabilities
 Server capability flags for resources. More...
 
struct  mcp::protocol::PromptCapabilities
 Server capability flags for prompts. More...
 
struct  mcp::protocol::LoggingCapabilities
 Server capability flags for logging. More...
 
struct  mcp::protocol::SamplingCapabilities
 Client capability flags for sampling requests from the server. More...
 
struct  mcp::protocol::CompletionCapabilities
 Server capability flags for completion requests. More...
 
struct  mcp::protocol::RootCapabilities
 Client capability flags for roots. More...
 
struct  mcp::protocol::ElicitationCapabilities
 Client capability flags for elicitation. More...
 
struct  mcp::protocol::TaskCapabilities
 Capability flags for asynchronous task support. More...
 
struct  mcp::protocol::ClientCapabilities
 Capabilities advertised by an MCP client during initialization. More...
 
class  mcp::protocol::ClientCapabilitiesBuilder
 Fluent builder for client initialize capabilities. More...
 
struct  mcp::protocol::ServerCapabilities
 Capabilities advertised by an MCP server in the initialize result. More...
 
class  mcp::protocol::ServerCapabilitiesBuilder
 Fluent builder for server initialize result capabilities. More...
 

Functions

Json mcp::protocol::capability_raw_object (const Json &raw)
 
Json mcp::protocol::capability_member_object (const Json &object, const std::string &key)
 
Json mcp::protocol::task_capabilities_to_json (const TaskCapabilities &capabilities)
 Serializes task capability flags using object presence semantics.
 
bool mcp::protocol::capability_member_enabled (const Json &json)
 Interprets either modern object presence or legacy boolean presence.
 
TaskCapabilities mcp::protocol::task_capabilities_from_json (const Json &tasks)
 Parses task capabilities from an MCP capability object.
 
bool mcp::protocol::task_capability_member_valid (const Json &json)
 
bool mcp::protocol::task_capabilities_are_valid (const Json &tasks)
 
ClientCapabilitiesBuilder mcp::protocol::client_capabilities ()
 Starts a fluent client capability builder.
 
Json mcp::protocol::client_capabilities_to_json (const ClientCapabilities &capabilities)
 Serializes client capabilities to the MCP initialize payload shape.
 
ServerCapabilitiesBuilder mcp::protocol::server_capabilities ()
 Starts a fluent server capability builder.
 
Json mcp::protocol::server_capabilities_to_json (const ServerCapabilities &capabilities)
 Serializes server capabilities to the MCP initialize result shape.
 
std::optional< ClientCapabilitiesmcp::protocol::client_capabilities_from_json (const Json &json)
 Parses client capabilities from an initialize request.
 
std::optional< ServerCapabilitiesmcp::protocol::server_capabilities_from_json (const Json &json)
 Parses server capabilities from an initialize result.
 

Detailed Description

MCP client and server capability declarations.

Capabilities are exchanged during the initialize lifecycle request and response. They gate which feature methods and notifications a peer may use after initialization, and they preserve unknown extension data for forward compatibility.

Function Documentation

◆ capability_member_enabled()

bool mcp::protocol::capability_member_enabled ( const Json json)
inline

Interprets either modern object presence or legacy boolean presence.

Parameters
jsonCapability member value.
Returns
True when the capability is advertised.

◆ client_capabilities_from_json()

std::optional< ClientCapabilities > mcp::protocol::client_capabilities_from_json ( const Json json)
inline

Parses client capabilities from an initialize request.

Parameters
jsonJSON object from initialize.params.capabilities.
Returns
Parsed capabilities, or nullopt if the top-level value is invalid.

◆ client_capabilities_to_json()

Json mcp::protocol::client_capabilities_to_json ( const ClientCapabilities capabilities)
inline

Serializes client capabilities to the MCP initialize payload shape.

Parameters
capabilitiesClient capability flags and extension data.
Returns
JSON object suitable for initialize.params.capabilities.

◆ server_capabilities_from_json()

std::optional< ServerCapabilities > mcp::protocol::server_capabilities_from_json ( const Json json)
inline

Parses server capabilities from an initialize result.

Parameters
jsonJSON object from initialize.result.capabilities.
Returns
Parsed capabilities, or nullopt if the top-level value is invalid.

◆ server_capabilities_to_json()

Json mcp::protocol::server_capabilities_to_json ( const ServerCapabilities capabilities)
inline

Serializes server capabilities to the MCP initialize result shape.

Parameters
capabilitiesServer capability flags and extension data.
Returns
JSON object suitable for initialize.result.capabilities.

◆ task_capabilities_from_json()

TaskCapabilities mcp::protocol::task_capabilities_from_json ( const Json tasks)
inline

Parses task capabilities from an MCP capability object.

Parameters
tasksJSON object from a tasks capability member.
Returns
Parsed task capability flags.

◆ task_capabilities_to_json()

Json mcp::protocol::task_capabilities_to_json ( const TaskCapabilities capabilities)
inline

Serializes task capability flags using object presence semantics.

Parameters
capabilitiesTask capability flags.
Returns
JSON object suitable for the tasks capability member.