Token导航 LogoToken导航TokenDH.com
MCP Clojure SDK logo
开发工具stdio官方级别未说明来源级核验

MCP Clojure SDK

MCP Server

@modelcontextprotocol/inspector

A Clojure SDK to create MCP servers (and eventually clients)

工具数

0

提示词数

0

GitHub Stars

61

资源数

0
代码分析JavaScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

unravel-team

提供方

unravel-team

最后核验

2026/5/18 03:27

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector java -Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory -Dorg...

详细介绍

io.modelcontext/clojure-sdk

A. clojure-sdk 用于创建模型上下文协议服务器!

目录:TOC_4:

- 用法 - 数字地球原型系统 - 快速入门模板 - 例子 - 构建示例罐 - 计算器: calculator_server - 织女星岩: vegalite_server - 代码分析: code_analysis_server - 核心组件 - 沟通流程 - 待定工作 - SDK的开发 - 灵感 - 许可证

用法

计算器服务器.clj文件vegalite_server.clj文件 示例包含用于定义MCP服务器的完整工作代码。

examples 是一个 deps-new 应用程序项目和编译说明 并运行各种示例服务器 示例/README.md 文件 (也复制到本节下方)

数字地球原型系统

deps for clojure-sdk 是:

{io.modelcontextprotocol/mcp-clojure-sdk
 {:git/url "https://github.com/unravel-team/mcp-clojure-sdk.git"
  :git/sha "d42474c5f66b6f5ad1e4d6ce2a4e8972640fb831"}}

快速入门模板

为了便于使用,还有一个 deps-new 模板和Github模板。请参阅:

  1. mcp clojure服务器安装新

为了一个 deps-new 基于模板,快速创建新的MCP服务器。

  1. 示例酷mcp服务器

对于Github模板项目,可以快速创建新的MCP服务器。

例子

构建示例罐

$ make clean && make examples-jar

示例jar包含以下服务器:

  1. 计算器: calculator_server
  2. 织女星岩: vegalite_server
  3. 代码分析: code_analysis_server

计算器: calculator_server

提供基本的算术工具: add, subtract, multiply, divide, power, square-root, average, factorial

您可以在Claude Desktop或Inspector中尝试一些示例命令:

  1. \[1,2,3,4,5\]的平均值是多少?
  2. 15的阶乘是多少?
  3. 2的1000次方是多少?
  4. 64的平方根是多少?

在运行计算器MCP服务器之前:

记得:

  1. 使用系统上示例JAR的完整路径

在克劳德桌面

    "calculator": {
      "command": "java",
      "args": [
        "-Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory",
        "-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog",
        "-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector",
        "-Dlog4j2.configurationFile=log4j2-mcp.xml",
        "-Dbabashka.json.provider=metosin/jsonista",
        "-Dlogging.level=INFO",
        "-cp",
        "/Users/vedang/mcp-clojure-sdk/examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar",
        "calculator_server"
      ]
    }

在MCP检查器中

npx @modelcontextprotocol/inspector java -Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.configurationFile=log4j2-mcp.xml -Dbabashka.json.provider=metosin/jsonista -Dlogging.level=INFO -cp examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar calculator_server

织女星岩: vegalite_server

提供生成Vega-lite图表的工具: save-data, visualize-data.

先决条件:需求 vl转换 命令行界面 待安装。

您可以在Claude Desktop或Inspector中尝试一些示例命令:

以下是一些示例数据:

