Skip to main content
Glama
VhMuzini

mcp-server-example

by VhMuzini
README.md
# mcp-server-example

Exemplos didaticos de um **MCP server** (Model Context Protocol), em duas linguagens:

- **TypeScript / Node.js** — na raiz deste repositorio
- **Java** — na pasta [`java-example/`](./java-example)

Este projeto existe para mostrar a estrutura minima de um servidor MCP: como declarar ferramentas ("tools"), como responde-las e como conectar tudo via stdio.

## O que e MCP?

MCP (Model Context Protocol) e um protocolo aberto, criado pela Anthropic, que permite que assistentes de IA se conectem a fontes de dados e ferramentas externas de forma padronizada. Em vez de cada integracao ter seu proprio formato, um MCP server expoe um conjunto de ferramentas que qualquer cliente compativel (como o Claude Desktop) consegue descobrir e usar.

## Versao TypeScript (raiz do repositorio)

### Ferramentas disponiveis

| Ferramenta | Descricao |
|---|---|
| `list_notes` | Lista todas as notas cadastradas |
| `get_note` | Busca uma nota especifica pelo ID |
| `create_note` | Cria uma nova nota |

Os dados sao mantidos em memoria (um array), so para fins de demonstracao. Em um caso real, aqui entraria uma chamada a uma API externa (por exemplo, a API da Vercel, do GitHub, um banco de dados, etc).

### Como rodar

```bash
npm install
npm run build
npm start
```

O servidor roda via **stdio** (entrada/saida padrao), que e o transporte mais comum para MCP servers usados localmente.

### Como conectar no Claude Desktop

Adicione a configuracao abaixo no arquivo `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-server-example": {
      "command": "node",
      "args": ["/caminho/absoluto/para/build/index.js"]
    }
  }
}
```

Reinicie o Claude Desktop e as ferramentas `list_notes`, `get_note` e `create_note` estarao disponiveis na conversa.

### Estrutura do projeto (TypeScript)

```
src/
  index.ts       # Implementacao do servidor MCP
package.json
tsconfig.json
```

## Versao Java

Veja o [README da pasta java-example](./java-example/README.md) para detalhes (SDK oficial Java do MCP, versao 2.0.1, Java 21).

## Proximos passos (ideias de evolucao)

- Trocar o array/mapa em memoria por chamadas reais a uma API (ex: Vercel REST API)
- Adicionar autenticacao via variavel de ambiente (ex: `VERCEL_TOKEN`)
- Adicionar tratamento de erros mais robusto
- Escrever testes para cada ferramenta

## Licenca

MIT