53 const std::string& name,
54 const std::string& description,
55 const json& input_schema);
62 asio::awaitable<CallToolResult> execute_result_async(
const json& arguments);
80 asio::awaitable<std::string>
execute_async(
const json& arguments)
override;
88 std::string
get_name()
const override {
return definition_.name; }
92 MCPTool(std::shared_ptr<detail::ProtocolSession> session,
93 ToolDefinition definition);
95 std::shared_ptr<detail::ProtocolSession> protocol_session();
97 std::string server_url_;
98 std::shared_ptr<detail::ProtocolSession> session_;
99 ToolDefinition definition_;
142 MCPClient(
const std::string& server_url, MCPClientConfig config);
177 bool initialize(const std::
string& client_name = "neograph");
180 asio::awaitable<
bool> initialize_async(const std::
string& client_name = "neograph");
187 bool initialize(const std::
string& client_name,
188 std::chrono::steady_clock::time_point deadline,
189 std::shared_ptr<graph::CancelToken> cancel_token);
190 asio::awaitable<
bool> initialize_async(const std::
string& client_name,
191 std::chrono::steady_clock::time_point deadline,
192 std::shared_ptr<graph::CancelToken> cancel_token);
202 void set_tool_list_changed_handler(std::function<
void()> handler);
204 bool is_initialized() const noexcept;
205 InitializeResult get_initialize_result() const;
211 std::vector<std::unique_ptr<
Tool>> get_tools();
214 ListToolsPage list_tools(
215 const std::optional<std::
string>& cursor = std::nullopt);
216 asio::awaitable<ListToolsPage> list_tools_async(
217 const std::optional<std::
string>& cursor = std::nullopt);
220 std::vector<ToolDefinition> get_tool_definitions();
228 json call_tool(const std::
string& name, const json& arguments);
230 CallToolResult call_tool_result(const std::
string& name,
231 const json& arguments);
235 asio::awaitable<json> call_tool_async(const std::
string& name,
236 const json& arguments);
237 asio::awaitable<CallToolResult> call_tool_result_async(
238 const std::
string& name,
239 const json& arguments);
242 asio::awaitable<CallToolResult> call_tool_result_async(
243 const std::
string& name,
244 const json& arguments,
245 std::chrono::steady_clock::time_point deadline,
246 std::shared_ptr<graph::CancelToken> cancel_token);
259 asio::awaitable<json> rpc_call_async(
260 const std::
string& method,
261 const json& params = json::
object(),
262 std::chrono::steady_clock::time_point deadline =
263 std::chrono::steady_clock::time_point::max(),
264 std::shared_ptr<graph::CancelToken> cancel_token = {});
267 std::shared_ptr<detail::ProtocolSession> session_;
MCPClient(StdioClientConfig config)
Hardened local launch with validated replacement environment, cwd, bounded stderr capture,...