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 两种实现,便于对比与迁移学习。
-
安装步骤(易操作的流程)
- 克隆仓库并进入项目目录
- 使用 Maven 进行构建(推荐使用项目自带的 Maven Wrapper)
- Unix/macOS: ./mvnw clean install
- Windows: mvnw.cmd clean install
- 选择运行 Kotlin 版本或 Java 版本的 MCP 服务器:
- Kotlin 版本:进入脚本目录并执行启动脚本,例如 cd scripts/kotlin 然后 ./shell.sh 或 /bin/mcp_server.sh(默认开启 MCP 客户端工具)
- Java 版本:进入脚本目录并执行启动脚本,例如 cd scripts/java 然后 ./shell.sh 或 /bin/mcp_server.sh
- 启动后,服务器将对外提供一个 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 客户端的快速接入,实际使用时请根据本地环境替换端口和路径。
-
基本使用方法
- 启动 MCP 服务器的 Kotlin/Java 版本(如上所述)。
- 如需在 Claude Desktop 等工具中使用,请将上述 JSON 配置作为 MCP 服务器配置导入。
- 使用 MCP Inspector 或 Claude Desktop 进行工具调用、查看 Prompts、验证工具执行。
- 如需自定义参数,可修改相应的 Spring 配置或脚手架中的默认参数,重建后再运行。
-
其他注意事项
- 本仓库包含可直接运行的服务器入口实现与示例,非单纯的客户端示例或学习材料。
- 运行前请确保 Java 21+、Maven 3.9+ 以及可用的 OpenAI/Anthropic API Key(若示例需要)。