进入MCP
使用Spring AI构建的演示MCP(模型上下文协议)服务器,提供有关KCDC(堪萨斯城开发者大会)会议和演讲者的信息。
什么是MCP?
模型上下文协议(MCP)是一种将AI模型连接到外部数据源和工具的标准化方法。将其视为一座桥梁,使克劳德(和其他人工智能模型)能够访问实时信息并执行超出训练数据的操作。
此演示服务器展示了如何使用Spring AI构建MCP服务器,该服务器公开了:
- 工具:Claude可以调用函数来获取数据
- 提示:预构建提示模板
- 资源:可以检索的静态内容
特性
此MCP服务器提供三种主要功能:
工具
kcdc-sessions-by-date:获取按会议日期分组的会话计数kcdc-sessions:检索所有KCDC 2025会话及其详细信息
提示
- 针对特定会议的会议建议提示模板
资源
- 演讲者信息和背景
快速开始
先决条件
- Java 21+
- Maven 3.6+
构建并运行
# Build the project
mvn clean package -DskipTests
# Run the server
java -jar target/kcdc-mcp-0.0.1-SNAPSHOT.jar测试服务器
# Use the MCP Inspector to test your server
npx @modelcontextprotocol/inspector使用Claude Desktop
配置
将此服务器添加到您的Claude Desktop配置文件中:
位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"kcdc-conference": {
"command": "java",
"args": [
"-jar",
"/Users/vega/Downloads/kcdc-mcp/target/kcdc-mcp-0.0.1-SNAPSHOT.jar"
]
}
}
}备注:更新路径以匹配您的实际项目位置。
查询示例
配置后,您可以向Claude提出以下问题:
- “今年KCDC将举行多少次会议?”
- “你能为Java开发人员推荐会话吗?”
- “对人工智能和MCP感兴趣的人可以参加哪些课程?”
- “Dan Vega的背景和专业知识是什么?”
Claude将自动使用MCP服务器的工具和资源来提供准确、最新的答案。
项目结构
src/main/java/dev/danvega/kcdc/
├── Application.java # Main Spring Boot application with MCP configuration
├── Conference.java # Conference data model
├── Session.java # Session data model
├── SessionTools.java # MCP tools for session queries
├── ConferencePrompts.java # MCP prompt templates
└── SpeakersResource.java # MCP resource for speaker information
src/main/resources/
└── data/
└── sessions.json # Conference session data关键组件
- 会话工具:为会话数据检索提供可调用函数
- 会议比较:常见会议相关查询模板
- 扬声器资源:包含说话者信息的静态资源
- sessions.json:包含工具查询的所有KCDC 2025会话数据
公共MCP服务器(HTTP+SSE)
默认情况下,此MCP服务器以STDIO模式运行,以便与Claude Desktop直接集成。但是,您也可以使用服务器发送事件(SSE)将其作为公共HTTP服务器运行,以实现更广泛的可访问性。
配置
该项目包括两个配置文件:
默认值(STDIO): application.properties
- 使用标准输入/输出进行通信
- 非常适合与Claude Desktop集成
- 无网络暴露
公共(HTTP+SSE): application-sse.yaml
- 在端口8080上作为web服务器运行
- 使用服务器发送的事件进行实时通信
- 远程客户端可以通过HTTP访问
作为公共服务器运行
# Build the project
mvn clean package -DskipTests
# Run with SSE profile
java -jar target/kcdc-mcp-0.0.1-SNAPSHOT.jar --spring.profiles.active=sse测试公共服务器
运行后,您可以测试MCP服务器端点:
# Check server status
curl http://localhost:8080/mcp/status
# List available tools
curl http://localhost:8080/mcp/tools
# Test a tool call
curl -X POST http://localhost:8080/mcp/tools/kcdc-sessions-by-date \
-H "Content-Type: application/json"这允许MCP服务器公开部署,并由任何兼容MCP的客户端通过HTTP访问。
议程
- 幻灯片
- 演示从这里开始
- 浏览器选项卡: - https://claude.ai/new - https://start.spring.io/ - https://docs.spring.io/spring-ai/reference/index.html - https://modelcontextprotocol.io/docs/getting-started/intro
- 问克劳德(网络或桌面)今年KCDC有多少次会议
- 模型没有根据这些数据进行训练 - 它现在将调用工具来尝试收集回答该问题所需的数据
- 创建MCP服务器
- start.spring.io - Web、MCP服务器 - application.properties(STDIO与SSE-代码相同,配置不同) - 显示会话数据
- 模型
- 会议 - 会话
- 工具
- 会话工具 - 讨论其他工具,但不实施 - 添加工具回调 - 构建 mvn clean package -DskipTests - 测试 npx @modelcontextprotocol/inspector
- 提示
- 会议提示 - 构建与测试
- 资源
- 扬声器资源 - 构建与测试
- 克劳德桌面
- 配置 - 演示提示 - 今年KCDC将举办多少场会议? - 我是一名对AI和MCP感兴趣的Java开发人员。你能为我推荐今年在KCDC的任何课程吗? - 与丹·维加的那次会面听起来很有趣,你能给我一些关于他的背景信息吗? - 提示 - 资源
- HTTP+SSE
- 将其转换为公共MCP服务器
