问候功能服务器

一个基于Java和Spring AI的Model Context Protocol(MCP)服务器,提供问候功能和资源,适用于AI助手集成。

  • by yotamfreund-eng
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 yotamfreund-eng/mcp-greeting-server

使用说明

MCP问候服务器

提供问候功能的模型上下文协议(MCP)服务器,使用Java 25、Gradle和Spring AI构建。

概述

此服务器实现了模型上下文协议,以提供与问候语相关的工具和资源。它可以与MCP兼容的客户端集成,为AI助手添加问候功能。

安装

来自MCP注册表

此服务器发布在 MCP注册表 可以直接安装:

使用Docker:

{
  "mcpServers": {
    "greeting": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/yotamfreund-eng/mcp-greeting-server:latest"]
    }
  }
}

将此添加到您的Claude Desktop配置文件中:

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

来源

# Build (Windows)
gradlew.bat build

# Run
gradlew.bat bootRun

# Or use convenience scripts
scripts\build.bat
scripts\start.bat

特性

  • 工具:展示AI助手可以调用的问候功能
  • 资源:提供问候模板和模式
  • 提示:为各种场景预先配置问候提示
  • 采用Spring AI构建,增强AI功能
  • 容器化部署支持

技术栈

  • Java:OpenJDK 25
  • 构建工具:等级9.2.1
  • 框架:弹簧靴3.5.7
  • 春季AI:1.1.2支持MCP服务器
  • 协议:模型上下文协议(MCP)

先决条件

  • Java 25(OpenJDK)
  • 9.2.1级或更高

安装

克隆存储库:

git clone https://github.com/yourusername/mcp-greeting-server.git
cd mcp-greeting-server

建筑

使用Gradle构建项目:

./gradlew build

对于Windows:

gradlew.bat build

备注:如果您安装了多个Java版本,请运行 scripts\set-java-25.bat 首先在Windows上确保Java 25优先。

构建Docker/OCI镜像

服务器可以打包为Docker/OCI容器映像,以部署到MCP注册表或容器平台。

快速开始

# Build Docker image with full MCP registry labels
scripts\build-image.bat

或者直接使用Gradle:

gradlew.bat buildDockerImage

这使用Dockerfile,并包括所有MCP注册表元数据标签:

  • mcp.protocol.version
  • mcp.server.name
  • mcp.server.version
  • mcp.transport

运行容器

使用STDIO传输(MCP注册表标准)运行:

docker run -i --rm mcp-greeting-server:latest

这 --rm flag在容器停止时自动删除容器(建议用于大多数用例)。

使用HTTP/SSE传输运行:

docker run -p 8080:8080 -e SPRING_PROFILES_ACTIVE=default mcp-greeting-server:latest

有关Docker的详细文档,请参阅 docs/DOCKER.md.

发布到MCP注册表

构建并测试Docker镜像后,您可以将其发布到MCP注册表,以便用户轻松发现和安装:

# 1. Tag for your container registry (e.g., Docker Hub)
docker tag mcp-greeting-server:1.0.0 YOUR_USERNAME/mcp-greeting-server:1.0.0

# 2. Push to registry
docker push YOUR_USERNAME/mcp-greeting-server:1.0.0

# 3. Submit to MCP Registry at https://modelcontextprotocol.io/registry

有关完整的发布说明,请参阅 docs/PUBLISHING.md.

跑步

运行服务器:

./gradlew bootRun

或者运行构建的JAR:

java -jar build/libs/mcp-greeting-server-1.0.0.jar

发展

以开发模式运行

./gradlew bootRun --args='--spring.profiles.active=dev'

运行测试

./gradlew test

对于Windows:

gradlew.bat test

代码覆盖率

./gradlew jacocoTestReport

配置

服务器可以通过以下方式配置 application.yml 或环境变量。

配置示例

server:
  port: 8080

spring:
  application:
    name: mcp-greeting-server
  ai:
    enabled: true

mcp:
  server:
    name: greeting
    version: 1.0.0

用法

MCP客户端配置

将此服务器添加到MCP客户端配置中:

{
  "mcpServers": {
    "greeting": {
      "command": "java",
      "args": ["-jar", "path/to/mcp-greeting-server/build/libs/mcp-greeting-server-1.0.0.jar"]
    }
  }
}

可用工具

服务器提供以下工具:

  • greet:生成个性化问候语
  • farewell:生成告别消息
  • casual_greeting:生成非正式问候语

可用资源

  • greeting://templates:访问问候语模板
  • greeting://styles:不同的问候风格和格式

项目结构

mcp-greeting-server/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── mcpgreeting/
│   │   │               ├── McpGreetingApplication.java
│   │   │               ├── config/          # Configuration classes
│   │   │               ├── controller/      # REST controllers
│   │   │               ├── service/         # Business logic
│   │   │               ├── model/           # Domain models
│   │   │               └── mcp/             # MCP protocol implementation
│   │   └── resources/
│   │       ├── application.yml
│   │       └── templates/
│   └── test/
│       └── java/
├── scripts/                  # Build and utility scripts
│   ├── build.bat            # Windows build script
│   └── start.bat            # Windows start script
├── docs/                     # Project documentation
│   └── TESTING.md           # Testing guide
├── .github/                  # GitHub configuration
│   └── copilot-instructions.md
├── build/                    # Build output
├── gradle/
│   └── wrapper/
├── build.gradle              # Gradle build configuration
├── settings.gradle           # Gradle settings
├── gradlew                   # Gradle wrapper (Unix)
├── gradlew.bat              # Gradle wrapper (Windows)
└── README.md                # This file

Docker支持

构建Docker镜像

docker build -t mcp-greeting-server:latest .

使用Docker运行

docker run -p 8080:8080 mcp-greeting-server:latest

贡献

欢迎投稿!请按照以下步骤操作:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

代码的风格

这个项目遵循标准的Java编码约定。请确保您的代码:

  • 遵循Java命名约定
  • 包括适当的Javadoc注释
  • 通过所有测试和检查样式规则

故障排除

Java版本问题

问题:生成失败,出现“不支持的类文件主版本69”或Java版本错误

解决方案确保你使用的是Java 25。如果需要,将JAVA_HOME设置为JAVA 25安装:

set "JAVA_HOME=C:\path\to\your\java-25"
gradlew.bat build

或者使用提供的处理环境的构建脚本:

scripts\build.bat

Gradle Daemon问题

问题:由于缓存的守护进程问题,构建失败

解决方案:停止所有Gradle守护进程并重建:

gradlew.bat --stop
gradlew.bat clean build

许可证

麻省理工学院

支持

有关问题和疑问,请在GitHub存储库中打开问题。

资源

项目文件

更新日志

版本1.0.0(2026-02-16)

  • 初始版本
  • 基本问候功能
  • 支持多种问候风格
  • Spring AI 1.1.2与MCP服务器支持集成
  • 弹簧靴3.5.7
  • Java 25(OpenJDK)支持
  • 完整的MCP协议实施
  • STDIO、SSE和HTTP传输支持
  • @McpTool 工具定义的注释