
Kotlin Crypto Price Spring MCP Server Demo
Kotlin Spring AI MCP server demo. Getting Cryptocurrency pricing from Binance
What is Kotlin Crypto Price Spring MCP Server Demo?
This project is a demonstration of building a Model Context Protocol (MCP) server using Spring AI and Kotlin, which provides real-time cryptocurrency pricing information from the Binance API.
How to use Kotlin Crypto Price Spring MCP Server Demo?
To use this project, clone the repository, ensure you have JDK 21 or higher and Gradle installed, and run the application using the command ./gradlew bootRun
. The server will start on port 3001.
Key features of Kotlin Crypto Price Spring MCP Server Demo?
- Fetch real-time cryptocurrency prices from Binance API.
- Simple text transformation utility for converting text to uppercase.
- Comprehensive logging of tool requests and responses.
- Exposes tools via the Model Context Protocol (MCP).
Use cases of Kotlin Crypto Price Spring MCP Server Demo?
- AI models can retrieve real-time cryptocurrency prices for trading applications.
- Developers can integrate cryptocurrency pricing into their applications using the MCP server.
- Educational purposes for understanding how to implement an MCP server with Spring and Kotlin.
FAQ from Kotlin Crypto Price Spring MCP Server Demo?
- What technologies are used in this project?
The project uses Spring Boot, Kotlin, and the Model Context Protocol SDK.
- How can I run the server?
You can run the server by executing
./gradlew bootRun
in your terminal after cloning the repository.
- What is the default port for the server?
The server runs on port 3001 by default.
Kotlin Crypto Price Spring MCP Server Demo
A demonstration project showcasing the integration of Spring AI's Model Context Protocol (MCP) server with a cryptocurrency price API service. This project allows AI models to retrieve real-time cryptocurrency information through a standardized interface.
Overview
This project implements a Spring Boot application that serves as an MCP server, providing tools for AI models to:
- Search for cryptocurrencies by name or symbol
- Retrieve market data for specific cryptocurrencies
The application uses the CoinGecko API to fetch real-time cryptocurrency data.
Features
- Cryptocurrency Search: Search for cryptocurrencies, exchanges, categories, and NFTs
- Market Data Retrieval: Get detailed market data for specific cryptocurrencies
- MCP Integration: Exposes functionality as tools for AI models via Spring AI's MCP server
- Logging: Comprehensive logging of tool requests and responses
Technologies
- Kotlin 1.9.25
- Spring Boot 3.4.4
- Spring AI MCP Server
- Model Context Protocol SDK 0.8.1
- Java 21
Project Structure
src/main/kotlin/org/gaplo917/mcpservercoinprice/
├── CoinPriceService.kt # Service for cryptocurrency data retrieval
├── McpServerCoinPriceApplication.kt # Main application class
Getting Started
Prerequisites
- JDK 21 or higher
- Gradle
Running the Application
./gradlew bootRun
The MCP server will start on the default port (typically 8080).
API Tools
The application exposes the following tools for AI models:
1. Search Cryptocurrency
@Tool(description = "search cryptocurrency information by user input query.")
fun searchCryptocurrency(query: String): CryptoData
2. Get Market Data
@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
Data Models
CryptoData
: Contains lists of coins, exchanges, categories, and NFTsCryptoMarketData
: Contains market data including tickers for a specific cryptocurrencyCoin
: Represents a cryptocurrency with its ID, name, symbol, and market cap rankTicker
: Contains trading information for a cryptocurrency on a specific market
Integration with AI Models
This server can be used with AI models that support the Model Context Protocol (MCP), allowing them to retrieve cryptocurrency data in a standardized way. The Spring AI MCP Server handles the communication between the AI model and the cryptocurrency service.
License
This project is licensed under the terms included in the LICENSE file.