Embabel-Agent-MCP Server 示例

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 Embabel 的 MCP 服务器示例,旨在展示如何将代理/智能体以 MCP 服务端形式暴露给 MCP 客户端使用。示例实现了工具注册、PROMPT 渲染、以及与 LLM 的交互能力,且通过 SSE 提供服务器端推送能力,客户端可通过 JSON-RPC 与之通信。
  • 主要功能点

    • MCP 服务器模式:将代理的工具作为可调用的 MCP 工具暴露,通过 SSE 提供 JSON-RPC 通信。
    • 工具注册与发现:示例中的 StarNewsFinder、Researcher、FactChecker 等组件可作为 MCP 工具被远程调用。
    • Prompts 渲染与工作流:通过 Embabel 的工作流与提示机制,与 LLM 进行对话和任务执行。
    • 客户端集成支持:文档中提供如何在 Claude Desktop 等 MCP 客户端中配置并调用服务器的示例。
    • 多语言实现:Kotlin 与 Java 两种实现,便于对比与迁移学习。
  • 安装步骤(易操作的流程)

    1. 克隆仓库并进入项目目录
    2. 使用 Maven 进行构建(推荐使用项目自带的 Maven Wrapper)
      • Unix/macOS: ./mvnw clean install
      • Windows: mvnw.cmd clean install
    3. 选择运行 Kotlin 版本或 Java 版本的 MCP 服务器:
      • Kotlin 版本:进入脚本目录并执行启动脚本,例如 cd scripts/kotlin 然后 ./shell.sh 或 /bin/mcp_server.sh(默认开启 MCP 客户端工具)
      • Java 版本:进入脚本目录并执行启动脚本,例如 cd scripts/java 然后 ./shell.sh 或 /bin/mcp_server.sh
    4. 启动后,服务器将对外提供一个 SSE 端点,允许 MCP 客户端连接并调用暴露的工具。
  • 服务器配置(MCP 客户端需要的启动信息,示例 JSON) 注意:MCP 客户端需要配置启动服务器的命令和参数以建立连接。以下配置是仓库文档中给出的示例,名称为 embabel-examples。 { "mcpServers": { "embabel-examples": { "command": "npx", "args": [ "-y", "mcp-remote", "http://localhost:8080/sse" ] } } } 说明:

    • server name: embabel-examples(在 MCP 客户端配置中作为服务器标识)
    • command: 启动服务器所需的命令,这里以 npx 为示例,实际在本仓库中提供的脚本会在运行时建立 SSE 连接
    • args: 连接参数,指向服务器的 SSE 端点 http://localhost:8080/sse
    • 该配置用于 Claude Desktop 等 MCP 客户端的快速接入,实际使用时请根据本地环境替换端口和路径。
  • 基本使用方法

    1. 启动 MCP 服务器的 Kotlin/Java 版本(如上所述)。
    2. 如需在 Claude Desktop 等工具中使用,请将上述 JSON 配置作为 MCP 服务器配置导入。
    3. 使用 MCP Inspector 或 Claude Desktop 进行工具调用、查看 Prompts、验证工具执行。
    4. 如需自定义参数,可修改相应的 Spring 配置或脚手架中的默认参数,重建后再运行。
  • 其他注意事项

    • 本仓库包含可直接运行的服务器入口实现与示例,非单纯的客户端示例或学习材料。
    • 运行前请确保 Java 21+、Maven 3.9+ 以及可用的 OpenAI/Anthropic API Key(若示例需要)。

服务器信息