Este projeto demonstra como criar um Model Context Protocol (MCP) Server usando somente o Java SDK. O MCP é um protocolo que permite que ferramentas de IA conversem com sistemas externos de forma padronizada.
- Java 24 ou superior
- Maven 3.6+
- Git
git clone https://github.com/moises-paschoalick/java-sdk-mcp-server.git
cd java-sdk-mcp-servercd java-mcpmvn clean compilemvn exec:javaOu crie um JAR executável e execute:
mvn clean package
java -jar target/java-mcp-1.0-SNAPSHOT.jarjava-sdk-mcp-server/
├── java-mcp/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/example/
│ │ │ │ └── Main.java
│ │ │ └── resources/
│ │ └── test/
│ ├── pom.xml
│ └── .gitignore
├── README.md
├── test-examples.md
└── .gitignore
O servidor MCP implementa as seguintes ferramentas:
Calculadora simples que avalia expressões matemáticas básicas.
Parâmetros:
expression: Expressão matemática (ex: "2 + 3", "10 * 5")
Exemplo de uso:
{
"expression": "15 + 25"
}Saudação personalizada.
Parâmetros:
name: Nome da pessoa para saudar
Exemplo de uso:
{
"name": "João"
}Obtém informações sobre o servidor MCP.
Parâmetros: Nenhum
Para testar o servidor usando o MCP Inspector:
npm install -g @modelcontextprotocol/inspectorcd java-mcp
mvn clean package# Obtenha o caminho completo do JAR
FULL_PATH=$(pwd)/target/java-mcp-1.0-SNAPSHOT.jar
echo $FULL_PATH
# Execute o inspector
npx @modelcontextprotocol/inspector java -jar $FULL_PATH- Verifique a conexão do servidor no painel de conexão
- Navegue para a aba "Tools" para ver as ferramentas disponíveis
- Teste cada ferramenta clicando nelas e visualizando a resposta
- Monitore os logs no painel de Notificações
Para usar este MCP server com Claude Desktop:
cd java-mcp
FULL_PATH=$(pwd)/target/java-mcp-1.0-SNAPSHOT.jar
echo $FULL_PATH- Abra as preferências do Claude Desktop
- Navegue para a seção "MCP Servers"
- Adicione um novo servidor com a seguinte configuração:
{
"java-mcp-example": {
"command": "java",
"args": [
"-jar",
"$FULL_PATH"
]
}
}- Jackson: Para processamento JSON
- SLF4J: Para logging
O servidor é implementado usando uma abordagem simplificada que simula o comportamento do MCP usando STDIO e JSON:
// Configurar entrada e saída
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
// Enviar handshake inicial
sendHandshake(writer);
// Loop principal para processar mensagens
String line;
while ((line = reader.readLine()) != null) {
JsonNode request = mapper.readTree(line);
processRequest(request, writer);
}- Adicionar mais ferramentas: Implemente ferramentas para operações de arquivo, consultas de banco de dados, etc.
- Implementar recursos: Adicione suporte para recursos (Resources) do MCP
- Adicionar autenticação: Implemente mecanismos de segurança
- Melhorar logging: Adicione logging estruturado e métricas
- Testes automatizados: Implemente testes unitários e de integração
- CI/CD: Configure pipeline de build e deploy
- 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
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Se você encontrar algum problema ou tiver dúvidas, por favor abra uma issue no repositório.
Este projeto usa apenas o Java SDK para implementar um MCP Server. Para a implementação baseada em Spring, consulte o repositório spring-ai-mcp-server.