[
    { "year": 2011, "value": 14.6, "growth_type": "Market Cap Growth" },
    { "year": 2011, "value": 11.4, "growth_type": "Revenue Growth" },
    { "year": 2011, "value": 26.6, "growth_type": "Net Income Growth" },
    { "year": 2012, "value": 40.1, "growth_type": "Market Cap Growth" },
    { "year": 2012, "value": 42.7, "growth_type": "Revenue Growth" },
    { "year": 2012, "value": 36.9, "growth_type": "Net Income Growth" },
    { "year": 2013, "value": 16.9, "growth_type": "Market Cap Growth" },
    { "year": 2013, "value": 14.6, "growth_type": "Revenue Growth" },
    { "year": 2013, "value": 15.3, "growth_type": "Net Income Growth" },
    { "year": 2014, "value": 9.6, "growth_type": "Market Cap Growth" },
    { "year": 2014, "value": 7.9, "growth_type": "Revenue Growth" },
    { "year": 2014, "value": 10.9, "growth_type": "Net Income Growth" },
    { "year": 2015, "value": 5.8, "growth_type": "Market Cap Growth" },
    { "year": 2015, "value": 6.7, "growth_type": "Revenue Growth" },
    { "year": 2015, "value": 6.2, "growth_type": "Net Income Growth" },
    { "year": 2016, "value": -12.4, "growth_type": "Market Cap Growth" },
    { "year": 2016, "value": -3.9, "growth_type": "Revenue Growth" },
    { "year": 2016, "value": -32.2, "growth_type": "Net Income Growth" },
    { "year": 2017, "value": 25.3, "growth_type": "Market Cap Growth" },
    { "year": 2017, "value": 5.9, "growth_type": "Revenue Growth" },
    { "year": 2017, "value": 43.9, "growth_type": "Net Income Growth" }
]

使用vega-lite为我可视化这些数据。

在运行vegalite MCP服务器之前

记得:

  1. 将示例JAR的完整路径替换为上的正确路径

您的系统

  1. 指定到的完整路径 vl-convert 在您的系统上

在克劳德桌面

    "vegalite": {
      "command": "java",
      "args": [
        "-Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory",
        "-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog",
        "-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector",
        "-Dlog4j2.configurationFile=log4j2-mcp.xml",
        "-Dbabashka.json.provider=metosin/jsonista",
        "-Dlogging.level=INFO",
        "-Dmcp.vegalite.vl_convert_executable=/Users/vedang/.cargo/bin/vl-convert",
        "-cp",
        "/Users/vedang/mcp-clojure-sdk/examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar",
        "vegalite_server"
      ]
    }

在MCP检查器中

记住使用系统上示例JAR的完整路径,或 从执行此命令 mcp-clojure-sdk 回购。

npx @modelcontextprotocol/inspector java -Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.configurationFile=log4j2-mcp.xml -Dbabashka.json.provider=metosin/jsonista -Dlogging.level=INFO -Dmcp.vegalite.vl_convert_executable=/Users/vedang/.cargo/bin/vl-convert -cp examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar vegalite_server

代码分析: code_analysis_server

此服务器是提供提示而不提供提示的服务器的示例 工具。以下提示可用: analyse-codepoem-about-code.

您可以在Claude Desktop或Inspector中尝试提示。当 这些提示非常基本,这是了解如何 通过这种技术暴露强大的提示。

在运行代码分析MCP服务器之前

记得:

  1. 将示例JAR的完整路径替换为上的正确路径

您的系统

在克劳德桌面

    "code-anaylsis": {
      "command": "java",
      "args": [
        "-Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory",
        "-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog",
        "-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector",
        "-Dlog4j2.configurationFile=log4j2-mcp.xml",
        "-Dbabashka.json.provider=metosin/jsonista",
        "-Dlogging.level=INFO",
        "-cp",
        "/Users/vedang/mcp-clojure-sdk/examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar",
        "code_analysis_server"
      ]
    }

在MCP检查器中

(记住使用系统上示例JAR的完整路径,或 从执行此命令 mcp-clojure-sdk 回购)

npx @modelcontextprotocol/inspector java -Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.configurationFile=log4j2-mcp.xml -Dbabashka.json.provider=metosin/jsonista -Dlogging.level=INFO -cp examples/target/io.modelcontextprotocol.clojure-sdk/examples-1.2.0.jar code_analysis_server

核心组件

  1. 服务器实现:服务器的核心功能是

实现于 server.clj,它处理请求/响应周期 用于各种MCP方法。

  1. 传输层:SDK在中实现了STDIO传输

stdio_server.clj 使用 io_chan.clj 在IO之间转换 流和core.async通道。

  1. 错误处理:自定义错误处理在中定义

mcp/errors.clj.

  1. 协议规范:所有协议规范

定义于 specs.clj其为请求提供验证, 响应和服务器组件。

