Como Criar um Servidor MCP com o SDK Java

Ashley Goolam

Ashley Goolam

4 agosto 2025

Como Criar um Servidor MCP com o SDK Java

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

Olá, entusiastas de Java! Gostaria de turbinar seus projetos de IA com um Servidor MCP Java personalizado? O Protocolo de Contexto de Modelo (MCP) permite que modelos de IA como Claude ou Cursor acessem seus dados com facilidade, e com o SDK Java, você pode construir um servidor leve para que isso aconteça. Neste tutorial, criaremos um Servidor MCP Java para compartilhar dados de apresentação com assistentes de IA. Manteremos a abordagem divertida, conversacional e amigável para iniciantes, guiando você pela configuração, testes e extensão do seu servidor. Vamos mergulhar!

💡
Quer uma ótima ferramenta de Teste de API que gera documentação de API bonita?

Quer uma plataforma integrada e completa para sua Equipe de Desenvolvedores trabalhar em conjunto com máxima produtividade?

Apidog atende a todas as suas demandas e substitui o Postman por um preço muito mais acessível!
button

O Que É um Servidor MCP Java?

Um Servidor MCP Java é uma aplicação Java elegante que usa o Protocolo de Contexto de Modelo (MCP) para expor dados a modelos de IA. É como dar à sua IA um passe VIP para as informações do seu aplicativo — o nosso compartilhará dados de jogos, mas você pode personalizá-lo para qualquer coisa. O servidor usa o SDK Java do MCP para criar ferramentas que assistentes de IA podem chamar, como buscar uma lista de jogos ou pesquisar um por título. É perfeito para integrar seus dados com clientes de IA, e é super fácil de configurar com Spring Boot e Maven.

client server mcp connection

Guia Passo a Passo para Criar um Servidor MCP Java

Pré-requisitos

Antes de começarmos, certifique-se de ter:

Passo 1: Criar ou Clonar o Projeto

Você pode clonar um repositório existente ou criar um projeto do zero.

Opção 1: Clonar o Repositório (Recomendado)

1. Em um novo terminal, execute:

git clone https://github.com/danvega/javaone-mcp.git
cd javaone-mcp

2. Construir o Projeto:

mvn clean package
clone github repo

Opção 2: Criar do Zero

1. Abra o IntelliJ IDEA:

create a new project

2. Adicionar Dependências:

<dependencies>
  <!-- MCP SDK -->
  <dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp</artifactId>
    <version>0.9.0</version>
  </dependency>
  <!-- Logging -->
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.16</version>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.16</version>
  </dependency>
</dependencies>

Passo 2: Entendendo a Estrutura do Projeto

O Servidor MCP Java que acabamos de clonar inclui:

project structure

Passo 3: Definir o Modelo de Dados

Crie Presentation.java para representar dados de jogos:

public record Presentation(String title, String url) { }

Este registro contém detalhes do jogo como título (ex: “GTA 6”) e URL.

Passo 4: Implementar Ferramentas MCP

Em PresentationTools.java, defina ferramentas usando o SDK do MCP:

import io.modelcontextprotocol.sdk.McpSchema;
import java.util.ArrayList;
import java.util.List;

public class PresentationTools {
    private final List<Presentation> presentations = new ArrayList<>();

    public PresentationTools() {
        presentations.add(new Presentation("GTA 6", "https://example.com/gta6"));
        presentations.add(new Presentation("FC 26", "https://example.com/fc26"));
        presentations.add(new Presentation("Call of Duty: Black Ops 7", "https://example.com/codbo7"));
    }

    @McpSchema.Tool(name = "get_presentations", description = "Returns a list of all available games")
    public List<Presentation> getPresentations() {
        return presentations;
    }

    @McpSchema.Tool(name = "get_game", description = "Returns a specific game by title")
    public Presentation getGame(String title) {
        return presentations.stream()
            .filter(p -> p.title().equalsIgnoreCase(title))
            .findFirst()
            .orElse(null);
    }
}

Essas ferramentas permitem que modelos de IA busquem todos os jogos ou um jogo específico por título.

Passo 5: Configurar e Iniciar o Servidor MCP

Em Application.java, configure o Servidor MCP Java:

import io.modelcontextprotocol.sdk.McpServer;
import io.modelcontextprotocol.sdk.McpSchema;
import io.modelcontextprotocol.sdk.McpSyncServer;

public class Application {
    public static void main(String[] args) {
        PresentationTools tools = new PresentationTools();
        var syncToolSpecification = new McpServerFeatures.SyncToolSpecification(
            new McpSchema.Tool("get_presentations", "Returns a list of all available games", null),
            (exchange, arguments) -> tools.getPresentations()
        );

        McpSyncServer syncServer = McpServer.sync(new StdioTransportProvider())
            .serverInfo("javaone-mcp-server", "0.0.1")
            .capabilities(McpSchema.ServerCapabilities.builder()
                .tools(true)
                .logging()
                .build())
            .tools(syncToolSpecification)
            .build();

        syncServer.start();
    }
}

