# Table of Contents - [Server](#server) - [`mcpc_server_t`](#=mcpc_server_t=) - [`mcpc_server_new_iostrm`](#=mcpc_server_new_iostrm=) - [`mcpc_server_new_tcp`](#=mcpc_server_new_tcp=) - [`mcpc_server_set_nament`](#=mcpc_server_set_nament=) - [`mcpc_server_capa_enable_prmt`](#=mcpc_server_capa_enable_prmt=) - [`mcpc_server_capa_enable_prmt_listchg`](#=mcpc_server_capa_enable_prmt_listchg=) - [`mcpc_server_capa_enable_tool`](#=mcpc_server_capa_enable_tool=) - [`mcpc_server_capa_enable_tool_listchg`](#=mcpc_server_capa_enable_tool_listchg=) - [`mcpc_server_capa_enable_rsc`](#=mcpc_server_capa_enable_rsc=) - [`mcpc_server_capa_enable_rsc_subscr`](#=mcpc_server_capa_enable_rsc_subscr=) - [`mcpc_server_capa_enable_rsc_listchg`](#=mcpc_server_capa_enable_rsc_listchg=) - [`mcpc_server_capa_enable_complt`](#=mcpc_server_capa_enable_complt=) - [`mcpc_server_add_tool`](#=mcpc_server_add_tool=) - [`mcpc_server_add_prmpt`](#=mcpc_server_add_prmpt=) - [`mcpc_server_add_rsc`](#=mcpc_server_add_rsc=) - [`mcpc_server_start`](#=mcpc_server_start=) - [`mcpc_server_close`](#=mcpc_server_close=) - [Tool](#org386a1c2) - [`mcpc_tool_t`](#=mcpc_tool_t=) - [`mcpc_toolprop_t`](#=mcpc_toolprop_t=) - [`mcpc_tcallcb_t`](#=mcpc_tcallcb_t=) - [`mcpc_toolprop_new`](#=mcpc_toolprop_new=) - [`mcpc_toolprop_new2`](#=mcpc_toolprop_new2=) - [`mcpc_toolprop_is_required`](#=mcpc_toolprop_is_required=) - [`mcpc_toolprop_set_required`](#=mcpc_toolprop_set_required=) - [`mcpc_tool_new`](#=mcpc_tool_new=) - [`mcpc_tool_new2`](#=mcpc_tool_new2=) - [`mcpc_tool_addfre_toolprop`](#=mcpc_tool_addfre_toolprop=) - [`mcpc_tool_addcpy_toolprop`](#=mcpc_tool_addcpy_toolprop=) - [`mcpc_tool_add_toolprop`](#=mcpc_tool_add_toolprop=) - [`mcpc_tool_get_toolprop` (deprecate)](#=mcpc_tool_get_toolprop=) - [`mcpc_tool_get_toolprop_len`](#=mcpc_tool_get_toolprop_len=) - [`mcpc_tool_get_tpropval_i32`](#=mcpc_tool_get_tpropval_i32=) - [`mcpc_tool_get_tpropval_u8str`](#=mcpc_tool_get_tpropval_u8str=) - [`mcpc_tool_get_call_cb`](#=mcpc_tool_get_call_cb=) - [`mcpc_tool_set_call_cb`](#=mcpc_tool_set_call_cb=) - [`mcpc_toolcall_result_add_text_printf8`](#=mcpc_toolcall_result_add_text_printf8=) - [`mcpc_toolcall_result_add_errmsg_printf8`](#=mcpc_toolcall_result_add_errmsg_printf8=) - [Resource](#org52ee5a7) - [`mcpc_rsc_t`](#=mcpc_rsc_t=) - [`mcpc_rsc_new`](#=mcpc_rsc_new=) - [`mcpc_rsc_new2`](#=mcpc_rsc_new2=) - [`mcpc_rsc_new3`](#=mcpc_rsc_new3=) - [`mcpc_rsc_free`](#=mcpc_rsc_free=) - [`mcpc_rsc_get_uri`](#=mcpc_rsc_get_uri=) - [`mcpc_rsc_getref_uri`](#=mcpc_rsc_getref_uri=) - [`mcpc_rsc_getref_name`](#=mcpc_rsc_getref_name=) - [`mcpc_rsc_get_mime`](#=mcpc_rsc_get_mime=) - [Prompt](#org211140d) - [`mcpc_prmpt_t`](#=mcpc_prmpt_t=) - [`mcpc_prmptarg_t`](#=mcpc_prmptarg_t=) - [`mcpc_prmptarghint_t`](#=mcpc_prmptarghint_t=) - [`mcpc_prmpt_callcb_t`](#=mcpc_prmpt_callcb_t=) - [`mcpc_prmptarg_new`](#=mcpc_prmptarg_new=) - [`mcpc_prmptarg_new2`](#=mcpc_prmptarg_new2=) - [`mcpc_prmptarg_new3`](#=mcpc_prmptarg_new3=) - [`mcpc_prmpt_new`](#=mcpc_prmpt_new=) - [`mcpc_prmpt_new2`](#=mcpc_prmpt_new2=) - [`mcpc_prmpt_new3`](#=mcpc_prmpt_new3=) - [`mcpc_prmpt_addfre_prmptarg`](#=mcpc_prmpt_addfre_prmptarg=) - [`mcpc_prmpt_addcpy_prmptarg`](#=mcpc_prmpt_addcpy_prmptarg=) - [`mcpc_prmpt_add_prmptarg`](#=mcpc_prmpt_add_prmptarg=) - [`mcpc_prmpt_get_prmptarg` (deprecated)](#=mcpc_prmpt_get_prmptarg=) - [`mcpc_prmpt_get_prmptarg_len`](#=mcpc_prmpt_get_prmptarg_len=) - [`mcpc_prmpt_get_next_prmptarg`](#=mcpc_prmpt_get_next_prmptarg=) - [`mcpc_prmpt_getbyname_prmptarg`](#=mcpc_prmpt_getbyname_prmptarg=) - [`mcpc_prmpt_getbynament_prmptarg`](#=mcpc_prmpt_getbynament_prmptarg=) - [`mcpc_prmpt_get_callcb`](#=mcpc_prmpt_get_callcb=) - [`mcpc_prmpt_set_callcb`](#=mcpc_prmpt_set_callcb=) - [`mcpc_prmptarg_get_u8str`](#=mcpc_prmptarg_get_u8str=) - [`mcpc_prmptarg_getref_u8str`](#=mcpc_prmptarg_getref_u8str=) - [`mcpc_prmptarg_add_hint_printf8`](#=mcpc_prmptarg_add_hint_printf8=) - [`mcpc_prmptget_result_add_user_printf8`](#=mcpc_prmptget_result_add_user_printf8=) - [`mcpc_prmptget_result_add_assist_printf8`](#=mcpc_prmptget_result_add_assist_printf8=) - [Others](#org6f84d9e) - [`mcpc_errcode_t`](#=mcpc_) - [`mcpc_anytype_t`](#=mcpc_anytype_t=) - [`mcpc_mime_t`](#=mcpc_mime_t=) - [`mcpc_ucbr_t`](#=mcpc_ucbr_t=) - [`mcpc_ucbr_toolcall_add_text_printf8`](#=mcpc_ucbr_toolcall_add_text_printf8=) - [`mcpc_ucbr_toolcall_add_errmsg_printf8`](#=mcpc_ucbr_toolcall_add_errmsg_printf8=) - [`mcpc_ucbr_prmptget_add_user_printf8`](#=mcpc_ucbr_prmptget_add_user_printf8=) - [`mcpc_ucbr_prmptget_add_assist_printf8`](#=mcpc_ucbr_prmptget_add_assist_printf8=) # Server ## `mcpc_server_t` Server instance ## `mcpc_server_new_iostrm` Create a I/O streams-base server. mcpc_server_t * mcpc_server_new_iostrm (const FILE *const strm_in, const FILE *const strm_out); `strm_in`: input stream `strm_out`: output stream ## `mcpc_server_new_tcp` Create a TCP-based server. mcpc_server_t* mcpc_server_new_tcp (); ## `mcpc_server_set_nament` Set server's name. mcpc_errcode_t mcpc_server_set_nament (mcpc_server_t *sv, const char8_t *nament); `sv`: server `nament`: null-terminated name. Must be a UTF-8 string ## `mcpc_server_capa_enable_prmt` Enable server's general capability of *Prompt*. mcpc_errcode_t mcpc_server_capa_enable_prmt (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_prmt_listchg` Enable server's capability of notification for Prompt list updates. mcpc_errcode_t mcpc_server_capa_enable_prmt_listchg (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_tool` Enable server's general capability of *Prompt*. mcpc_errcode_t mcpc_server_capa_enable_tool (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_tool_listchg` Enable server's capability of notification for Prompt list updates. mcpc_errcode_t mcpc_server_capa_enable_tool_listchg (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_rsc` Enable server's general capability of *Resource*. mcpc_errcode_t mcpc_server_capa_enable_rsc (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_rsc_subscr` Enable server's capability of notification for Resource subscription. mcpc_errcode_t mcpc_server_capa_enable_rsc_subscr (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_rsc_listchg` Enable server's capability of notification for Prompt list updates. mcpc_errcode_t mcpc_server_capa_enable_rsc_listchg (mcpc_server_t *sv); `sv`: server ## `mcpc_server_capa_enable_complt` Enable server's general capability of *Completion*. mcpc_errcode_t mcpc_server_capa_enable_complt (mcpc_server_t *sv); `sv`: server ## `mcpc_server_add_tool` Add a *Tool* to a server. mcpc_errcode_t mcpc_server_add_tool (mcpc_server_t *sv, mcpc_tool_t *tool); `sv`: server `tool`: tool, it will be automatically freed ## `mcpc_server_add_prmpt` Add a *Prompt* to a server. mcpc_errcode_t mcpc_server_add_prmpt (mcpc_server_t *sv, mcpc_prmpt_t *prmpt); `sv`: server `prmpt`: prompt, it will be automatically freed ## `mcpc_server_add_rsc` Add a *Resource* to a server. mcpc_errcode_t mcpc_server_add_rsc (mcpc_server_t *sv, mcpc_rsc_t *rsc); `sv`: server `prmpt`: prompt, it will be automatically freed ## `mcpc_server_start` Start a server. mcpc_errcode_t mcpc_server_start (mcpc_server_t *sv); `sv`: server ## `mcpc_server_close` Close a server. mcpc_errcode_t mcpc_server_close (mcpc_server_t *sv); `sv`: server # Tool ## `mcpc_tool_t` Tool ## `mcpc_toolprop_t` Tool property ## `mcpc_tcallcb_t` The callback function of while doing tool calling. ## `mcpc_toolprop_new` mcpc_toolprop_t * mcpc_toolprop_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len, mcpc_anytype_t typ); `name`: *tool* property's name `name_len`: the length of *tool* property's name `desc`: *tool* property's description `desc_len`: the length of *tool* property's description ## `mcpc_toolprop_new2` mcpc_toolprop_t * mcpc_toolprop_new2 (const char8_t *nament, const char8_t *descnt, mcpc_anytype_t typ); `nament`: *tool* property's name, must be null-terminated `descnt`: *tool* property's description, must be null-terminated ## `mcpc_toolprop_is_required` bool mcpc_toolprop_is_required (const mcpc_toolprop_t *toolprop); Returns whether the property is listed in the tool input schema's `required` array. ## `mcpc_toolprop_set_required` mcpc_errcode_t mcpc_toolprop_set_required (mcpc_toolprop_t *toolprop, bool required); Sets the property requirement used by both schema serialization and request handling. ## `mcpc_tool_new` mcpc_tool_t * mcpc_tool_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len); `name`: *tool*'s name `name_len`: the length of *tool*'s name `desc`: *tool*'s description `desc_len`: the length of *tool*'s description ## `mcpc_tool_new2` mcpc_tool_t * mcpc_tool_new2 (const char8_t *nament, const char8_t *descnt); `nament`: *tool*'s name, must be null-terminated `descnt`: *tool*'s description, must be null-terminated ## `mcpc_tool_addfre_toolprop` void mcpc_tool_addfre_toolprop (mcpc_tool_t *tool, mcpc_toolprop_t *toolprop); `tool`: *tool* `toolprop`: *tool* property ## `mcpc_tool_addcpy_toolprop` void mcpc_tool_addcpy_toolprop (mcpc_tool_t *tool, mcpc_toolprop_t *toolprop); `tool`: *tool* `toolprop`: *tool* property ## `mcpc_tool_add_toolprop` Alias of `mcpc_tool_addfre_toolprop` ## `mcpc_tool_get_toolprop` (deprecate) const mcpc_toolprop_t * mcpc_tool_get_toolprop (const mcpc_tool_t *tool, size_t idx); `tool`: *tool* ## `mcpc_tool_get_toolprop_len` size_t mcpc_tool_get_toolprop_len (const mcpc_tool_t *tool); `tool`: *tool* ## `mcpc_tool_get_tpropval_i32` mcpc_errcode_t mcpc_tool_get_tpropval_i32 (const mcpc_tool_t *tool, const char8_t *tprop_nament, int32_t *ret); `tool`: *tool* `tprop_nament`: *tool* property's name, null-terminated `ret`: the value of *tool* property ## `mcpc_tool_get_tpropval_u8str` mcpc_errcode_t mcpc_tool_get_tpropval_u8str (const mcpc_tool_t *tool, const char8_t *tprop_nament, char8_t *ret, size_t ret_cap, size_t *ret_len); `tool`: *tool* `tprop_nament`: *tool* property's name, null-terminated `ret`: the value of *tool* property ## `mcpc_tool_get_call_cb` mcpc_errcode_t mcpc_tool_get_call_cb (const mcpc_tool_t *tool, mcpc_tcallcb_t *ret); `tool`: *tool* `ret`: the callback for *tools/call* ## `mcpc_tool_set_call_cb` mcpc_errcode_t mcpc_tool_set_call_cb (mcpc_tool_t *tool, mcpc_tcallcb_t cb); `tool`: *tool* `ret`: the callback for *tools/call* ## `mcpc_toolcall_result_add_text_printf8` Add a text content to the result of *tools/call*. Alias of `mcpc_ucbr_toolcall_add_text_printf8`. ## `mcpc_toolcall_result_add_errmsg_printf8` Add a error message to the result of *tools/call*. This will mark the whole result as an error. Alias of `mcpc_toolcall_result_add_errmsg_printf8`. # Resource ## `mcpc_rsc_t` Resource ## `mcpc_rsc_new` mcpc_rsc_t * mcpc_rsc_new (const char8_t *uri, const size_t uri_len, const char8_t *name, const size_t name_len); `uri`: *Resource*'s URI `uri_len`: the length of *Resource*'s URI `name`: *Resource*'s name `name_len`: the length of *Resource*'s name ## `mcpc_rsc_new2` mcpc_rsc_t * mcpc_rsc_new2 (const char8_t *uri_nt, const char8_t *nament); `uri_nt`: *Resource*'s URI, must be null-terminated `nament`: *Resource*'s name, must be null-terminated ## `mcpc_rsc_new3` mcpc_rsc_t * mcpc_rsc_new3 (mcpc_mime_t mime, const char8_t *uri_nt, const char8_t *nament); `mime`: *Resource*'s MIME type `uri_nt`: *Resource*'s URI, must be null-terminated `nament`: *Resource*'s name, must be null-terminated ## `mcpc_rsc_free` void mcpc_rsc_free (mcpc_rsc_t *rsc); `rsc`: *Resource* ## `mcpc_rsc_get_uri` mcpc_errcode_t mcpc_rsc_get_uri (const mcpc_rsc_t *rsc, char8_t *ret, size_t ret_cap, size_t *ret_len); `rsc`: *Resource* ## `mcpc_rsc_getref_uri` mcpc_errcode_t mcpc_rsc_getref_uri (const mcpc_rsc_t *rsc, const char8_t **ret, size_t *ret_len); `rsc`: *Resource*. `ret`: the pointer to *Resource*'s URI. `ret_len`: the length of *Resource*'s URI. ## `mcpc_rsc_getref_name` mcpc_errcode_t mcpc_rsc_getref_name (const mcpc_rsc_t *rsc, const char8_t **ret, size_t *ret_len); `rsc`: *Resource*. `ret`: the pointer to *Resource*'s name. `ret_len`: the length of *Resource*'s name. ## `mcpc_rsc_get_mime` mcpc_errcode_t mcpc_rsc_get_mime (const mcpc_rsc_t *rsc, mcpc_mime_t *ret); `rsc`: *Resource*. `ret`: *Resource*'s MIME type. # Prompt ## `mcpc_prmpt_t` Prompt ## `mcpc_prmptarg_t` prompt argument ## `mcpc_prmptarghint_t` prompt argument hint ## `mcpc_prmpt_callcb_t` callback for prompts/get ## `mcpc_prmptarg_new` mcpc_prmptarg_t * mcpc_prmptarg_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len); `name`: *Prompt* argument's name `name_len`: the length of *Prompt* argument's name `desc`: *Prompt* argument's description `desc_len`: the length of *Prompt* argument's description ## `mcpc_prmptarg_new2` mcpc_prmptarg_t * mcpc_prmptarg_new2 (const char8_t *nament, const char8_t *descnt); `nament`: *Prompt* argument's name, must be null-terminated `descnt`: *Prompt* argument's description, must be null-terminated ## `mcpc_prmptarg_new3` mcpc_prmptarg_t * mcpc_prmptarg_new3 (const char8_t *nament); `nament`: *Prompt* argument's name, must be null-terminated ## `mcpc_prmpt_new` mcpc_prmpt_t * mcpc_prmpt_new (const char8_t *name, const size_t name_len, const char8_t *desc, const size_t desc_len); `name`: *Prompt*'s name `name_len`: the length of *Prompt*'s name `desc`: *Prompt*'s description `desc_len`: the length of *Prompt*'s description ## `mcpc_prmpt_new2` mcpc_prmpt_t * mcpc_prmpt_new2 (const char8_t *nament, const char8_t *descnt); `nament`: *Prompt*'s name, must be null-terminated `descnt`: *Prompt*'s description, must be null-terminated ## `mcpc_prmpt_new3` mcpc_prmpt_t * mcpc_prmpt_new3 (const char8_t *nament); `nament`: *Prompt*'s name, must be null-terminated ## `mcpc_prmpt_addfre_prmptarg` mcpc_errcode_t mcpc_prmpt_addfre_prmptarg (mcpc_prmpt_t *prmpt, mcpc_prmptarg_t *prmptarg); `prmpt`: *Prompt* `prmptarg`: *Prompt* argument ## `mcpc_prmpt_addcpy_prmptarg` void mcpc_prmpt_addcpy_prmptarg (mcpc_prmpt_t *prmpt, mcpc_prmptarg_t *prmptarg); `prmpt`: *Prompt* `prmptarg`: *Prompt* argument ## `mcpc_prmpt_add_prmptarg` Alias of `mcpc_prmpt_addfre_prmptarg`. ## `mcpc_prmpt_get_prmptarg` (deprecated) const mcpc_prmptarg_t * mcpc_prmpt_get_prmptarg (const mcpc_prmpt_t *prmpt, size_t idx); `prmpt`: *Prompt* `idx`: … ## `mcpc_prmpt_get_prmptarg_len` size_t mcpc_prmpt_get_prmptarg_len (const mcpc_prmpt_t *prmpt); `prmpt`: *Prompt* ## `mcpc_prmpt_get_next_prmptarg` const mcpc_prmptarg_t * mcpc_prmpt_get_next_prmptarg (const mcpc_prmpt_t *prmpt); `prmpt`: *Prompt* ## `mcpc_prmpt_getbyname_prmptarg` const mcpc_prmptarg_t * mcpc_prmpt_getbyname_prmptarg (const mcpc_prmpt_t *prmpt, const char8_t *parg_name, size_t parg_name_len); `prmpt`: *Prompt* `parg_name`: *Prompt* argument's name `parg_name_len`: the length of *Prompt* argument's name ## `mcpc_prmpt_getbynament_prmptarg` const mcpc_prmptarg_t * mcpc_prmpt_getbynament_prmptarg (const mcpc_prmpt_t *prmpt, const char8_t *parg_nament); `prmpt`: *Prompt* `parg_nament`: *Prompt* argument's name, must be null-terminated ## `mcpc_prmpt_get_callcb` mcpc_errcode_t mcpc_prmpt_get_callcb (const mcpc_prmpt_t *prmpt, mcpc_prmpt_callcb_t *ret); `prmpt`: *Prompt* `ret`: the callback for *prompts/get* ## `mcpc_prmpt_set_callcb` mcpc_errcode_t mcpc_prmpt_set_callcb (mcpc_prmpt_t *prmpt, mcpc_prmpt_callcb_t cb); `prmpt`: *prompt* `ret`: the callback for *prompts/get* ## `mcpc_prmptarg_get_u8str` mcpc_errcode_t mcpc_prmptarg_get_u8str (const mcpc_prmptarg_t *prmptarg, char8_t *ret, size_t ret_cap, size_t *ret_len); `prmptarg`: *prompt* argument `ret`: caller-provided buffer `ret_cap`: the buffer's capacity `ret_len`: the buffer's length ## `mcpc_prmptarg_getref_u8str` mcpc_errcode_t mcpc_prmptarg_getref_u8str (const mcpc_prmptarg_t *prmptarg, const char8_t **ret, size_t *ret_len); `prmptarg`: *prompt* argument `ret`: the pointer to prompt's argument string data `ret_len`: the length of prompt's argument string data ## `mcpc_prmptarg_add_hint_printf8` mcpc_errcode_t mcpc_prmptarg_add_hint_printf8 (mcpc_prmptarg_t *prmptarg, const char8_t *fmt, ...); `prmptarg`: *prompt* argument `fmt`: the format string to print ## `mcpc_prmptget_result_add_user_printf8` Add a complete user prompt to the result of *prompts/get*. Alias of `mcpc_ucbr_prmptget_add_user_printf8`. ## `mcpc_prmptget_result_add_assist_printf8` Add a complete assistant prompt to the result of *prompts/get*. Alias of `mcpc_ucbr_prmptget_add_assist_printf8`. # Others ## `mcpc_errcode_t` Library-specific error codes. ### Possible values `MCPC_EC_0`: success `MCPC_EC_BUG`: bug `MCPC_EC_BUFCAP`: insufficient buffer capacity `MCPC_EC_LONGTOOLNAME`: tool's name is too long `MCPC_EC_LONGTOOLDESC`: tool's description is too long `MCPC_EC_LONGTPROPNAME`: tool property's name is too long `MCPC_EC_LONGTPROPDESC`: tool property's description is too long `MCPC_EC_TOOLPROP_NOTFOUND`: tool property is not found `MCPC_EC_TOOLCALL_USERERR`: after tool calling, user indicates an error `MCPC_EC_CONNPOOL_NOTADD`: connection cannot be added `MCPC_EC_SVIMPL_SOCKET`: fail to create TCP socket `MCPC_EC_SVIMPL_BIND`: fail to bind TCP socket `MCPC_EC_SVIMPL_LISTEN`: fail to listen TCP socket `MCPC_EC_SVIMPL_TCP_INSUF_BUF`: insufficient buffer capacity `MCPC_EC_ANYDATA_NOTFOUND`: data cannot be found `MCPC_EC_ANYDATA_LONGNAME`: data's name is too long `MCPC_EC_PRMPTARG_NOTFOUND`: prompt agument cannot be found `MCPC_EC_JSON_FIELD_INVALID`: json field's value invalid, this means the field is missing, or field has unexpected type ## `mcpc_anytype_t` The data type recognizable by the library. ### Possible values `MCPC_NONE`: nothing `MCPC_I8`: `int8_t`-like type `MCPC_U8`: `uint8_t`-like type `MCPC_I16`: `int16_t`-like type `MCPC_U16`: `uint16_t`-like type `MCPC_I32`: `int32_t`-like type `MCPC_U32`: `uint32_t`-like type `MCPC_I64`: `int64_t`-like type `MCPC_U64`: `uint64_t`-like type `MCPC_U8STR`: string of UTF-8 code units `MCPC_I8S`: an array of `int8_t` `MCPC_U8S`: an array of `uint8_t` `MCPC_I16S`: an array of `int16_t` `MCPC_U16S`: an array of `uint16_t` `MCPC_I32S`: an array of `int32_t` `MCPC_U32S`: an array of `uint32_t` `MCPC_I64S`: an array of `int64_t` `MCPC_U64S`: an array of `uint64_t` `MCPC_FUNC`: a function ## `mcpc_mime_t` MIME types recognizable by the library, that conforms to [RFC2045](https://www.rfc-editor.org/rfc/rfc2045). ### Possible value `MCPC_MIME_NONE`: nothing `MCPC_MIME_TEXT_PLAIN`: text/plain `MCPC_MIME_IMAGE_PNG`: image/png `MCPC_MIME_IMAGE_JPEG`: image/jpeg `MCPC_MIME_IMAGE_GIF`: image/gif `MCPC_MIME_AUDIO_MPEG`: audio/mpeg `MCPC_MIME_AUDIO_WAV`: audio/wav `MCPC_MIME_VIDEO_MPEG`: video/mpeg `MCPC_MIME_VIDEO_AVI`: video/avi `MCPC_MIME_APPLI_OCTS`: application/octet-stream `MCPC_MIME_APPLI_JSON`: application/json `MCPC_MIME_APPLI_PDF`: application/pdf ## `mcpc_ucbr_t` User call back result. ## `mcpc_ucbr_toolcall_add_text_printf8` Add a text message to the result of *tools/call*. void mcpc_ucbr_toolcall_add_text_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); `ucbr`: the callback result `fmt`: format string to be printed ## `mcpc_ucbr_toolcall_add_errmsg_printf8` Add a error message to the result of *tools/call*. void mcpc_ucbr_toolcall_add_errmsg_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); `ucbr`: the callback result `fmt`: format string to be printed ## `mcpc_ucbr_prmptget_add_user_printf8` Add a user prompt to the result of *prompts/get*. void mcpc_ucbr_prmptget_add_user_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); `ucbr`: the callback result `fmt`: format string to be printed ## `mcpc_ucbr_prmptget_add_assist_printf8` Add an assistant prompt to the result of *prompts/get*. void mcpc_ucbr_prmptget_add_assist_printf8 (mcpc_ucbr_t *ucbr, const char8_t *fmt, ...); `ucbr`: the callback result `fmt`: format string to be printed