Content
# 🏛️ MCPalace: O Palácio da Memória para Inteligência Artificial
[](LICENSE)
[](#-executando-com-docker)
[](https://www.rust-lang.org)
O **MCPalace** é um motor MCP (Model Context Protocol) de código aberto, autogerenciável e auto-regenerativo projetado para funcionar como o **Palácio da Memória** definitivo para seus agentes de Inteligência Artificial.
Ele nasceu da necessidade relatada por diversos desenvolvedores da comunidade sobre a limitação de contexto, falta de memória persistente contextualizada e perda de tokens com prompts prolixos ou logs/comentários irrelevantes.
---
## ✨ Funcionalidades Principais
* **🧠 Bancos de Memória Temáticos (SQL + Graph DB)**: Armazena memórias associativas tanto de forma relacional (MySQL) quanto em formato de grafo de conhecimento (Memgraph), permitindo buscas semânticas, conexões ricas de conceitos e compartilhamento inteligente entre agentes.
* **🔌 Orquestrador de Plugins Auto-Regenerativo (JSON/Lua)**: Permite o carregamento dinâmico de novas ferramentas (tools) escritas em Lua em tempo de execução. O sistema detecta e migra esquemas de banco de dados automaticamente para garantir estabilidade ("self-healing").
* **⚡ Ultra Compactador de Contexto (Compactor)**: Um pipeline modular em Rust que reduz drasticamente o consumo de tokens de contexto:
* *Substituição por Abreviações*: Mapeia termos técnicos a siglas comuns através de um dicionário JSON massivo.
* *Estilo Telegráfico*: Transforma frases prolixas em comandos imperativos diretos.
* *Filtragem de Stopwords*: Remove artigos e preposições de baixa entropia.
* *Limpeza de Código e Logs*: Pruna comentários de arquivos (JS, Rust, Python, Lua) e trunca automaticamente stacktraces longos de erros.
* **🛡️ Sandbox Poliglota**: Executa códigos fornecidos pelo modelo em um ambiente isolado (Python, Lua e JavaScript) com segurança.
---
## 🛠️ Arquitetura do Sistema
* **Engine**: Núcleo do servidor MCP construído em Rust utilizando Actix-web de altíssima performance.
* **Plugin Manager**: Ponte JSON/Lua para execução dinâmica de scripts isolados e seguros.
* **Compactor**: Esteira de estratégias em Rust (`CompressionStrategy`) que trata recursivamente payloads de texto e JSON.
---
## 🐳 Executando com Docker
O MCPalace já vem pré-configurado para rodar em containers Docker.
1. **Copie as variáveis de ambiente de exemplo:**
```bash
cp .env.example .env
```
2. **Edite o arquivo `.env`** e defina o seu `ADMIN_TOKEN` seguro:
```env
ADMIN_TOKEN=seu-token-seguro-aqui
```
3. **Inicie os containers:**
```bash
docker-compose up -d --build
```
4. O servidor estará respondendo na porta `8789` (API JSON-RPC 2.0).
---
## 💻 Configurando no VSCode / Cursor / Continue
Para usar o MCPalace como um servidor MCP no seu ambiente de desenvolvimento favorito (como VSCode, Cursor ou o plugin Continue):
### Configuração no Cursor ou VSCode (via Continue Config)
Adicione o MCPalace à sua lista de servidores MCP no arquivo de configuração do seu cliente (geralmente em `~/.continue/config.json` ou nas configurações do Cursor):
```json
{
"mcpServers": {
"mcpalace": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network",
"mcpalace_default",
"-e",
"ADMIN_TOKEN=seu-token-seguro-aqui",
"mcpalace-engine"
]
}
}
}
```
Ou, caso prefira conectar diretamente via protocolo HTTP/SSE à instância rodando localmente:
```json
{
"mcpServers": {
"mcpalace": {
"url": "http://localhost:8789/sse"
}
}
}
```
---
## 🤝 Como Colaborar
O MCPalace é um **software da comunidade** e foi desenvolvido para continuar assim para sempre. Suas contribuições são extremamente bem-vindas!
1. Faça um **Fork** do projeto.
2. Crie uma branch para a sua funcionalidade (`git checkout -b feature/nova-funcionalidade`).
3. Faça o commit de suas alterações (`git commit -m 'feat: adiciona nova funcionalidade'`).
4. Envie para o repositório original (`git push origin feature/nova-funcionalidade`).
5. Abra um **Pull Request**.
---
## 📄 Licença
Este projeto está licenciado sob a **MCPalace Non-Commercial License**. A cópia, distribuição e modificação do software são totalmente permitidas e incentivadas, **desde que sem fins lucrativos**. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.