返回市场
KCDC-MCP服务器

KCDC-MCP服务器

作者:danvega5 星标更新:2025-08-15

项目介绍

Spring Into MCP

一个使用Spring AI构建的演示MCP(模型上下文协议)服务器,提供关于KCDC(堪萨斯城开发者大会)会议和演讲者的信息。

什么是MCP?

模型上下文协议(MCP)是一种标准化的方式,用于连接AI模型与外部数据源和工具。可以将其视为一座桥梁,允许Claude(以及其他AI模型)访问实时信息并执行超出其训练数据的操作。

这个演示服务器展示了如何使用Spring AI构建一个MCP服务器,该服务器暴露了以下内容:

  • 工具:Claude可以调用以获取数据的功能
  • 提示:预建的提示模板
  • 资源:可检索的静态内容

功能

此MCP服务器提供了三大主要能力:

工具

  • kcdc-sessions-by-date:按会议日期分组获取会议数量
  • kcdc-sessions:检索所有KCDC 2025会议及其详情

提示

  • 针对会议的特定提示模板,用于会议推荐

资源

  • 演讲者信息和背景

快速开始

先决条件

  • Java 21+
  • Maven 3.6+

构建和运行

# 构建项目
mvn clean package -DskipTests

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

测试服务器

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

在Claude Desktop上的使用

配置

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

位置

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %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开发者的会议吗?”
  • “对于对AI和MCP感兴趣的人来说,有哪些可用的会议?”
  • “Dan Vega在本次会议中的背景和专长是什么?”

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        # 会议会话数据

关键组件

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

公共MCP服务器(HTTP + SSE)

默认情况下,此MCP服务器以STDIO模式运行,以便直接集成到Claude Desktop中。然而,您也可以将其作为公共HTTP服务器运行,使用服务端发送事件(SSE)以提高可访问性。

配置

项目包括两个配置文件:

默认(STDIO)application.properties

  • 使用标准输入/输出进行通信
  • 完美适用于Claude Desktop集成
  • 不暴露网络

公共(HTTP + SSE)application-sse.yaml

  • 在8080端口上运行Web服务器
  • 使用服务端发送事件进行实时通信
  • 通过HTTP远程客户端可访问

作为公共服务器运行

# 构建项目
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的客户端访问。

议程

  • 幻灯片
  • 演示从这里开始
  • 向Claude(网页或桌面版)询问今年KCDC有多少场会议
    • 该模型未接受过这些数据的训练
    • 它现在将调用工具尝试收集回答问题所需的数据
  • 创建MCP服务器
    • start.spring.io
    • Web,MCP服务器
    • application.properties(STDIO vs SSE - 代码相同,配置不同)
    • 展示会议数据
  • 模型
    • 会议
    • 会议
  • 工具
    • SessionTools
    • 讨论额外的工具但不实现
    • 添加工具回调
    • 构建 mvn clean package -DskipTests
    • 测试 npx @modelcontextprotocol/inspector
  • 提示
    • 会议提示
    • 构建及测试
  • 资源
    • SpeakerResource
    • 构建及测试
  • Claude Desktop
    • 配置
    • 演示提示
      • 今年KCDC会有多少场会议?
      • 我是一个对AI和MCP感兴趣的Java开发者。今年KCDC有哪些会议推荐给我?
      • Dan Vega的那个会议听起来很有趣,你能给我一些关于他的背景信息吗?
    • 提示
    • 资源
  • HTTP + SSE
    • 将其转换为公共MCP服务器