From 8d38b06f11c713e547d70468340242f23322152c Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Mon, 29 Jun 2026 01:28:01 +0900 Subject: first commit --- src/mcp/server.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/mcp/server.c (limited to 'src/mcp/server.c') diff --git a/src/mcp/server.c b/src/mcp/server.c new file mode 100644 index 0000000..57d197d --- /dev/null +++ b/src/mcp/server.c @@ -0,0 +1,52 @@ +#include "mcp/server.h" + +#include +#include "mcp/tools/health.h" + +int +tiny_convmem_server_run(FILE *input, FILE *output) +{ + mcpc_server_t *server = mcpc_server_new_iostrm(input, output); + if (server == NULL) + { + return MCPC_EC_BUG; + } + + mcpc_errcode_t result = mcpc_server_set_nament( + server, + (const char8_t *)"tiny-convmem-mcp" + ); + if (result == MCPC_EC_0) + { + result = mcpc_server_capa_enable_tool(server); + } + + mcpc_tool_t *health = NULL; + if (result == MCPC_EC_0) + { + health = tiny_convmem_health_tool_create(); + if (health == NULL) + { + result = MCPC_EC_BUG; + } + } + + if (result == MCPC_EC_0) + { + result = mcpc_server_add_tool(server, health); + } + if (result == MCPC_EC_0) + { + result = mcpc_server_start(server); + } + + { + const mcpc_errcode_t close_result = mcpc_server_close(server); + if (result == MCPC_EC_0) + { + result = close_result; + } + } + + return (int)result; +} -- cgit v1.2.3