Springone Mcp

Springone Mcp

🚀 Spring Into MCP

Spring Into MCP 是一个基于 Spring AI 构建的示范 MCP(模型上下文协议)服务器,它能够提供有关 SpringOne 会议场次和演讲者的信息。这个项目展示了如何利用 Spring AI 搭建一个 MCP 服务器,为 AI 模型与外部数据源和工具的连接提供了标准化的解决方案。

🚀 快速开始

前提条件

  • Java 21 及以上版本
  • Maven 3.6 及以上版本

构建并运行

# 构建项目
mvn clean package -DskipTests

# 运行服务器
java -jar target/springone-mcp-0.0.1-SNAPSHOT.jar

测试服务器

# 使用 MCP Inspector 测试服务器
npx @modelcontextprotocol/inspector

✨ 主要特性

此 MCP 服务器具备以下三大主要功能:

工具

  • springone-sessions-by-date:按会议日期分组获取场次数量
  • springone-sessions:检索 2025 年 SpringOne 所有场次的详细信息

提示模板

  • 针对会议提供的场次推荐提示模板

资源

  • 演讲者信息和背景资料

💻 使用示例

与 Claude Desktop 配合使用

配置

将此服务器添加到你的 Claude Desktop 配置文件中:

文件位置

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"springone-conference": {
"command": "java",
"args": [
"-jar",
"/Users/vega/Downloads/springone-mcp/target/springone-mcp-0.0.1-SNAPSHOT.jar"
]
}
}
}

⚠️ 重要提示

请更新路径以匹配你实际的项目位置。

示例查询

配置完成后,你可以向 Claude 提出如下问题:

  • "今年 SpringOne 会议有多少场活动?"
  • "能为 Java 开发者推荐一些场次吗?"
  • "对 AI 和 MCP 感兴趣的人有哪些场次可以参加?"
  • "Dan Vega 在本次会议中的背景和专长是什么?"

Claude 将自动使用 MCP 服务器的工具和资源来提供准确、最新的答案。

🔧 技术细节

项目结构

src/main/java/dev/danvega/springone/
├── Application.java         # 带有 MCP 配置的主 Spring Boot 应用程序
├── Conference.java          # 会议数据模型
├── Session.java             # 场次数据模型
├── SessionTools.java        # 用于场次查询的 MCP 工具
├── ConferencePrompts.java   # MCP 提示模板
└── SpeakersResource.java    # 用于演讲者信息的 MCP 资源

src/main/resources/
└── data/
└── sessions.json        # 会议场次数据

关键组件

  • SessionTools:提供可调用的函数以检索场次数据
  • ConferencePrompts:常见会议相关查询的模板
  • SpeakersResource:包含演讲者信息的静态资源
  • sessions.json:包含所有 2025 年 SpringOne 会议场次数据,供工具查询使用

📚 详细文档

公共 MCP 服务器(HTTP + SSE)

默认情况下,此 MCP 服务器以 STDIO 模式运行,用于与 Claude Desktop 直接集成。不过,你也可以将其作为公共 HTTP 服务器运行,使用 Server-Sent Events(SSE)以实现更广泛的访问。

配置

项目包含两种配置文件:

  • 默认(STDIO)application.properties
    • 使用标准输入/输出进行通信
    • 非常适合与 Claude Desktop 集成
    • 无网络暴露
  • 公共(HTTP + SSE)application-sse.yaml
    • 作为 Web 服务器在端口 8080 上运行
    • 使用 Server-Sent Events 进行实时通信
    • 可通过 HTTP 供远程客户端访问

作为公共服务器运行

# 构建项目
mvn clean package -DskipTests

# 使用 SSE 配置文件运行
java -jar target/springone-mcp-0.0.1-SNAPSHOT.jar --spring.profiles.active=sse

测试公共服务器

服务器运行后,你可以测试 MCP 服务器的端点:

# 检查服务器状态
curl http://localhost:8080/mcp/status

# 列出可用工具
curl http://localhost:8080/mcp/tools

# 测试工具调用
curl -X POST http://localhost:8080/mcp/tools/springone-sessions-by-date \
-H "Content-Type: application/json"

这使得 MCP 服务器可以公开部署,并通过 HTTP 供任何兼容 MCP 的客户端访问。

议程

  • 幻灯片
  • 演示开始
    • 浏览器标签页:
      • https://claude.ai/new
      • https://start.spring.io/
      • https://docs.spring.io/spring-ai/reference/index.html
      • https://modelcontextprotocol.io/docs/getting-started/intro
  • 询问 Claude(网页版或桌面版)今年 SpringOne 会议有多少场活动
    • 该模型未针对此数据进行训练
    • 它将调用工具来尝试收集回答问题所需的数据
  • 创建 MCP 服务器
    • start.spring.io
    • Web,MCP 服务器
    • application.properties(STDIO 与 SSE - 代码相同,但配置不同)
    • 展示场次数据
  • 模型
    • 会议
    • 场次
  • 工具
    • SessionTools
    • 讨论其他工具但暂不实现
    • 添加工具回调
    • 构建 mvn clean package -DskipTests
    • 测试 npx @modelcontextprotocol/inspector
  • 提示模板
    • Conference Prompts
    • 构建并测试
  • 资源
    • SpeakerResource
    • 构建并测试
  • Claude Desktop
    • 配置
    • 演示提示
      • 今年 SpringOne 会议有多少场活动?
      • 我是一名对 AI 和 MCP 感兴趣的 Java 开发者,今年 SpringOne 会议能为我推荐一些场次吗?
      • Dan Vega 的那场活动听起来很有趣,能给我一些他的背景信息吗?
    • 提示模板
    • 资源
  • HTTP + SSE
    • 将其转变为公共 MCP 服务器
  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-20 17:57

相似服务问题