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

Function handle_rpc

src/ui/http_server.c:1784–1808  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1782}
1783
1784static void handle_rpc(cbm_http_conn_t *c, const cbm_http_req_t *req, cbm_mcp_server_t *mcp) {
1785 if (req->body_len == 0 || req->body_len > MAX_BODY_SIZE || !req->body) {
1786 cbm_http_replyf(c, 400, g_cors_json,
1787 "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32600,"
1788 "\"message\":\"invalid request size\"},\"id\":null}");
1789 return;
1790 }
1791
1792 if (!rpc_is_allowed_for_ui(req->body, req->body_len)) {
1793 cbm_http_replyf(c, 403, g_cors_json,
1794 "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,"
1795 "\"message\":\"UI RPC method is not allowed\"},\"id\":null}");
1796 return;
1797 }
1798
1799 /* req->body is NUL-terminated by the transport */
1800 char *response = cbm_mcp_server_handle(mcp, req->body);
1801
1802 if (response) {
1803 cbm_http_replyf(c, 200, g_cors_json, "%s", response);
1804 free(response);
1805 } else {
1806 cbm_http_replyf(c, 204, g_cors, "%s", "");
1807 }
1808}
1809
1810/* ── Request dispatch ─────────────────────────────────────────── */
1811

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