blob: 498e9f452f7eae0e049c735df1a72108676d96e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#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;
}
|