9#include <unordered_map>
23namespace mcp::server {
109 const std::string& session_id)
const;
112 std::vector<protocol::ToolDefinition>
list()
const;
120 mutable std::mutex mutex_;
121 std::unordered_map<std::string, Entry> tools_;
122 mutable std::vector<protocol::ToolDefinition> sorted_tools_cache_;
123 mutable bool sorted_tools_cache_dirty_ =
true;
147 const std::string& session_id)
const;
161 std::vector<protocol::Prompt>
list()
const;
169 mutable std::mutex mutex_;
170 std::unordered_map<std::string, Entry> prompts_;
171 mutable std::vector<protocol::Prompt> sorted_prompts_cache_;
172 mutable bool sorted_prompts_cache_dirty_ =
true;
197 const std::string& session_id)
const;
210 std::vector<protocol::Resource>
list()
const;
218 mutable std::mutex mutex_;
219 std::unordered_map<std::string, Entry> resources_;
220 mutable std::vector<protocol::Resource> sorted_resources_cache_;
221 mutable bool sorted_resources_cache_dirty_ =
true;
244 std::vector<protocol::ResourceTemplate>
list()
const;
247 mutable std::mutex mutex_;
248 std::unordered_map<std::string, protocol::ResourceTemplate>
250 mutable std::vector<protocol::ResourceTemplate> sorted_templates_cache_;
251 mutable bool sorted_templates_cache_dirty_ =
true;
Copyable token observed by cancellation-aware SDK operations.
Definition cancellation.hpp:104
Interface for integrating a JSON Schema validator implementation.
Definition schema_validator.hpp:35
Registry of named MCP prompts and their handlers.
Definition registry.hpp:131
std::vector< protocol::Prompt > list() const
Return registered prompt definitions sorted by name.
core::Result< protocol::PromptsGetResult > get(std::string_view name, protocol::Json arguments, const std::string &session_id) const
Render a prompt with only a session id.
core::Result< core::Unit > add(protocol::Prompt prompt, PromptHandler handler)
Register a prompt definition and handler.
core::Result< protocol::PromptsGetResult > get(std::string_view name, protocol::Json arguments, const SessionContext &session_context) const
Render a prompt with full session metadata.
Registry of concrete MCP resources and read handlers.
Definition registry.hpp:180
core::Result< protocol::ResourcesReadResult > read(std::string_view uri, protocol::Json params, const std::string &session_id) const
Read a resource with only a session id.
core::Result< protocol::ResourcesReadResult > read(std::string_view uri, protocol::Json params, const SessionContext &session_context) const
Read a resource with full session metadata.
std::vector< protocol::Resource > list() const
Return registered resources sorted by URI.
core::Result< core::Unit > add(protocol::Resource resource, ResourceReadHandler handler)
Register a concrete resource and read handler.
Registry of advertised resource templates.
Definition registry.hpp:229
std::vector< protocol::ResourceTemplate > list() const
Return registered resource templates sorted by uriTemplate.
core::Result< core::Unit > add(protocol::ResourceTemplate resource_template)
Register a resource template.
Public server handler callback type aliases.
std::function< core::Result< protocol::ToolResult >(const ToolContext &)> ToolHandler
Application callback that executes a tool.
Definition handler_types.hpp:21
std::function< core::Result< protocol::ResourcesReadResult >(const ResourceContext &)> ResourceReadHandler
Application callback that reads a resource.
Definition handler_types.hpp:32
std::function< core::Result< protocol::PromptsGetResult >(const PromptContext &)> PromptHandler
Application callback that renders a prompt.
Definition handler_types.hpp:26
Prompt discovery and rendering payloads.
nlohmann::json Json
JSON value type used by all protocol DTOs.
Definition types.hpp:28
Resource listing, template, subscription, and read payloads.
Shared result and error primitives used by the public cxxmcp SDK.
tl::expected< T, Error > Result
Alias for the SDK result type.
Definition result.hpp:64
Pluggable JSON Schema validation contract for server-side SDK paths.
Server-side transport abstraction for MCP JSON-RPC traffic.
Prompt descriptor returned by prompts/list.
Definition prompt.hpp:83
URI template advertised by resources/templates/list.
Definition resource.hpp:127
Concrete resource advertised by resources/list.
Definition resource.hpp:28
Per-message connection metadata supplied to server handlers.
Definition transport.hpp:42