AI Spring MCP Server
Projeto de estudo que implementa um MCP Server com Spring AI, permitindo criar ferramentas personalizadas que interagem com LLMs por meio do protocolo MCP.
Ask AI about AI Spring MCP Server
Powered by Claude · Grounded in docs
I know everything about AI Spring MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Spring 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 🚀
