模型上下文协议服务器

一个基于Java实现的模型上下文协议(MCP)服务器,提供工具、资源和提示等核心功能,适用于AI开发和集成。

  • by stethompson9
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 cobra30299/MCP_SERVER_JAVA

使用说明

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.建成后:

  1. 打开VS代码
  2. 按 Cmd+Shift+P (Mac)或 Ctrl+Shift+P (Windows)
  3. 选择“MCP:添加服务器…”
  4. 服务器将可供连接

发展

项目结构

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

添加新工具

要添加新工具,请执行以下操作:

  1. 打开 src/main/java/com/example/mcp/ToolsProvider.java
  2. 在中添加工具定义 registerTools()
  3. 在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;

添加新资源

要添加新资源,请执行以下操作:

  1. 打开 src/main/java/com/example/mcp/ResourcesProvider.java
  2. 在中添加资源 registerResources()
  3. 为您的资源URI实现读取处理程序

MCP检验员测试

您可以使用MCP检查器测试您的服务器:

npx @modelcontextprotocol/inspector java -jar target/mcp-server-java-1.0.0.jar

调试

服务器使用SLF4J进行日志记录。日志将写入stderr,并显示在您的终端或客户端的日志查看器中。

要启用详细日志记录,您可以在slf4j配置中调整日志记录级别。

了解更多

许可证

MIT许可证-有关详细信息,请参阅许可证文件