Isso configura o servidor para usar o transporte STDIO e registra a ferramenta get_presentations.

Passo 6: Executar o Servidor MCP Java

1. Construir o Projeto:

mvn clean package
run the server

2. Iniciar o Servidor:

java -jar target/javaone-mcp-0.0.2.jar

Passo 7: Testar com o MCP Inspector

Use o MCP Inspector para depurar seu Servidor MCP Java:

Instalar Node.js: Baixe em nodejs.org se necessário.

Obter o Caminho do JAR:

FULL_PATH=$(pwd)/target/javaone-mcp-0.0.2.jar
echo $FULL_PATH
$FULL_PATH="$(Get-Location)\target\javaone-mcp-0.0.2.jar"
echo $FULL_PATH

Executar MCP Inspector:

npx @modelcontextprotocol/inspector java -jar $FULL_PATH

Passo 8: Integrar com Claude Desktop ou Cursor

Conecte seu Servidor MCP Java a um cliente de IA:

Obter o Caminho do JAR: Use o mesmo comando acima.

a. Configurar Claude Desktop:

{
  "mcpServers": {
    "javaone-mcp": {
      "command": "java",
      "args": ["-jar", "FULL_PATH"]
    }
  }
}

b. Configurar Cursor:

Reiniciar o Cliente: Feche e reabra o Claude ou Cursor.

Passo 9: Testar o Servidor MCP Java

Teste com Claude Desktop ou Cursor:

Iniciar o Servidor:

java -jar target/javaone-mcp-0.0.2.jar

Emitir um Comando:

Usando o servidor MCP, obtenha todos os jogos disponíveis.
Os jogos disponíveis são GTA 6, FC 26 e Call of Duty: Black Ops 7.
available games on my mcp server

Passo 10: Estender o Servidor MCP Java

Deixe seu servidor ainda mais legal:

1. Adicionar Mais Apresentações:

presentations.add(new Presentation("Spring Boot 3.5 Deep Dive", "https://example.com/spring-boot", 2025));

2. Criar uma Ferramenta de Busca:

@McpSchema.Tool(name = "search_presentations", description = "Search presentations by title")
public List<Presentation> searchPresentations(String query) {
    return presentations.stream()
        .filter(p -> p.title().toLowerCase().contains(query.toLowerCase()))
        .collect(Collectors.toList());
}
var searchToolSpec = new McpServerFeatures.SyncToolSpecification(
    new McpSchema.Tool("search_presentations", "Search presentations by title", null),
    (exchange, arguments) -> {
        String query = arguments.get("query").asText();
        return tools.searchPresentations(query);
    }
);
McpSyncServer syncServer = McpServer.sync(new StdioTransportProvider())
    .serverInfo("javaone-mcp-server", "0.0.1")
    .capabilities(McpSchema.ServerCapabilities.builder().tools(true).logging().build())
    .tools(syncToolSpecification, searchToolSpec)
    .build();

Personalizei meu servidor MCP para trabalhar com dados de jogos. E aqui estão meus resultados:

new tool added to java mcp server

Experimentar uma Busca:

Buscar um jogo com o título "FC".
Você tem um jogo intitulado FC 26.
new tool results

3. Recursos Avançados:

Dicas de Solução de Problemas

Por Que Usar o Servidor MCP Java?

O Servidor MCP Java é uma maneira fantástica de conectar seu aplicativo Java a modelos de IA, permitindo que eles acessem seus dados em tempo real. Nosso servidor com tema de jogos mostrou como é fácil compartilhar dados como “GTA 6” ou “FC 26” com Claude ou Cursor. O SDK Java do MCP simplifica a definição de ferramentas, e o transporte STDIO mantém as coisas leves. Seja você construindo para jogos, cursos ou qualquer outra coisa, este servidor é sua porta de entrada para a integração de IA.

Conclusão

Agora você é um profissional em Servidor MCP Java! Você construiu um servidor do zero, testou-o com dados de jogos e aprendeu como estendê-lo com novas ferramentas. O SDK Java do MCP facilita a conexão do seu aplicativo com assistentes de IA, e nosso teste mostrou que ele funciona. Tente adicionar mais dados ou ferramentas para tornar seu servidor ainda mais poderoso.

💡
Quer uma ótima ferramenta de Teste de API que gera documentação de API bonita?

Quer uma plataforma integrada e completa para sua Equipe de Desenvolvedores trabalhar em conjunto com máxima produtividade?

Apidog atende a todas as suas demandas e substitui o Postman por um preço muito mais acessível!
button

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs

Como Criar um Servidor MCP com o SDK Java