About spring-ai-mcp-server
A Spring AI study project showing how to build an MCP server with custom course-management tools. It is intended for developers learning MCP integration and uses STDIO transport without a web interface.
Key features
- 01Build an MCP server with Spring AI
- 02Expose tools for listing courses
- 03Fetch a course by title
- 04Communicate over STDIO
Use cases
- 01Learn to create MCP tools with Spring AI
- 02Prototype an MCP server for course data
MCP support
Implements an MCP server that exposes course-listing and course-lookup tools over STDIO for MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMESpring AI MCP Server - Projeto de Estudo
Este é um projeto de estudo excelente para aprender como criar um MCP (Model Context Protocol) Server usando Spring AI. O projeto foi desenvolvido seguindo o curso do Dan Vega e demonstra como integrar ferramentas customizadas com modelos de IA através do protocolo MCP.
🎯 Sobre o Projeto
Este projeto implementa um servidor MCP simples que expõe ferramentas para gerenciar cursos. É um exemplo prático de como:
- Criar um servidor MCP usando Spring AI
- Definir ferramentas (tools) customizadas
- Integrar com modelos de IA através do protocolo MCP
- Configurar um servidor sem interface web (STDIO transport)
🏗️ Arquitetura do Projeto
Estrutura de Arquivos
src/main/java/com/gotocode/courses/
├── CoursesApplication.java # Classe principal da aplicação
├── CourseService.java # Serviço com as ferramentas MCP
└── Course.java # Modelo de dados (Record)
Componentes Principais
- CoursesApplication: Classe principal que configura o servidor MCP
- CourseService: Serviço que expõe as ferramentas MCP para gerenciar cursos
- Course: Record que representa um curso com título e URL
🛠️ Tecnologias Utilizadas
- Java 24
- Spring Boot 3.4.5
- Spring AI 1.0.0-M8
- Maven
📋 Pré-requisitos
Antes de executar o projeto, certifique-se de ter instalado:
- Java 24 ou superior
- Maven 3.6+ ou superior
Verificando as Instalações
# Verificar versão do Java
java -version
# Verificar versão do Maven
mvn -version
🚀 Como Executar o Projeto
1. Clone o Repositório
git clone https://github.com/moises-paschoalick/spring-ai-mcp-server.git
cd spring-ai-mcp-server
2. Compile o Projeto
mvn clean compile
3. Execute o Servidor MCP
mvn spring-boot:run
4. Alternativa: Executar via JAR
# Compilar o JAR
mvn clean package
# Executar o JAR
java -jar target/courses-0.0.1-SNAPSHOT.jar
🔧 Configuração
O projeto está configurado para rodar como um servidor MCP através do arquivo application.properties:
spring.application.name=courses
spring.main.web-application-type=none
spring.ai.mcp.server.name=dan-vega-mcp
spring.ai.mcp.server.version=0.0.1
spring.main.banner-mode=off
logging.pattern.console=
Configurações Importantes:
spring.main.web-application-type=none: Desabilita o servidor HTTPspring.ai.mcp.server.name: Define o nome do servidor MCPspring.main.banner-mode=off: Desabilita o banner do Spring Bootlogging.pattern.console=: Remove logs do console para permitir STDIO transport
🛠️ Ferramentas MCP Disponíveis
O servidor expõe duas ferramentas principais:
1. dv_get_courses
- Descrição: Obtém a lista de todos os cursos disponíveis
- Retorno: Lista de cursos
2. dv_get_course
- Descrição: Obtém um curso específico pelo título
- Parâmetros:
title(String) - Título do curso - Retorno: Curso específico ou null se não encontrado
📝 Exemplo de Uso
Estrutura de Dados
public record Course(String title, String url) {
}
Dados de Exemplo
O serviço é inicializado com alguns cursos de exemplo:
courses.addAll(List.of(
new Course("Título do vídeo 01", "https://www.urlvideo01"),
new Course("Título do vídeo 02", "https://www.urlvideo02")
));
🔍 Como Funciona
- Inicialização: O servidor MCP é iniciado sem interface web
- Registro de Ferramentas: O
CourseServiceé registrado como ferramentas MCP - Comunicação STDIO: O servidor se comunica via entrada/saída padrão
- Integração com IA: Modelos de IA podem usar as ferramentas através do protocolo MCP
🎓 Aprendizados do Projeto
Este projeto demonstra:
- Como criar ferramentas customizadas com Spring AI
- Configuração de servidor MCP sem interface web
- Uso de anotações
@Toolpara expor métodos como ferramentas - Integração com protocolo MCP para comunicação com modelos de IA
- Estrutura básica de um servidor MCP funcional
🤝 Contribuindo
Este é um projeto de estudo, mas contribuições são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📚 Recursos Adicionais
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido como projeto de estudo baseado no curso do Dan Vega 🚀
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.