cxxmcp 1.1.6
C++ MCP SDK
Loading...
Searching...
No Matches
session.hpp
Go to the documentation of this file.
1// Copyright (c) 2025 [caomengxuan666]
2
3#pragma once
4
8
9#include <memory>
10#include <string>
11#include <vector>
12
14
15namespace mcp::client {
16
20 std::string client_name = "cxxmcp";
21
23 std::string client_version = "0";
24};
25
33 public:
38 explicit McpClientSession(std::unique_ptr<Transport> transport,
39 McpClientSessionOptions options = {});
40
43
46
49
52
55 const protocol::PromptsGetParams& params);
56
59
62
65 const protocol::ResourcesReadParams& params);
66
70
74
77
80
83
86 const protocol::CompleteParams& params);
87
89 core::Result<core::Unit> set_level(std::string_view level);
90
92 core::Result<core::Unit> subscribe(std::string_view uri);
93
96
99
101 const Client& client() const;
102
103 private:
104 Client client_;
106};
107
108} // namespace mcp::client
High-level MCP client compatibility API.
Definition client.hpp:132
Convenience wrapper that owns a Client and exposes common MCP workflows.
Definition session.hpp:32
core::Result< core::Unit > unsubscribe(std::string_view uri)
Unsubscribes from resource update notifications for a URI.
McpClientSession(std::unique_ptr< Transport > transport, McpClientSessionOptions options={})
Constructs a session from a transport and initialization options.
core::Result< protocol::ToolResult > call_tool(const protocol::ToolCall &call)
Calls a tool through the underlying Client.
core::Result< std::vector< protocol::Prompt > > discover_all_prompts()
Discovers all prompts by following pagination cursors.
const Client & client() const
Returns the underlying Client.
core::Result< protocol::CompleteResult > complete(const protocol::CompleteParams &params)
Requests completion using typed protocol parameters.
core::Result< std::vector< protocol::Resource > > discover_resources()
Discovers one page of resources.
Client & client()
Returns the mutable underlying Client.
core::Result< protocol::PromptsGetResult > get_prompt(const protocol::PromptsGetParams &params)
Gets a prompt using protocol parameters.
core::Result< std::vector< protocol::Prompt > > discover_prompts()
Discovers one page of prompts.
core::Result< std::vector< protocol::ToolDefinition > > discover_all_tools()
Discovers all tools by following pagination cursors.
core::Result< protocol::Json > initialize()
Sends the initialize request using the configured session options.
core::Result< std::vector< protocol::ResourceTemplate > > discover_all_resource_templates()
Discovers all resource templates by following pagination cursors.
core::Result< core::Unit > set_level(std::string_view level)
Sets the server logging level by level name.
core::Result< std::vector< protocol::Resource > > discover_all_resources()
Discovers all resources by following pagination cursors.
core::Result< core::Unit > mark_initialized()
Sends the initialized notification.
core::Result< core::Unit > subscribe(std::string_view uri)
Subscribes to resource update notifications for a URI.
core::Result< std::vector< protocol::ResourceTemplate > > discover_resource_templates()
Discovers one page of resource templates.
core::Result< protocol::ResourcesReadResult > read_resource(const protocol::ResourcesReadParams &params)
Reads a resource using protocol parameters.
core::Result< std::vector< protocol::ToolDefinition > > discover_tools()
Discovers one page of tools.
Core client compatibility API and transport interface for MCP clients.
tl::expected< T, Error > Result
Alias for the SDK result type.
Definition result.hpp:64
Options used by McpClientSession during initialization.
Definition session.hpp:18
std::string client_version
Client version advertised in the initialize request.
Definition session.hpp:23
std::string client_name
Client name advertised in the initialize request.
Definition session.hpp:20
Parameters for completion/complete.
Definition completion.hpp:98
Parameters for prompts/get.
Definition prompt.hpp:181
Parameters for resources/read.
Definition resource.hpp:227
Parameters for tools/call.
Definition tool.hpp:335