MCP Unified Server
by hermannhahn
README.md
# MCP Unified Server
Servidor unificado para protocolo MCP (Model Context Protocol) com painel administrativo web integrado para gerenciamento dinâmico de ferramentas e configurações.
---
## 🚀 Como Iniciar
Este projeto roda inteiramente containerizado utilizando o Docker. Para iniciar o servidor e o painel administrativo, certifique-se de que possui o **Docker** e o **Docker Compose** instalados na sua máquina.
### 1. Inicialização Padrão
Para subir o servidor de forma persistente, execute o script auxiliar na raiz do projeto:
```bash
./build.sh
```
Isso compilará a imagem Docker correspondente e iniciará os serviços em segundo plano.
### 2. Reiniciar o Ambiente do Zero (Opcional)
Se desejar reiniciar o ambiente de desenvolvimento limpando todas as credenciais do Google, logs e o banco de dados de memórias persistidas, execute:
```bash
./build.sh --clean
```
### 3. Gerenciador Windows (Go)
Para usuários do Windows, há um utilitário interativo CLI desenvolvido em Go dentro da pasta `win-manager/`. Ele permite controlar o servidor sem precisar do terminal Linux do WSL, além de gerenciar portas, IP exposto e verificar dependências:
* **Para rodar o gerenciador:**
```cmd
cd win-manager
go run main.go
```
* **Para compilar um executável `.exe`:**
```cmd
cd win-manager
go build -o gerenciador.exe main.go
```
* **Recursos do Gerenciador:**
* **Iniciar e Parar** o servidor MCP no Docker do Windows.
* **Exposição Dinâmica:** Configurar IP de Bind (ex: `127.0.0.1` ou `0.0.0.0`) e a Porta do painel.
* **Instalação de Dependências:** Verifica se o Docker Desktop está instalado e rodando, e auxilia no download do instalador oficial do Docker para Windows se necessário.
---
## 🖥️ Painel Administrativo Web
Após iniciar o container, o painel de controle administrativo estará disponível no seu navegador em:
👉 **[http://localhost:8000](http://localhost:8000)**
Através da interface do painel web, você poderá realizar todas as seguintes operações de forma gráfica:
1. **Alterar o Endpoint do Servidor:** Modifique o endereço do webhook WebSocket de conexão a qualquer momento.
2. **Habilitar/Desabilitar Ferramentas:** Ative ou desative ferramentas de forma individual conforme a sua necessidade.
3. **Instruções Personalizadas:** Configure as instruções (docstrings) que o modelo de IA recebe para guiar o uso de cada ferramenta.
4. **Atualizações Automáticas (Auto-Update):** O painel detecta automaticamente se há novas versões de módulos específicos no repositório do GitHub e permite atualizá-los individualmente com apenas um clique.
---
## 📂 Configurando a Pasta Compartilhada (Filesystem)
Para garantir o isolamento e a segurança do seu computador, o servidor de arquivos do container possui acesso **apenas e estritamente** ao diretório `/shared_folder`.
### Como vincular uma pasta física da sua máquina:
1. Acesse o **Painel Administrativo** (`http://localhost:8000`).
2. Localize a ferramenta **Sistema de Arquivos** (filesystem) e clique em **Configurar**.
3. No campo **Caminho da Pasta no Windows/Host**, informe o caminho físico do seu computador (exemplo no Windows: `C:\Users\seu_usuario\documents\minha_pasta`).
4. Clique em **Salvar** no modal, vá até a aba de **Configurações Globais** (ou conta) e clique em **Salvar & Reiniciar**.
5. O painel converterá o caminho automaticamente e reiniciará o container montando a sua pasta física em `/shared_folder` de forma transparente.
---
## 📧 Integração Google Workspace (GSuite)
O painel administrativo possui suporte nativo ao fluxo de autenticação do Google OAuth2.
### Como Autenticar:
1. No painel, clique na aba **Configurações do Google Workspace**.
2. Digite o e-mail da sua conta Google e clique em **Gerar Link de Autenticação**.
3. Siga as instruções na tela do Google para autorizar o acesso e copie o código gerado.
4. Cole o código no campo indicado e confirme. A conta será ativada instantaneamente para leitura/busca de e-mails do Gmail, gerenciamento do Google Agenda (Calendar) e Google Drive.
---
## 🛠️ Comandos Básicos (Docker Compose Manual)
Se preferir gerenciar o container manualmente sem usar o `./build.sh`:
* **Subir serviços:** `docker compose up -d`
* **Parar serviços:** `docker compose down`
* **Visualizar logs:** `docker compose logs -f`
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing