Skip to main content
Glama
uirapeixoto

Saudações MCP Server

by uirapeixoto
README.md
# 👋 Saudações MCP Server

Servidor MCP (Model Context Protocol) de saudações, construído com Node.js e o SDK oficial do MCP.

## 📁 Estrutura do Projeto

```
saudacoes-mcp-server/
├── src/
│   ├── index.js              # Entry point — inicializa e conecta o servidor
│   ├── tools/
│   │   ├── index.js          # Registro de todas as Tools
│   │   ├── saudacao.js       # Tool: saudacao_personalizada
│   │   └── tabnews.js        # Tool: buscar_artigos_tabnews
│   ├── resources/
│   │   └── index.js          # Registro de todos os Resources
│   └── prompts/
│       └── index.js          # Registro de todos os Prompts
├── .gitignore
├── package.json
└── README.md
```

## 🚀 Como rodar localmente

```bash
# Instalar dependências
npm install

# Iniciar o servidor
npm start
```

> O servidor usa transporte `stdio` — ele não expõe uma porta HTTP. É conectado diretamente pelos clientes MCP.

---

## 🔌 Como instalar em clientes MCP

> **Pré-requisito:** Antes de configurar qualquer cliente, clone o projeto e instale as dependências:
> ```bash
> git clone <url-do-repo>
> cd saudacoes-mcp-server
> npm install
> ```
> Anote o **caminho absoluto** da pasta, pois será usado nas configurações abaixo.

---

### 🟦 VS Code (GitHub Copilot Agent Mode)

O VS Code suporta MCP a partir da versão **1.99+** com o GitHub Copilot no modo agente.

**Opção A — Configuração por workspace** (recomendado, versionável):

Crie o arquivo `.vscode/mcp.json` na raiz do seu projeto:

```json
{
  "servers": {
    "saudacoes-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["C:/caminho/absoluto/saudacoes-mcp-server/src/index.js"]
    }
  }
}
```

**Opção B — Configuração global** (disponível em todos os workspaces):

Abra a paleta de comandos (`Ctrl+Shift+P`) e execute:
```
MCP: Open User Configuration
```
Adicione a mesma estrutura acima no arquivo que abrir.

> 💡 Para usar, abra o GitHub Copilot Chat, selecione o modo **Agent** e as tools do servidor aparecerão automaticamente.

---

### 🟫 Cursor

O Cursor suporta MCP nativamente. A configuração pode ser feita por projeto ou globalmente.

**Opção A — Por projeto** (arquivo `.cursor/mcp.json` na raiz do projeto):

```json
{
  "mcpServers": {
    "saudacoes-mcp": {
      "command": "node",
      "args": ["C:/caminho/absoluto/saudacoes-mcp-server/src/index.js"]
    }
  }
}
```

**Opção B — Global** (disponível em todos os projetos):

Crie/edite o arquivo `%USERPROFILE%\.cursor\mcp.json` (Windows) ou `~/.cursor/mcp.json` (Mac/Linux):

```json
{
  "mcpServers": {
    "saudacoes-mcp": {
      "command": "node",
      "args": ["C:/caminho/absoluto/saudacoes-mcp-server/src/index.js"]
    }
  }
}
```

**Pela interface:**
1. Abra `Cursor Settings` → `Tools & MCP`
2. Clique em **Add new MCP server**
3. Preencha: nome `saudacoes-mcp`, tipo `stdio`, comando `node`, argumento `C:/caminho/.../src/index.js`

> ✅ Uma bolinha verde ao lado do servidor indica conexão bem-sucedida.

---

### 🟧 Claude (Desktop e Claude Code)

#### Claude Desktop

Edite o arquivo de configuração:

- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "saudacoes-mcp": {
      "command": "node",
      "args": ["C:/caminho/absoluto/saudacoes-mcp-server/src/index.js"]
    }
  }
}
```

> Você pode acessar o arquivo via: **Claude** → **Settings** → **Developer** → **Edit Config**

Após salvar, **reinicie o Claude Desktop**. As tools aparecerão com um ícone de 🔨 no chat.

#### Claude Code (CLI)

```bash
claude mcp add saudacoes-mcp node /caminho/absoluto/saudacoes-mcp-server/src/index.js
```

Para verificar se foi adicionado:
```bash
claude mcp list
```

---

## 🧩 Tools disponíveis

| Tool | Descrição |
|---|---|
| `saudacao_personalizada` | Gera uma saudação com nome, período do dia e data/hora atual |
| `buscar_artigos_tabnews` | Busca os artigos mais recentes do [TabNews](https://tabnews.com.br) |

## 🧠 Conceitos MCP

| Conceito | Descrição |
|---|---|
| **Tool** | Função que o LLM pode invocar (ex: buscar dados, executar ações) |
| **Resource** | Conteúdo estático ou dinâmico exposto ao LLM (ex: arquivos, dados) |
| **Prompt** | Templates de prompt reutilizáveis que o LLM pode acessar |

## 📦 Dependências

- [`@modelcontextprotocol/sdk`](https://github.com/modelcontextprotocol/typescript-sdk)