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
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues