使用说明
MCP服务器Java
Java中的模型上下文协议(MCP)服务器实现,演示了MCP的核心功能,包括工具、资源和提示。
特性
此MCP服务器提供:
工具
- 添加:将两个数字相加
- 乘:将两个数字相乘
- get_current时间:获取当前服务器时间
- 问候:用名字问候某人
- ai_chat:向Azure AI Foundry代理发送提示并获得AI支持的响应
资源
- 服务器信息:有关MCP服务器的信息
- 文档:服务器文档和使用示例
提示
- math_help:获得数学计算方面的帮助
- 当前时间:获取当前时间
先决条件
- Java 17或更高版本
- Maven 3.6+
构建服务器
使用Maven构建项目:
mvn clean package
这将创建一个可执行的JAR文件: target/mcp-server-java-1.0.0.jar
运行服务器
直接运行服务器:
在Powershell中导出Azure OpenAI API密钥:
$env:AZURE_OPENAI_API_KEY=“XXXXXXXXXXXXXXXXXXXXXXXXXXXX”
检查是否设置了环境变量
c: >echo$env:AZURE_OPENAI_API_KEY
🚀 用法
启动HTTP服务器:
java-jar目标/mcp-server-java-1.0.0.jar--http
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=com.example.mcp.client.McpJavaClient”
NPX节点包执行
nxp命令在网页上测试
npx@modelcontextprotocol/检查器java-jar目标/mcp-server java-1.0.0.jar
创建一个npx测试工具来检查和测试功能!
测试工具:
HTTP JSON API服务器已成功启动!
API终点:
http://localhost:8080/tools-列出可用工具
http://localhost:8080/tools/add-加两个数字
http://localhost:8080/tools/multiply-将两个数字相乘
http://localhost:8080/tools/time-获取当前时间
http://localhost:8080/tools/greet-按名字问候
http://localhost:8080/tools/ai_chat-与AI代理聊天
列出所有工具
curl-X GEThttp://localhost:8080/tools
加两个数字
curl-X POSThttp://localhost:8080/tools/add-H“内容类型:应用程序/json”-d'{“a”:“7”,“b”:“51”}'
将两个数字相乘
curl-X POSThttp://localhost:8080/tools/multiply-H“内容类型:应用程序/json”-d'{“x”:“7”,“y”:“70”}'
获取当前时间
curl-X GEThttp://localhost:8080/tools/time
问候某人
curl-X POSThttp://localhost:8080/tools/greet-H“内容类型:应用程序/json”-d'{“名称”:“Steve”}'
与AI Agent聊天
curl-X POSThttp://localhost:8080/tools/ai_chat-H“内容类型:应用程序/json”-d'{“提示”:“什么是Azure AI Foundry?”}'
curl-X POSThttp://localhost:8080/tools/ai_chat-H“内容类型:应用程序/json”-d'{“提示”:“你好”}'
使用可选参数与AI Agent聊天
curl-X POSThttp://localhost:8080/tools/ai_chat-H“内容类型:application/json”-d'{“提示”:“用简单的术语解释模型上下文协议”,“max_tokens”:200,“温度”:0.5}'
curl-X POSThttp://localhost:8080/tools/ai_chat-H“内容类型:application/json”-d'{“提示”:“写一首关于编码的俳句”,“max_tokens”:200,“温度”:0.5}'
🚀 用法
启动HTTP服务器:
java-jar目标/mcp-server-java-1.0.0.jar--http
启动STDIO服务器:
java-jar目标/mcp-server-java-1.0.0.jar
git中心集成
在git目录的命令提示符中:
git 状态
在主分支上
没什么可承诺的,工作树很干净
PS C:\Users\stethompson\Microsoft\MCP_Server_Java>git init
重新初始化C:/Users/stethompson/Microsoft/MCP_Server_Java/.Git中的现有Git存储库/
PS C:\Users\stethompson\Microsoft\MCP_Server_Java>git add。
PS C:\Users\stethompson\Microsoft\MCP_Server_Java>git远程添加源https://github.com/SteveThompson_msftcae/MCP_SERVER_JAVA.git
git remove-v(检查远程是否存在)
PS C:\Users\stethompson\Microsoft\MCP_Server_Java>git branch-M main
PS C:\Users\stethompson\Microsoft\MCP_Server_Java>git push-u源代码main
信息:请在浏览器中完成身份验证。..
致命:请求不受支持
“”的用户名https://github.com':
(通过代码验证)
PS C:\Users\stethompson\Microsoft\MCP_Server_Java>git push-u源代码main
枚举对象:48,已完成。
计数对象:100%(48/48),完成。
使用多达8个螺纹进行增量压缩
压缩对象:100%(31/31),完成。
写入对象:100%(48/48),23.38 KiB | 1.80 MiB/s,完成。
总计48(增量8),重用0(增量0),包重用0(从0开始)
远程:解决增量:100%(8/8),完成。
到https://github.com/SteveThompson_msftcae/MCP_SERVER_JAVA.git
*【新分支】main->main
设置分支“main”以跟踪“origin/main”。
使用克劳德桌面
将服务器添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-server-java": {
"command": "java",
"args": [
"-jar",
"C:\\absolute\\path\\to\\target\\mcp-server-java-1.0.0.jar"
]
}
}
}
将路径替换为JAR文件的绝对路径。
使用VS代码
服务器已在中配置 .vscode/mcp.json.建成后:
- 打开VS代码
- 按
Cmd+Shift+P(Mac)或Ctrl+Shift+P(Windows) - 选择“MCP:添加服务器…”
- 服务器将可供连接
发展
项目结构
mcp-server-java/
├── src/
│ └── main/
│ └── java/
│ └── com/
│ └── example/
│ └── mcp/
│ ├── Main.java # Entry point
│ ├── ToolsProvider.java # Tool implementations
│ ├── ResourcesProvider.java # Resource implementations
│ └── PromptsProvider.java # Prompt implementations
├── .vscode/
│ └── mcp.json # VS Code MCP configuration
├── pom.xml # Maven configuration
└── README.md # This file
添加新工具
要添加新工具,请执行以下操作:
- 打开
src/main/java/com/example/mcp/ToolsProvider.java - 在中添加工具定义
registerTools() - 在switch语句中实现工具逻辑
例子:
// In the list tools handler
Tool myTool = new Tool();
myTool.setName("my_tool");
myTool.setDescription("Description of what my tool does");
// ... set input schema
tools.add(myTool);
// In the call tool handler
case "my_tool":
// Your implementation here
break;
添加新资源
要添加新资源,请执行以下操作:
- 打开
src/main/java/com/example/mcp/ResourcesProvider.java - 在中添加资源
registerResources() - 为您的资源URI实现读取处理程序
MCP检验员测试
您可以使用MCP检查器测试您的服务器:
npx @modelcontextprotocol/inspector java -jar target/mcp-server-java-1.0.0.jar
调试
服务器使用SLF4J进行日志记录。日志将写入stderr,并显示在您的终端或客户端的日志查看器中。
要启用详细日志记录,您可以在slf4j配置中调整日志记录级别。
了解更多
许可证
MIT许可证-有关详细信息,请参阅许可证文件