内容
MCP 服务器 Java 版
模型上下文协议(M服务器的 Java 实现,演示了核心 MCP 功能,包括工具、资源和提示。
## 功能
该 MCP 服务器提供:
### 工具
- **添加**: 将两个数字相加
- **乘法**: 乘以两个数字
- **获取当前时间**: 获取服务器的当前时间
- **问候**: 按姓名问候某人
- **AI 聊天**: 向 Azure AI Foundry 代理发送提示并获取 AI 驱动的响应
### 资源
- **服务器信息**: 关于 MCP 服务器的信息
- **文档**: 服务器文档和使用示例
### 提示
- **数学助手**: 获取数学计算的帮助
- **当前时间**: 获取当前时间
## 前提条件
- Java 17 或更高版本
- Maven 3.6+
## 构建服务器
使用 Maven 构建项目:
```bash
mvn clean package
```
这将创建一个可执行的 JAR 文件:`target/mcp-server-java-1.0.0.jar`
## 运行服务器
## 直接运行服务器:
在 Powershell 中导出 Azure OpenAI API 密钥:
$env:AZURE_OPENAI_API_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
检查环境变量是否已设置
c:\>echo $env:AZURE_OPENAI_API_KEY
🚀 使用方法
## 启动 HTTP 服务器:
java -jar target/mcp-server-java-1.0.0.jar --http
```bash
java -jar target/mcp-server-java-1.0.0.jar
```
## 运行 Java 服务器:
有效解决方案
步骤 1:启动 HTTP 服务器(在一个终端中)
java -jar target/mcp-server-java-1.0.0.jar --http (需要先启动 HTTP 服务器)
## 运行 Java 客户端:
步骤 2:在另一个终端中运行 Java 客户端
mvn exec:java "-Dexec.mainClass=comcp.client.McpJavaClient"
## NPX Node Package eXecute
## nxp 命令测试网页
<br>npx @modelcontextprotocol/inspector java -jar target/mcp-server-java-1.0.0.jar
<br>创建一个 npx 测试框架来检查和测试功能!
## 测试工具:
<br>HTTP JSON API 服务器启动成功!
<br>API 端点:
<br> http://localhost:8080/tools - 列出可用工具
<br> http://localhost:8080/tools/add - 添加两个数字
<br> http://localhost0/tools/multiply -以两个数字
<br> http://localhost:8080/tools/time - 获取当前时间
<br> http://localhost:8080/tools/greet - 按姓名问候
<br> http://localhost:8080/tools/ai_chat - 与 AI 代理聊天
<br><br><br>
# 列出所有工具
curl -X GET http://localhost:8080/tools
# 添加两个数字
curl -X POST http://localhost:8080/tools/add -H "Content-Type: application/json" -d '{"a":"7","b":"51"}'
# 乘以两个数字
curl -X POST http://localhost:8080/tools/multiply -H "Content-Type: application/json" -d '{"x":"7","y":"70"}'
# 获取当前时间
curl -X GET http://localhost:8080/tools/time
# 问候某人
curl -X POST http://localhost:8080/tools/greet -H "Content-Type: application/json" -d '{"name":"Steve"}'
# 与 AI 代理聊天
curl -X POST http://localhost:8080/tools/ai_chat -H "Content-Type: application/json" -d '{"prompt": "什么是 Azurery?"}'
curl POST http://localhost:808/ai_chat -H ": application/json" -prompt": "Hello"} # 与 AI 代理聊天(带有可选参数)
curl -://localhost:808/ai_chat -H ": application/json" -prompt": "用简单的模型上下文协议", "max_tokens200, "temperature0.5 }'
curl http://localhost0/tools/ai_chat -Content-Type: application/json" -prompt": "写关于编码的俳_tokens": 200, "temperature": 0 }'
🚀 使用方法
## 启动 HTTP 服务器:
java target/mcp-server-java0.0.jar
## 启动 STDIOjava -jar target/m-java-1.0.0.jar
## GitHub <br>在 Git 目录的命令提示符中:
<br status
<br>在支上
<br>,工作树干净
<br:\Users\stethompson\Microsoft\MCP_Server_Java> git init
<br>重新初始化现有的 Git 仓库,位于 C:/Users/stethompson/Microsoft/MCP_Server_Java/.git/
<br>PS C:\Users\stethompson\Microsoft\MCP_Server_Java> git addPS C:\Usersethompson\Microsoft\MCP> git remote add://github.com/Steve_msftcae/M_JAVA.git
<br -v (检查远程是否存在)
<br>PS C:\stethompson\Microsoft_Server_Java> git main
<br>PS C:\Users\steth\MCP_Server_Java push -u origin main>信息:请在浏览器中完成身份验证...
<br:不支持该请求
<br>'https://github用户名:
(使用验证)
<br>PSUsers\stethompson\Microsoft\MCP_Server_Java>u origin main
<br>枚举对象:48,已完成。
<br>计数对象:100% (48/48),已完成。
<br>使用最多 8 个线程的增量压缩
<br>压缩对象:100% (31/31),已完成。
<br>写入对象:100% (48/48),23.38 KiB | 80/s,已完成。
共 48( 8),重用 0(增量),打包重用 来自 0)
<br>远程:解析增量:100% (8/8),已完成。
<br>至 https.com/SteveThompson_msftcae/MCP_SERVER.git
<br> *分支] main ->>分支 'main设置为跟踪 'origin/main### 使用 Claude Desktop
将服务器添加到您的 Claude Desktop 配置中:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.jsonWindows**: `%APPDaude\claude_desktop_config.json`
```json "mcpServers": {
"mcp-server-java": {
"command": "java",
"args "-jar",
:\\绝对路径\\到\\mcp-server-java-1.0.0.jar }
}
替换为您的 JAR 文件### 使用 VS Code
服务器已经在 `.vs.json` 中配置。构建后:
1. Code
2. 按 `Cmd+Shift+P` (Mac)或 `Ctrl+Shift+PWindows)
3. 选择:添加服务器...”
服务器将可用作连接 开发
### 项目结构
```bash
mcp-server├── src/
│ └── main/
│ └── java/
│ └── com/
│ └── example/
│ cp/
│ ├── Main.java # 入口点 ├── ToolsProvider.java工具实现
├── ResourcesProvider.java # 资源实现
│ └── Prompts # 提示├── .vscode/
└── mcp.json # VS Code MCP 配置
├── # Maven 配置
└── README.md # 本文件
```
### 添加新工具
要添加新工具:. 打开 `src/main/java/com/example/mcp/ToolsProvider.java`
2. 在 `registerTools()` 中添加工具. 在 switch 语句中实现工具逻辑
示例java
// 在 处理程序中
Tool = new Tool();
.setName("my_tool");
.setDescription("描述 my tool 的功能");
// ... 设置输入模式
tools.add(myTool);
// 在 call tool 处理程序中
case "my_tool":
// 在此处实现您的功能
break;
```
### 添加新资源
要添加新资源:
1. 打开 `src/main/java/com/example/mcp/ResourcesProvider.java`
2. 在 `registerResources()` 中添加资源
3. 实现资源 URI 的读取处理程序
### 使用 MCP Inspector 进行测试
您可以使用 MCP Inspector 测试服务器```bash
@modelcontextprotocol -jar-server-java-0.0.jar
调试
服务器使用4J 进行日志日志写入标准错误流,并将出现在您的终端或客户端的日志查看器中。
要启用详细日志记录,您可以在 slf4j 配置中调整日志记录级别。
## 了解更多
- [模型上下文](https://modelcontext)
- [MCP Java SDK](https://github.com/model/java-sdk)
- 规范](https.modelcontextprotocol## 许可证
MIT 有关详细信息 文件。