MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / handle_rpc

Function handle_rpc

src/ui/http_server.c:1655–1679  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1653}
1654
1655static void handle_rpc(cbm_http_conn_t *c, const cbm_http_req_t *req, cbm_mcp_server_t *mcp) {
1656 if (req->body_len == 0 || req->body_len > MAX_BODY_SIZE || !req->body) {
1657 cbm_http_replyf(c, 400, g_cors_json,
1658 "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32600,"
1659 "\"message\":\"invalid request size\"},\"id\":null}");
1660 return;
1661 }
1662
1663 if (!rpc_is_allowed_for_ui(req->body, req->body_len)) {
1664 cbm_http_replyf(c, 403, g_cors_json,
1665 "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,"
1666 "\"message\":\"UI RPC method is not allowed\"},\"id\":null}");
1667 return;
1668 }
1669
1670 /* req->body is NUL-terminated by the transport */
1671 char *response = cbm_mcp_server_handle(mcp, req->body);
1672
1673 if (response) {
1674 cbm_http_replyf(c, 200, g_cors_json, "%s", response);
1675 free(response);
1676 } else {
1677 cbm_http_replyf(c, 204, g_cors, "%s", "");
1678 }
1679}
1680
1681/* ── Request dispatch ─────────────────────────────────────────── */
1682

Callers 1

dispatch_requestFunction · 0.85

Calls 3

cbm_http_replyfFunction · 0.85
rpc_is_allowed_for_uiFunction · 0.85
cbm_mcp_server_handleFunction · 0.85

Tested by

no test coverage detected