111 return h.
client != NULL && h.
id > 0;
217 const cmcp_json_t *params,
282 cmcp_json_t *params);
314 const char *message,
void *userdata);
399 char **out_text,
size_t *out_n);
411 cmcp_json_t **out_messages);
510 cmcp_json_t **out_result);
526 const char *stop_reason);
551 cmcp_json_t **out_result);
571 cmcp_json_t *content);
int cmcp_client_cancel(cmcp_client_t *c, long long id, const char *reason)
void cmcp_tool_result_clear(cmcp_tool_result_t *r)
void cmcp_client_free(cmcp_client_t *c)
cmcp_tool_result_t cmcp_client_tool_call(cmcp_client_t *c, const char *name, cmcp_json_t *args)
void cmcp_client_set_elicitation_handler(cmcp_client_t *c, cmcp_elicitation_handler_fn fn, void *userdata)
int cmcp_client_resources_list(cmcp_client_t *c, cmcp_session_resource_t **out_resources, size_t *out_n)
void(* cmcp_progress_fn)(double progress, double total, const char *message, void *userdata)
int(* cmcp_elicitation_handler_fn)(const cmcp_json_t *params, void *userdata, cmcp_json_t **out_result)
cmcp_tool_result_t cmcp_client_tool_wait(cmcp_tool_handle_t h)
int cmcp_client_handshake(cmcp_client_t *c, cmcp_transport_t *t)
cmcp_json_t * cmcp_sampling_text_result(const char *text, const char *model, const char *stop_reason)
void cmcp_client_set_capabilities(cmcp_client_t *c, const cmcp_client_capabilities_t *caps)
int cmcp_client_request(cmcp_client_t *c, const char *method, cmcp_json_t *params, cmcp_rpc_message_t *out_response)
cmcp_tool_handle_t cmcp_client_tool_call_async(cmcp_client_t *c, const char *name, cmcp_json_t *args)
const char * cmcp_client_server_protocol(const cmcp_client_t *c)
cmcp_json_t * cmcp_elicitation_result(const char *action, cmcp_json_t *content)
int cmcp_client_tools_list(cmcp_client_t *c, cmcp_session_tool_t **out_tools, size_t *out_n)
@ CMCP_TOOL_ERR_CANCELLED
@ CMCP_TOOL_ERR_TOOL_LEVEL
void cmcp_client_set_sampling_handler(cmcp_client_t *c, cmcp_sampling_handler_fn fn, void *userdata)
int cmcp_client_prompts_list(cmcp_client_t *c, cmcp_session_prompt_t **out_prompts, size_t *out_n)
cmcp_client_t * cmcp_client_new(const char *name, const char *version)
int cmcp_client_resource_read(cmcp_client_t *c, const char *uri, char **out_text, size_t *out_n)
void cmcp_client_set_notification_handler(cmcp_client_t *c, cmcp_notification_fn fn, void *userdata)
int cmcp_client_call_async_progress(cmcp_client_t *c, const char *method, cmcp_json_t *params, cmcp_progress_fn fn, void *userdata, long long *out_id)
const cmcp_server_capabilities_t * cmcp_client_server_caps(const cmcp_client_t *c)
int(* cmcp_sampling_handler_fn)(const cmcp_json_t *params, void *userdata, cmcp_json_t **out_result)
const char * cmcp_client_server_name(const cmcp_client_t *c)
int cmcp_client_notify_roots_changed(cmcp_client_t *c)
int cmcp_client_prompt_get(cmcp_client_t *c, const char *name, cmcp_json_t *args, cmcp_json_t **out_messages)
struct cmcp_client cmcp_client_t
int cmcp_client_call_async(cmcp_client_t *c, const char *method, cmcp_json_t *params, long long *out_id)
const char * cmcp_client_server_version(const cmcp_client_t *c)
int cmcp_client_set_description(cmcp_client_t *c, const char *description)
int cmcp_client_tool_call_text(cmcp_client_t *c, const char *name, cmcp_json_t *args, char **out_text, cmcp_rpc_error_t **out_rpc_err)
int cmcp_client_wait(cmcp_client_t *c, long long id, cmcp_rpc_message_t *out_response)
int cmcp_client_set_log_level(cmcp_client_t *c, cmcp_log_level_t level)
int cmcp_client_notify(cmcp_client_t *c, const char *method, cmcp_json_t *params)
const char * cmcp_client_server_description(const cmcp_client_t *c)
int cmcp_client_connect_stdio(cmcp_client_t *c, const char *path, char *const argv[], char *const envp[])
void(* cmcp_notification_fn)(const char *method, const cmcp_json_t *params, void *userdata)
int cmcp_client_set_roots(cmcp_client_t *c, const cmcp_root_t *roots, size_t n)
Multi-server primitive aggregator on top of N cMCP clients.
Transport vtable + stdio/HTTP constructors.
JSON-RPC 2.0 message shapes, capability structs, dispatch types.