一个使用Spring AI构建的演示MCP(模型上下文协议)服务器,提供关于KCDC(堪萨斯城开发者大会)会议和演讲者的信息。
模型上下文协议(MCP)是一种标准化的方式,用于连接AI模型与外部数据源和工具。可以将其视为一座桥梁,允许Claude(以及其他AI模型)访问实时信息并执行超出其训练数据的操作。
这个演示服务器展示了如何使用Spring AI构建一个MCP服务器,该服务器暴露了以下内容:
此MCP服务器提供了三大主要能力:
kcdc-sessions-by-date:按会议日期分组获取会议数量kcdc-sessions:检索所有KCDC 2025会议及其详情# 构建项目
mvn clean package -DskipTests
# 运行服务器
java -jar target/kcdc-mcp-0.0.1-SNAPSHOT.jar
# 使用MCP Inspector测试您的服务器
npx @modelcontextprotocol/inspector
将此服务器添加到您的Claude Desktop配置文件中:
位置:
~/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提问如下问题:
Claude会自动使用MCP服务器的工具和资源来提供准确且最新的答案。
src/main/java/dev/danvega/kcdc/
├── Application.java # 主Spring Boot应用程序,带有MCP配置
├── Conference.java # 会议数据模型
├── Session.java # 会议数据模型
├── SessionTools.java # 会议查询的MCP工具
├── ConferencePrompts.java # 会议相关的MCP提示模板
└── SpeakersResource.java # 包含演讲者信息的MCP资源
src/main/resources/
└── data/
└── sessions.json # 会议会话数据
默认情况下,此MCP服务器以STDIO模式运行,以便直接集成到Claude Desktop中。然而,您也可以将其作为公共HTTP服务器运行,使用服务端发送事件(SSE)以提高可访问性。
项目包括两个配置文件:
默认(STDIO):application.properties
公共(HTTP + SSE):application-sse.yaml
# 构建项目
mvn clean package -DskipTests
# 使用SSE配置文件运行
java -jar target/kcdc-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/kcdc-sessions-by-date \
-H "Content-Type: application/json"
这使得MCP服务器可以公开部署,并通过HTTP被任何兼容MCP的客户端访问。
mvn clean package -DskipTestsnpx @modelcontextprotocol/inspector