关于 Lightweight Java MCP SDK: AJ-MCP
AJ-MCP 是面向 Java 的轻量级 MCP SDK,用于构建 MCP 客户端和服务端。它支持 Java 8 与 Spring Boot 2.x,适合需要在旧版 Java 技术栈上接入 MCP 的既有系统。
主要功能
- 01支持 Java 8 及以上版本
- 02支持 STDIO、HTTP/SSE 与 Streamable HTTP 传输
- 03实现多个 MCP 协议版本及版本协商
- 04基于注解声明工具、资源与提示词
适用场景
- 01将既有 Java 服务封装为 MCP 工具、资源或提示词
- 02在 Spring Boot 2.x 或 Servlet 应用中集成 MCP
- 03Java 桌面或服务端应用连接本地 STDIO MCP 进程
MCP 相关
该项目是 MCP SDK,既可用于开发向 MCP 客户端暴露功能的服务端,也可用于开发连接 MCP 服务端的客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AJ-MCP
轻量级 Java MCP SDK
AJ-MCP 是面向 Java 的轻量级模型上下文协议(MCP)SDK。它提供简洁直接的 API,用于构建 MCP 客户端和服务,尤其适用于必须继续使用 Java 8 或 Spring Boot 2.x 的现有系统。
- 支持 Java 8 及更高版本,并支持 Spring Boot 2.x。
- 轻量小巧,主要运行时依赖为 Jackson JSON 和 OkHttp。
- 易于使用和扩展,提供示例和双语文档。
- 支持 STDIO、旧版 HTTP/SSE 传输和 Streamable HTTP。
- 实现 MCP 协议修订版
2024-11-05、2025-03-26和2025-06-18,并支持版本协商。 - 涵盖工具、资源、资源模板、提示词、补全、分页、订阅、取消、日志记录、根目录、采样和引导。
了解这三个 MCP SDK 组件项目:
独立的 AJ MCP Next 项目基于 Java 8 和 AJ Util,目标版本为 2026-07-28。
它包含核心、客户端和服务端模块,以及 STDIO 和无会话 HTTP 适配器,与此旧版 SDK 相互独立。
- AJ MCP Common:AJ-MCP 的通用库,包含模型上下文协议的实现和一些其他通用类。
- AJ MCP Client:MCP 客户端 SDK。
- AJ MCP Server:MCP 服务端 SDK。
- 示例:客户端和服务端示例。
- Spring Streamable HTTP 示例,以及
samples/client中专门提供的StreamableHttpClientExample(Java 8)。
更多信息请参阅用户手册网站。
何时使用 AJ-MCP
AJ-MCP 面向需要向 AI 客户端开放现有业务能力,或在不升级整个应用栈的情况下使用 MCP 服务的 Java 应用。常见用途包括:
- 将现有 Java 服务封装为 MCP 工具、资源或提示词;
- 将 Java 桌面应用或服务端应用连接到本地 STDIO MCP 进程;
- 在 Spring Boot 2.x 或基于 Servlet 的应用中集成 MCP;
- 支持能够协商不同 MCP 协议修订版的客户端。
有意不支持 JSON-RPC 批量消息。
模块
| 模块 | 用途 | 当前版本 |
|---|---|---|
aj-mcp-common | 共享的 JSON-RPC 消息、MCP 协议模型、内容类型、版本元数据和 JSON 工具 | 1.9 |
aj-mcp-client | 同步客户端 API,以及 STDIO、HTTP/SSE 和 Streamable HTTP 传输方式 | 1.7 |
aj-mcp-server | 基于注解的功能发现、请求分发、错误、会话和服务端传输方式 | 1.6 |
samples | STDIO、Spring Boot/SSE 和内嵌 Tomcat 示例 | — |
客户端和服务端构件已依赖 aj-mcp-common;应用通常只需添加所用的构件。
快速开始
在 Java 8 服务端公开工具
添加服务端依赖:
<dependency>
<groupId>com.ajaxjs</groupId>
<artifactId>aj-mcp-server</artifactId>
<version>1.6</version>
</dependency>
声明服务并通过 STDIO 启动:
@McpService
public class GreetingTools {
@Tool(description = "Greets a user")
public String greet(@ToolArg("name") String name) {
return "Hello, " + name;
}
}
public static void main(String[] args) {
FeatureMgr features = new FeatureMgr();
features.init("com.example.mcp");
McpServer server = new McpServer();
server.setFeatureMgr(features);
server.setServerConfig(new ServerConfig());
server.setTransport(new ServerStdio(server));
server.start();
}
使用 STDIO 时,请将标准输出保留给 JSON-RPC 消息;应用日志应发送到标准错误或日志文件。有关工具、资源、提示词和 HTTP 传输方式,请参阅服务端 README。
从 Java 客户端连接
<dependency>
<groupId>com.ajaxjs</groupId>
<artifactId>aj-mcp-client</artifactId>
<version>1.6</version>
</dependency>
try(McpClient client = McpClient.createStdioMcpClient("java", "-jar", "/path/to/mcp-server.jar")) {
client.listTools().forEach(tool ->System.out.println(tool.getName()));
String result = client.callTool("greet", "{\"name\":\"AJ-MCP\"}");
System.out.println(result);
}
务必关闭客户端,以释放其流、HTTP 连接、待处理请求、工作线程和可选的子进程。有关 HTTP 传输方式和其他 API,请参阅客户端 README。
从源代码构建
使用 Maven 和 JDK 8 或 JDK 17:
mvn test
仅构建一个模块及其依赖项:
mvn -pl aj-mcp-client -am test
mvn -pl aj-mcp-server -am test
为什么选择 MCP?
模型上下文协议为使用你喜爱的编程语言和框架,基于应用数据构建智能应用带来了令人兴奋的可能性。借助 AJ MCP 服务,你将拥有强大的基础,可以创建自己的 Java 服务,让 AI 与你能想象到的任何数据源或系统连接起来。
无论你想连接常用数据库、集成公司的内部系统,还是创造全新的事物——真正的可能性无穷无尽!使用 AJ 实现 MCP 服务非常简单,让你可以专注于创意,而不是底层工作。
还等什么?获取代码,启动 IDE,今天就开始构建自己的 MCP 服务。AI 驱动应用的未来已然到来,你也可以参与塑造它!
祝你玩得开心!
链接
MCP 相关实用链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。