Download src/snapkitty/lisp/mcp/server.cljs from Snapkitty/snapkitty-clojure-lisp-bridge: direct link, hf CLI and curl.
- Browser
- Download file 1.59 kB
-
https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/src/snapkitty/lisp/mcp/server.cljs
- Command line
-
hf download hf://Snapkitty/snapkitty-clojure-lisp-bridge/src/snapkitty/lisp/mcp/server.cljs
-
curl -L -o server.cljs https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/src/snapkitty/lisp/mcp/server.cljs
1.59 kB
| (ns snapkitty.lisp.mcp.server | |
| "MCP server entry point" | |
| (:require ["@modelcontextprotocol/sdk/server/mcp.js" :refer [McpServer]] | |
| ["@modelcontextprotocol/sdk/server/stdio.js" :refer [StdioServerTransport]] | |
| [promesa.core :as p] | |
| [snapkitty.lisp.mcp.config :as config] | |
| [snapkitty.lisp.mcp.tools :as tools] | |
| [snapkitty.lisp.mcp.util :as util] | |
| [snapkitty.lisp.knowledge.qdrant :as qdrant] | |
| [snapkitty.lisp.native :as native])) | |
| (defn start! [] | |
| "Start MCP server on stdio transport" | |
| (let [cfg (config/load-config) | |
| mcp-server (McpServer. (clj->js {:name "snapkitty-lisp" | |
| :version "1.0.0"}))] | |
| (util/log "[snapkitty-lisp] Loading configuration...") | |
| (util/log "[snapkitty-lisp] Qdrant URL:" (:qdrant-url cfg)) | |
| (util/log "[snapkitty-lisp] Collection:" (:collection-name cfg)) | |
| (p/let [_ (qdrant/ensure-collection! cfg)] | |
| (util/log "[snapkitty-lisp] Collection ready") | |
| ; Load native ASM library | |
| (p/let [_ (native/load-native-library! "./native/build/Release/skclisp_native.node")] | |
| (util/log "[snapkitty-lisp] Native ASM library loaded") | |
| (tools/register-tools! mcp-server cfg) | |
| (util/log "[snapkitty-lisp] Tools registered") | |
| (let [transport (StdioServerTransport.)] | |
| (p/let [_ (.connect mcp-server transport)] | |
| (util/log "[snapkitty-lisp] MCP server ready on stdio")))))))) | |
| ;; Node.js entry point | |
| (set! (.-default js/module.exports) start!) | |