MCP服务器

使用Java SDK实现的Model Context Protocol (MCP)服务器,支持AI工具与外部系统的标准化通信。

  • by moises-paschoalick
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 moises-paschoalick/java-sdk-mcp-server

使用说明

Java SDK MCP服务器

本项目演示如何创建一个 模型上下文协议(MCP)服务器 使用Java SDK。MCP是一种协议,允许人工智能工具以标准化的方式与外部系统进行通信。

📋 先决条件

  • Java 24 你上级
  • 梅文 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. 计算器

简单的计算器,用于评估基本的数学表达式。

参数 :

  • expression数学表达式(例如:“2 + 3”,“10 * 5”)

使用范例:

{
  "expression": "15 + 25"
}

2. 迎宾员

个性化的问候。

参数 :

  • name问候的人的名字

使用范例:

{
  "name": "João"
}

3. 获取信息

获取有关 MCP 服务器的信息 。

参数 : 无

🧪 使用 MCP Inspector 进行测试

若要使用 MCP Inspector 测试服务器:

1. 安装 MCP Inspector

npm install -g @modelcontextprotocol/inspector

2. 运行服务器

cd java-mcp
mvn clean package

3.执行MCP检查员

# 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.无检查员:

  • 在连接面板中检查服务器连接
  • 导航到“工具”选项卡以查看可用的工具
  • 通过点击它们并查看答案来测试每个工具
  • 在通知面板中监视日志

🔌 与 Claude Desktop 集成

要将此 MCP 服务器与 Claude Desktop 配合使用:

1. 获取完整的 JAR 路径

cd java-mcp
FULL_PATH=$(pwd)/target/java-mcp-1.0-SNAPSHOT.jar
echo $FULL_PATH

2.配置克劳德桌面

  1. 打开 Claude 桌面首选项
  2. 导航到“MCP服务器”部分
  3. 添加具有以下配置的新服务器 :
{
  "java-mcp-example": {
    "command": "java",
    "args": [
      "-jar",
      "$FULL_PATH"
    ]
  }
}

📚 主要依赖关系

  • 杰克逊用于 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);
}

🎯 下一步

  1. 添加更多工具实施用于文件操作、数据库查询等的工具。
  2. 实现递归添加对 MCP 资源的支持
  3. 添加身份验证:实施安全机制
  4. 改进日志记录添加结构化日志和指标
  5. 自动化测试实施单元和集成测试
  6. CI/CD:配置管道构建和部署

📖 额外资源

🤝 贡献

  1. 创建项目分叉
  2. 为您的功能创建一个分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推动一个分支(git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

这个项目是MIT许可的。查看文件 LICENSE 了解更多详情。

🆘 支持

如果您遇到任何问题或有疑问,请在仓库中打开一个问题。

📝 关于

本项目仅使用 Java SDK 来实现 MCP Server。对于基于 Spring 的实现,请参阅仓库 spring ai mcp服务器.