返回市场
MCP软件开发工具包

MCP软件开发工具包

作者:latacora4 星标更新:2025-11-10

项目介绍

【技术文档摘要】: 一个用于轻松构建符合Model Context Protocol (MCP)标准服务器的Clojure库。它通过封装官方Java SDK,作为可以嵌入到Clojure应用程序中的ring处理器,同时利用Clojure中间件和路由。这使得使用推荐的传输方式(流式HTTP)变得容易,而无需在你的Clojure应用中安装多个Servlet来增加复杂性。


安装

com.latacora/mcp-sdk {:git/url "https://github.com/latacora/mcp-sdk"
                      :git/sha "<latest-commit-sha>"}

使用

(require '[com.latacora.mcp.core :as mcp])

; 对于工具,这个库提供了一种方便的方式来使用malli模式构建工具规范,
; 用于输入和输出验证(以及json模式生成)
(def 工具
  (mcp/create-tool-specification
    {:name          "add"
     :title         "Add two numbers"
     :description   "Adds two numbers together"
     :input-schema  [:map [:a int?] [:b int?]]
     :output-schema [:map [:result int?]]
     :handler       (fn [_exchange {:keys [a b]}]
                      {:result (+ a b)})}))

; 当你构建mcp处理器时,你需要提供像底层modelcontextprotocol请求这样的java对象。
; 这意味着你可以自由地使用互操作性构建其他mcp服务器特性。
; 在未来,我们可能会提供Clojure包装器来简化它们的构建过程,
; 但目前我们只提供了工具的包装器,因为它们是最常见且使用互操作性构建最繁琐的部分。
(def 处理器 (mcp/create-ring-handler {:name "hello-world" :version "1.0.0" :tools [工具]}))

; 注意这是一个自定义的run-jetty函数,它保留了原始的servlet请求/响应对象的元数据,
; 以便可以将它们传递给嵌入的mcp servlet。它是ring.adapter.jetty/run-jetty的直接替换。
; 在这里我们不做任何路由,因此mcp服务器被挂载在根路径上,但你可以将处理器嵌入到你的路由树中的任何位置。
(def 服务器 (mcp/run-jetty 处理器 {:port 3000 :join? false}))

测试

你可以使用mcp inspector来测试你的MCP服务器。

npx @modelcontextprotocol/inspector --server-url http://localhost:3000

许可证

版权所有 © Latacora

根据Eclipse Public License版本2.0分发。