加密货币价格查询服务

一个基于Spring AI的Model Context Protocol (MCP)服务器,提供加密货币价格查询和市场数据检索功能。

  • by gaplo917
  • Kotlin
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 gaplo917/kotlin-cyrpto-price-spring-mcp-server-demo

使用说明

Kotlin加密货币价格春季MCP服务器演示

一个演示项目展示了Spring AI的模型上下文协议(MCP)服务器与加密货币价格API服务的集成。该项目允许人工智能模型通过标准化的界面检索实时加密货币信息。

概述

该项目实现了一个充当MCP服务器的Spring Boot应用程序,为AI模型提供工具,以:

  1. 按名称或符号搜索加密货币
  2. 检索特定加密货币的市场数据

该应用程序使用CoinGecko API获取实时加密货币数据。

特性

  • 加密货币搜索:搜索加密货币、交易所、类别和NFT
  • 市场数据检索:获取特定加密货币的详细市场数据
  • MCP集成:通过Spring AI的MCP服务器将功能作为AI模型的工具公开
  • 日志记录:全面记录工具请求和响应

技术

  • Kotlin 1.9.25
  • 弹簧靴3.4.4
  • Spring AI MCP服务器
  • 模型上下文协议SDK 0.8.1
  • Java 21

项目结构

src/main/kotlin/org/gaplo917/mcpservercoinprice/
├── CoinPriceService.kt         # Service for cryptocurrency data retrieval
├── McpServerCoinPriceApplication.kt  # Main application class

入门指南

先决条件

  • JDK 21或更高版本
  • Gradle

运行应用程序

./gradlew bootRun

MCP服务器将在默认端口(通常为8080)上启动。

API工具

该应用程序为AI模型提供了以下工具:

1.搜索加密货币

@Tool(description = "search cryptocurrency information by user input query.")
fun searchCryptocurrency(query: String): CryptoData

2.获取市场数据

@Tool(description = "get cryptocurrency market data by id. The id must be used by the return of the searchCryptocurrency tools.")
fun getMarketDataByCryptocurrencyId(id: String): CryptoMarketData

数据模型

  • CryptoData:包含硬币、交易所、类别和NFT的列表
  • CryptoMarketData:包含市场数据,包括特定加密货币的股票代码
  • Coin:表示加密货币的ID、名称、符号和市值排名
  • Ticker:包含特定市场上加密货币的交易信息

与AI模型集成

该服务器可以与支持模型上下文协议(MCP)的AI模型一起使用,允许它们以标准化的方式检索加密货币数据。Spring AI MCP服务器处理AI模型和加密货币服务之间的通信。

许可证

此项目根据许可文件中包含的条款获得许可。

参考文献