
2025 bootiful aws ai
Hi, Spring and AWS fans! in this installment industry legend James Ward and his trusty sidekick Josh look at the amazing opportunities marrying Spring AI and AWS Bedrock!
Repository Info
About This Server
Hi, Spring and AWS fans! in this installment industry legend James Ward and his trusty sidekick Josh look at the amazing opportunities marrying Spring AI and AWS Bedrock!
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
Sample: Spring AI with Bedrock and MCP
A Spring Boot application that provides an AI-powered dog adoption service using:
- AWS Bedrock for AI/ML capabilities
- Spring AI for conversation management
- PostgreSQL with pgvector for vector storage
- Two services:
- Adoptions service: Handles dog adoption inquiries
- Scheduling service: MCP Server that manages adoption appointments
Architecture
sequenceDiagram
actor User
participant Controller as ConversationalController
participant Memory as ChatMemory
participant RAG as QuestionAnswerAdvisor
participant Vector as VectorStore
participant Chat as ChatClient
participant MCP as MCPSyncClient
participant AI as Bedrock AI
User->>Controller: POST /{id}/inquire
alt New conversation
Controller->>Memory: computeIfAbsent(id)
Memory-->>Controller: Create new PromptChatMemoryAdvisor
end
par RAG Process
Controller->>RAG: Process question
RAG->>Vector: Search relevant context
Vector-->>RAG: Return matching embeddings
RAG-->>Controller: Return augmented prompt
and Memory Management
Controller->>Memory: Get conversation history
Memory-->>Controller: Return chat context
end
Controller->>Chat: prompt().user(question)
Chat->>MCP: Synchronous tool callback
MCP-->>Chat: Return tool results
Chat->>AI: Send augmented prompt + context
AI-->>Chat: Generate response
Chat-->>Controller: Return content
Controller->>Memory: Store conversation
Controller-->>User: Return response
Note over RAG,Vector: Retrieval Augmented Generation
Note over Memory: Maintains conversation state
Note over MCP: Handles scheduled operations
Setup
To run locally you will need:
- JDK 23 or higher
- Docker
- Setup Bedrock in the AWS Console, request access to Nova Lite and Cohere Embed Multilingual
- Setup auth for local development
Build the Scheduling MCP Server as a Docker container:
cd scheduling && ./mvnw spring-boot:build-image && cd ..
Alternatively, for faster MCP server startup, create a GraalVM Native Image container:
cd scheduling && ./mvnw -Pnative spring-boot:build-image && cd ..
Running
This sample includes tests and a "test" main application which will start the dependency services (postgres with pgvector and the scheduling MCP server) in Docker with Testcontainers.
First make sure you are in the adoptions directory:
cd adoptions
Run the tests:
./mvnw test
Run the "adoptions" server:
./mvnw spring-boot:test-run
With the server started you can now make requests to the server.
In IntelliJ, open the resources/client.http file and run the two requests.
Or via curl:
curl -X POST --location "http://localhost:8080/2/inquire" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'question=Do+you+have+any+neurotic+dogs%3F'
Quick Start
Clone the repository
git clone https://github.com/joshlong-attic/2025-bootiful-aws-aiInstall dependencies
cd 2025-bootiful-aws-ai
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.