关于 java-sdk-mcp-server
java-sdk-mcp-server 是仅使用 Java SDK 实现 MCP 服务的示例,适合学习或测试基础服务实现的开发者。它通过 STDIO 和 JSON 演示计算器、问候及服务信息工具。
主要功能
- 01Java SDK 服务示例
- 02基础表达式计算器
- 03个性化问候
- 04服务信息工具
- 05STDIO 与 JSON 消息处理
适用场景
- 01学习基础 Java MCP 服务
- 02使用 MCP Inspector 测试工具
- 03尝试与 Claude Desktop 集成服务
MCP 相关
实现 MCP 服务,通过 STDIO 向 MCP 客户端提供 calculator、greeter 和 get_info 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Java SDK MCP 服务
本项目演示如何仅使用 Java SDK 创建 Model Context Protocol (MCP) 服务。MCP 是一种协议,可让 AI 工具以标准化的方式与外部系统通信。
📋 前置条件
- Java 24 或更高版本
- Maven 3.6+
- Git
🚀 如何运行项目
1. 克隆仓库
git clone https://github.com/moises-paschoalick/java-sdk-mcp-server.git
cd java-sdk-mcp-server
2. 切换到 MCP 项目目录
cd java-mcp
3. 编译项目
mvn clean compile
4. 运行项目
mvn exec:java
或者创建可执行 JAR 并运行:
mvn clean package
java -jar target/java-mcp-1.0-SNAPSHOT.jar
🏗️ 项目结构
java-sdk-mcp-server/
├── java-mcp/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/example/
│ │ │ │ └── Main.java
│ │ │ └── resources/
│ │ └── test/
│ ├── pom.xml
│ └── .gitignore
├── README.md
├── test-examples.md
└── .gitignore
🔧 已实现的功能
MCP 服务实现了以下工具:
1. calculator
可计算基本数学表达式的简单计算器。
参数:
expression:数学表达式(例如:"2 + 3"、"10 * 5")
使用示例:
{
"expression": "15 + 25"
}
2. greeter
个性化问候。
参数:
name:要问候的人的姓名
使用示例:
{
"name": "João"
}
3. get_info
获取有关 MCP 服务的信息。
参数: 无
🧪 使用 MCP Inspector 测试
若要使用 MCP Inspector 测试服务:
1. 安装 MCP Inspector
npm install -g @modelcontextprotocol/inspector
2. 运行服务
cd java-mcp
mvn clean package
3. 运行 MCP Inspector
# Obtenha o caminho completo do JAR
FULL_PATH=$(pwd)/target/java-mcp-1.0-SNAPSHOT.jar
echo $FULL_PATH
# Execute o inspector
npx @modelcontextprotocol/inspector java -jar $FULL_PATH
4. 在 Inspector 中:
- 在连接面板中检查服务连接
- 前往“工具”选项卡,查看可用工具
- 点击各个工具并查看响应,以测试工具
- 在通知面板中监控日志
🔌 与 Claude Desktop 集成
若要将此 MCP 服务与 Claude Desktop 配合使用:
1. 获取 JAR 的完整路径
cd java-mcp
FULL_PATH=$(pwd)/target/java-mcp-1.0-SNAPSHOT.jar
echo $FULL_PATH
2. 配置 Claude Desktop
- 打开 Claude Desktop 的偏好设置
- 前往“MCP 服务”部分
- 使用以下配置添加新服务:
{
"java-mcp-example": {
"command": "java",
"args": [
"-jar",
"$FULL_PATH"
]
}
}
📚 主要依赖项
- Jackson:用于 JSON 处理
- SLF4J:用于日志记录
🔍 实现示例
该服务采用简化的实现方式,通过 STDIO 和 JSON 模拟 MCP 的行为:
// Configurar entrada e saída
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
// Enviar handshake inicial
sendHandshake(writer);
// Loop principal para processar mensagens
String line;
while ((line = reader.readLine()) != null) {
JsonNode request = mapper.readTree(line);
processRequest(request, writer);
}
🎯 后续步骤
- 添加更多工具:实现文件操作、数据库查询等工具。
- 实现资源:添加对 MCP 资源(Resources)的支持
- 添加身份验证:实现安全机制
- 改进日志记录:添加结构化日志和指标
- 自动化测试:实现单元测试和集成测试
- CI/CD:配置构建和部署流水线
📖 其他资源
🤝 参与贡献
- Fork 项目
- 为你的功能创建一个分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 创建 Pull Request
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
🆘 支持
如果你遇到问题或有疑问,请在仓库中提交 issue。
📝 关于
本项目仅使用 Java SDK 实现 MCP 服务。有关基于 Spring 的实现,请参阅仓库 spring-ai-mcp-server。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。