82 double progress,
double total,
147 cmcp_json_t **out_content,
236 const char *description,
237 const char *mime_type);
265 cmcp_json_t **out_contents,
294 const char *mime_type,
318 cmcp_json_t **out_messages);
400 cmcp_json_t *params);
505 cmcp_json_t *requested_schema,
506 cmcp_json_t **out_result);
527 cmcp_json_t **out_result);
Hand-rolled JSON value tree, parser, and emitter.
int cmcp_server_add_tool(cmcp_server_t *s, const cmcp_tool_t *tool)
int cmcp_server_notify_resources_changed(cmcp_server_t *s)
const char * cmcp_server_client_version(const cmcp_server_t *s)
int cmcp_server_notify_prompts_changed(cmcp_server_t *s)
int cmcp_server_add_resource(cmcp_server_t *s, const cmcp_resource_t *r)
int(* cmcp_prompt_handler_fn)(const cmcp_json_t *arguments, void *userdata, cmcp_handler_ctx_t *hctx, cmcp_json_t **out_messages)
const cmcp_client_capabilities_t * cmcp_server_client_caps(const cmcp_server_t *s)
int cmcp_server_run(cmcp_server_t *s, cmcp_transport_t *t)
struct cmcp_handler_ctx cmcp_handler_ctx_t
int cmcp_handler_cancelled(const cmcp_handler_ctx_t *hctx)
int(* cmcp_tool_handler_fn)(const cmcp_json_t *arguments, void *userdata, cmcp_handler_ctx_t *hctx, cmcp_json_t **out_content, int *out_is_error)
int cmcp_server_run_stdio(cmcp_server_t *s)
int cmcp_server_notify(cmcp_server_t *s, const char *method, cmcp_json_t *params)
cmcp_server_t * cmcp_server_new(const char *name, const char *version)
int cmcp_server_notify_tools_changed(cmcp_server_t *s)
int cmcp_server_log(cmcp_server_t *s, cmcp_log_level_t level, const char *logger, cmcp_json_t *data)
struct cmcp_server cmcp_server_t
int cmcp_handler_elicit(cmcp_handler_ctx_t *hctx, const char *message, cmcp_json_t *requested_schema, cmcp_json_t **out_result)
void cmcp_server_free(cmcp_server_t *s)
void cmcp_server_set_capabilities(cmcp_server_t *s, const cmcp_server_capabilities_t *caps)
cmcp_json_t * cmcp_prompt_text_messages(const char *role, const char *text)
int(* cmcp_resource_read_fn)(const char *uri, void *userdata, cmcp_handler_ctx_t *hctx, cmcp_json_t **out_contents, int *out_is_error)
int cmcp_server_set_description(cmcp_server_t *s, const char *description)
int cmcp_server_notify_resource_updated(cmcp_server_t *s, const char *uri)
const char * cmcp_handler_get_header(const cmcp_handler_ctx_t *hctx, const char *name)
cmcp_json_t * cmcp_tool_resource_link_content(const char *uri, const char *name, const char *description, const char *mime_type)
int cmcp_handler_progress(cmcp_handler_ctx_t *hctx, double progress, double total, const char *message)
const char * cmcp_server_client_description(const cmcp_server_t *s)
int cmcp_handler_elicit_url(cmcp_handler_ctx_t *hctx, const char *message, const char *url, cmcp_json_t **out_result)
cmcp_json_t * cmcp_tool_text_content(const char *text)
int cmcp_server_send_request(cmcp_server_t *s, cmcp_handler_ctx_t *hctx, const char *method, cmcp_json_t *params, cmcp_rpc_message_t *out_response)
int cmcp_server_add_prompt(cmcp_server_t *s, const cmcp_prompt_t *p)
const char * cmcp_server_client_name(const cmcp_server_t *s)
void cmcp_handler_set_structured(cmcp_handler_ctx_t *hctx, cmcp_json_t *value)
cmcp_json_t * cmcp_resource_text_contents(const char *uri, const char *mime_type, const char *text)
Transport vtable + stdio/HTTP constructors.
JSON-RPC 2.0 message shapes, capability structs, dispatch types.
cmcp_prompt_handler_fn handler
cmcp_resource_read_fn read