#include "mcp/server.h" #include "mcp/tools/common/tools.h" int tiny_convmem_server_run(FILE *input, FILE *output, tiny_store_t *store) { tiny_mcp_tools_context_t *context; mcpc_server_t *server; mcpc_errcode_t status; if (!input || !output || !store) { return 1; } context = tiny_mcp_tools_context_new(store); if (!context) { return 1; } server = mcpc_server_new_iostrm(input, output); if (!server || mcpc_server_set_nament(server, (const char8_t *)"tiny-convmem-mcp") != MCPC_EC_0 || mcpc_server_capa_enable_tool(server) != MCPC_EC_0 || !tiny_mcp_tools_register(server) || !tiny_mcp_tools_context_activate(context)) { if (server) { mcpc_server_close(server); } tiny_mcp_tools_context_free(context); return 1; } status = mcpc_server_start(server); if (status != MCPC_EC_0) { fprintf(stderr, "mcpc server stopped with status %d\n", (int)status); } tiny_mcp_tools_context_deactivate(context); mcpc_server_close(server); tiny_mcp_tools_context_free(context); return status == MCPC_EC_0 ? 0 : 1; }