返回 MCP 目录
public公开dns本地运行

modex

Modex是一个Clojure库,实现了Model Context Protocol(MCP),用于构建MCP服务器和客户端,为AI模型提供工具、资源和提示的扩展能力。它支持通过标准输入输出(stdio)进行通信,无需额外的代理转换,适用于增强AI功能,如数据库查询等。

article

README

🚀 Modex 介绍

Modex 是一个采用 Clojure 实现的 MCP(模型上下文协议)客户端和服务器,基本符合 2024 - 11 - 05 MCP 规范。消息采用 JSON - RPC 2.0 的序列化格式。

✨ 主要特性

  • 通信协议:支持两种传输类型:

    • [x] 标准输入输出(stdio/stdout)
    • [ ] Server - Sent Events (SSE)
  • 主要组件

    • MCP 客户端:借助标准输入输出与 MCP 服务器进行交互。
    • MCP 服务器:实现 AServer 协议,支持工具、资源和提示。

🚀 快速开始

构建 Modex

lein project

运行 MCP 服务器

clojure -m modex.mcp.server

配置 Claude Desktop

打开 claude_desktop_config.json,添加以下内容:

{
  "mcpServers": {
    "modex": {
      "command": "java",
      "args": ["-jar", "/Users/your-username/code/modex/target/modex-mcp-0.2.2.jar"]
    }
  },
  "globalShortcut": ""
}

重启 Claude Desktop

现在可以使用 run foowhat does foo say? 来调用工具。

💻 使用示例

基础用法

(defmodex :foo
  (defmethod handle-tool-call :default
    [tool-id args]
    {:result "Hello, AI!"}))

高级用法

当调用 run foowhat does foo say? 时,Claude Desktop 会发送以下 JSON - RPC 请求:

{
  "id": 1,
  "method": "tool/default",
  "params": {
    "toolId": ":foo"
  }
}

服务器返回响应:

{
  "id": 1,
  "result": "Hello, AI!"
}

📚 详细文档

核心组件

  • Modex 服务器

    • 实现 AServer 协议
    • 支持工具、资源和提示
  • MCP 客户端(如 Claude Desktop)

    • 使用标准输入输出与 MCP 服务器交互

实现细节

  • 工具

    • 使用 defmodex 定义工具
    • 处理方法使用 handle-tool-call
  • 消息格式

    • 请求:{:keys [id method ?params]}
    • 响应:{:keys [id result ?error]}
    • 通知:{:keys [method ?params]}

项目状态

  • [x] 测试通过
  • [x] 易用性(AServer/A Client 协议)
  • [x] 工具支持
  • [ ] 资源支持
  • [ ] 提示支持
  • [进行中] SSE 支持
  • [进行中] 流式 HTTP 支持(2025 - 03 - 26 MCP 规范)

开发背景

现有库 mcp - clj 使用 SSE,因此需要 mcp - proxy 来代理 SSE <=> stdio。Modex 旨在简化这一过程。

常见问题

  • 如何在连接的 MCP 客户端(如 Claude Desktop)上修改服务器? 目前无法直接修改,但计划添加 nREPL 支持,允许在不停止服务的情况下实时评估代码变化。由于限制,目前需要重新构建 uberjar 并重启 Claude Desktop。

📄 许可证

  • 非商业用途免费:根据 GPLv3 使用、修改和分发,只需保持开源。
  • 商业用途:希望私下使用修改的用户可以一次性支付 $20 购买永久商业许可。这涵盖了开发者为公开开发所使用的 AI 计算机代币费用。

该工具根据 GNU General Public License v3.0 (GPLv3) 分发。您有权自由使用、修改和分发,但需遵守许可证条款。

作者

  • Alex Petrov - 初始版本
  • Andrey Vasilyev - 当前维护者

感谢您的关注!

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端