Skip to main content
Glama
YanViniciusSilva

MCP Server TypeScript

README.md
# 🚀 Servidor MCP em TypeScript

Um servidor completo do **Model Context Protocol (MCP)** implementado em TypeScript, fornecendo recursos, ferramentas e prompts para integração com LLMs.

## 📋 Sobre o Projeto

Este projeto demonstra como criar um servidor MCP funcional que pode ser integrado com clientes como Claude Desktop, fornecendo:

- **Recursos**: Documentação, configurações e guias
- **Ferramentas**: Calculadora, consulta de clima e timestamp
- **Prompts**: Templates para análise de código, documentação e resolução de problemas

## 🛠️ Instalação

```bash
# Clone o repositório
git clone https://github.com/seu-usuario/mcp-server.git
cd mcp-server

# Instale as dependências
npm install

# Compile o projeto
npm run build
```

## ⚙️ Configuração

1. **Opcional**: Copie `env.example` para `.env` e configure as variáveis:
   ```bash
   cp env.example .env
   ```

2. **Variáveis disponíveis**:
   - `SERVER_NAME`: Nome do servidor (padrão: "mcp-server-exemplo")
   - `SERVER_VERSION`: Versão do servidor (padrão: "1.0.0")

## 🚀 Uso

### Comandos Disponíveis

```bash
# Desenvolvimento (compila + executa)
npm run dev

# Compilar apenas
npm run build

# Executar servidor
npm start

# Ver demonstração das funcionalidades
npm run demo
```

### Testando com MCP Inspector

```bash
# Instalar e executar MCP Inspector
npx @modelcontextprotocol/inspector node build/server.js
```

Isso abrirá uma interface web onde você pode testar todas as funcionalidades do servidor.

## 📁 Estrutura do Projeto

```
mcp-server/
├── src/
│   ├── server.ts              # Servidor principal
│   ├── types/
│   │   └── index.ts           # Definições de tipos
│   ├── handlers/
│   │   ├── resources.ts       # Manipulador de recursos
│   │   ├── tools.ts          # Manipulador de ferramentas
│   │   └── prompts.ts        # Manipulador de prompts
│   └── example-usage.ts       # Exemplos de uso
├── tests/                     # Arquivos de teste
├── build/                     # JavaScript compilado
├── package.json              # Configuração do projeto
├── tsconfig.json             # Configuração TypeScript
└── README.md                 # Este arquivo
```

## 🎯 Funcionalidades

### 📋 Recursos (Resources)
- **mcp://exemplo/doc1**: Documentação da API
- **mcp://exemplo/config1**: Configurações do servidor
- **mcp://exemplo/help1**: Guia de ajuda

### 🔧 Ferramentas (Tools)
- **calculator**: Operações matemáticas básicas
- **weather**: Informações meteorológicas simuladas
- **timestamp**: Data e hora atual

### 💬 Prompts
- **analisar-codigo**: Análise e revisão de código
- **gerar-documentacao**: Geração de documentação
- **resolver-problema**: Ajuda com problemas de programação

## 🧪 Testes

Execute os testes disponíveis:

```bash
# Teste direto do servidor
node tests/test-direct.js

# Demonstração das funcionalidades
node demo.js
```

## 🔧 Desenvolvimento

### Adicionando Novas Funcionalidades

1. **Novo Recurso**: Edite `src/handlers/resources.ts`
2. **Nova Ferramenta**: Edite `src/handlers/tools.ts`  
3. **Novo Prompt**: Edite `src/handlers/prompts.ts`
4. **Novos Tipos**: Defina em `src/types/index.ts`

### Compilação

```bash
npm run build
```

O código TypeScript será compilado para `build/`.

## 📚 Documentação

- [Model Context Protocol](https://modelcontextprotocol.io/docs) - Documentação oficial
- [MCP SDK](https://modelcontextprotocol.io/docs/sdk) - SDK oficial
- [USAGE.md](USAGE.md) - Guia detalhado de uso

## 🤝 Contribuição

1. Faça um fork do projeto
2. Crie uma branch para sua feature (`git checkout -b feature/nova-funcionalidade`)
3. Commit suas mudanças (`git commit -am 'Adiciona nova funcionalidade'`)
4. Push para a branch (`git push origin feature/nova-funcionalidade`)
5. Abra um Pull Request

## 📄 Licença

Este projeto está sob a licença ISC. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.

## ✨ Exemplo de Integração

Para usar com Claude Desktop, adicione ao seu arquivo de configuração:

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