沟通流程

序列图显示了MCP的典型生命周期 客户端-服务器交互:

  1. 初始化阶段:

- 客户端连接并发送 initialize 请求 - 服务器以其功能进行响应 - 客户确认 initialized 通知

  1. 发现阶段:

- 客户端发现可用的工具、资源和提示 使用方法 tools/list, resources/listprompts/list - 这些在上下文创建期间在服务器中注册

  1. 工具交互:

- 客户端可以使用参数调用工具 - 服务器将这些路由到相应的处理程序函数 - 结果返回给客户端

  1. 资源交互:

- 客户端可以通过URI读取资源 - 服务器检索资源内容

  1. 快速互动:

- 客户端可以请求预定义的提示 - 服务器返回相应的消息

  1. 可选功能:

- 更新的资源订阅 - 通过乒乓球进行健康检查

sequenceDiagram
    participant Client
    participant MCPServer
    participant Tool
    participant Resource
    participant Prompt

    Note over Client,MCPServer: Initialization Phase
    Client->>+MCPServer: initialize
    MCPServer-->>-Client: initialize response (capabilities)
    Client->>MCPServer: notifications/initialized

    Note over Client,MCPServer: Discovery Phase
    Client->>+MCPServer: tools/list
    MCPServer-->>-Client: List of available tools

    Client->>+MCPServer: resources/list
    MCPServer-->>-Client: List of available resources

    Client->>+MCPServer: prompts/list
    MCPServer-->>-Client: List of available prompts

    Note over Client,MCPServer: Tool Interaction
    Client->>+MCPServer: tools/call (name, arguments)
    MCPServer->>+Tool: handler(arguments)
    Tool-->>-MCPServer: result
    MCPServer-->>-Client: Tool response

    Note over Client,MCPServer: Resource Interaction
    Client->>+MCPServer: resources/read (uri)
    MCPServer->>+Resource: handler(uri)
    Resource-->>-MCPServer: contents
    MCPServer-->>-Client: Resource contents

    Note over Client,MCPServer: Prompt Interaction
    Client->>+MCPServer: prompts/get (name, arguments)
    MCPServer->>+Prompt: handler(arguments)
    Prompt-->>-MCPServer: messages
    MCPServer-->>-Client: Prompt messages

    Note over Client,MCPServer: Optional Subscription
    Client->>+MCPServer: resources/subscribe (uri)
    MCPServer-->>-Client: Empty response
    MCPServer-->>Client: notifications/resources/updated

    Note over Client,MCPServer: Health Check
    Client->>+MCPServer: ping
    MCPServer-->>-Client: pong

待定工作

你可以帮助亲爱的读者!前往 Todo.org文件 查看待定更改列表,大致按顺序I排列 计划解决它们。

SDK的开发

clojure-sdk 是标准 deps-new 项目,所以你应该 期待所有 deps-new 命令按预期工作。即便如此:

运行项目的测试:

$ make test ## or clojure -T:build test

运行项目的CI管道并构建JAR:

$ make build ## or clojure -T:build ci

这将产生一个更新 pom.xml 已同步的文件 内部的依赖关系 META-INF 目录内 target/classes JAR文件 target。您可以更新版本(和SCM标签) 生成的信息 pom.xml 通过更新 build.clj.

在本地安装:

$ make install ## or clojure -T:build install

将其部署到Clojars——需要 CLOJARS_USERNAMECLOJARS_PASSWORD 环境变量(需要 ci 任务是 先运行):

$ make deploy ## or clojure -T:build deploy

您的库将部署到io.modelcontext/clojure-sdk 默认情况下为clojars.org。

灵感

此SDK构建于 jsonrpc4clj,其中 解决了处理JSON-RPC所有边缘情况的困难部分 基于服务器。我亲手建造了这一层,发现了所有 在意识到这一点之前,边缘案例 jsonrpc4clj 谁更聪明 方法。代码编写得非常好,易于修改 要求。

许可证

版权所有©2025 Unravel.tech

根据MIT许可证分发

目录标签

目录标签

代码分析JavaScriptClaudedeveloper-toolsClojure本地部署ClojureSDK协议服务器数据处理工具交互

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP