About java-sdk-mcp-server
java-sdk-mcp-server is a Java SDK-only example of an MCP server, intended for developers learning or testing a basic server implementation. It demonstrates calculator, greeting, and server-information tools over STDIO and JSON.
Key features
- 01Java SDK server example
- 02Basic expression calculator
- 03Personalized greeting
- 04Server information tool
- 05STDIO and JSON message handling
Use cases
- 01Learning a basic Java MCP server
- 02Testing tools with MCP Inspector
- 03Trying server integration with Claude Desktop
MCP support
Implements an MCP server that exposes calculator, greeter, and get_info tools to MCP clients over STDIO.
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 READMEJava SDK MCP Server
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.
📋 Pré-requisitos
- Java 24 ou superior
- Maven 3.6+
- Git
🚀 Como Executar o Projeto
1. Clone o repositório
git clone https://github.com/moises-paschoalick/java-sdk-mcp-server.git
cd java-sdk-mcp-server
2. Navegue para o diretório do projeto MCP
cd java-mcp
3. Compile o projeto
mvn clean compile
4. Execute o projeto
mvn exec:java
Ou crie um JAR executável e execute:
mvn clean package
java -jar target/java-mcp-1.0-SNAPSHOT.jar
🏗️ Estrutura do Projeto
java-sdk-mcp-server/
├── java-mcp/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/example/
│ │ │ │ └── Main.java
│ │ │ └── resources/
│ │ └── test/
│ ├── pom.xml
│ └── .gitignore
├── README.md
├── test-examples.md
└── .gitignore
🔧 Funcionalidades Implementadas
O servidor MCP implementa as seguintes ferramentas:
1. calculator
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"
}
2. greeter
Saudação personalizada.
Parâmetros:
name: Nome da pessoa para saudar
Exemplo de uso:
{
"name": "João"
}
3. get_info
Obtém informações sobre o servidor MCP.
Parâmetros: Nenhum
🧪 Testando com MCP Inspector
Para testar o servidor usando o MCP Inspector:
1. Instale o MCP Inspector
npm install -g @modelcontextprotocol/inspector
2. Execute o servidor
cd java-mcp
mvn clean package
3. Execute o MCP Inspector
# 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
4. No Inspector:
- 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
🔌 Integrando com Claude Desktop
Para usar este MCP server com Claude Desktop:
1. Obtenha o caminho completo do JAR
cd java-mcp
FULL_PATH=$(pwd)/target/java-mcp-1.0-SNAPSHOT.jar
echo $FULL_PATH
2. Configure o Claude Desktop
- 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"
]
}
}
📚 Dependências Principais
- Jackson: Para processamento JSON
- SLF4J: Para logging
🔍 Exemplo de Implementação
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);
}
🎯 Próximos Passos
- 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
📖 Recursos Adicionais
🤝 Contribuindo
- 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
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
🆘 Suporte
Se você encontrar algum problema ou tiver dúvidas, por favor abra uma issue no repositório.
📝 Sobre
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.
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.