Documents created via MCP were not visible in Outline interface. Outline requires an entry in the revisions table to display documents. Now uses transaction to insert into both documents and revisions tables. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
206 lines
5.6 KiB
Markdown
206 lines
5.6 KiB
Markdown
# MCP Outline PostgreSQL - Continuacao de Testes
|
|
|
|
**Ultima Sessao:** 2026-01-31 (actualizado)
|
|
**Versao Actual:** 1.3.9
|
|
**Progresso:** ~95/164 tools testadas (58%) - **CÓDIGO VALIDADO**
|
|
|
|
---
|
|
|
|
## Estado Actual
|
|
|
|
### Validacao Completa (31 Jan - tarde/noite)
|
|
|
|
1. **Código Fonte Verificado** ✅
|
|
- Todos os 6 bugs corrigidos confirmados no código
|
|
- INSERT statements com colunas NOT NULL correctas
|
|
- Lógica de criação de IDs correcta
|
|
|
|
2. **Testes Unitários** ✅
|
|
- 209/209 testes passam
|
|
- Cobertura: security, validation, pagination, query-builder, tools-structure
|
|
|
|
3. **Servidor HTTP** ✅
|
|
- Inicia correctamente
|
|
- 164 tools registadas
|
|
- Todos os módulos carregados
|
|
|
|
4. **Builds** ✅
|
|
- TypeScript compila sem erros
|
|
- dist/ actualizado
|
|
|
|
### Bugs Corrigidos (CONFIRMADOS)
|
|
|
|
| Bug | Ficheiro | Linha | Fix Verificado |
|
|
|-----|----------|-------|----------------|
|
|
| 1 | `src/tools/auth.ts` | - | Removida `updatedAt` inexistente ✅ |
|
|
| 2 | `src/tools/subscriptions.ts` | - | LIMIT 25 adicionado ✅ |
|
|
| 3 | `src/tools/collections.ts` | - | `documentStructure` removido da list ✅ |
|
|
| 4 | `src/tools/documents.ts` | 239-251 | `id`, `urlId`, `teamId` + NOT NULLs ✅ |
|
|
| 5 | `src/tools/collections.ts` | 272-281 | `id`, `urlId`, `maintainerApprovalRequired` ✅ |
|
|
| 6 | `src/tools/shares.ts` | 276-292 | `id`, `urlId`, `allowIndexing`, `showLastUpdated` ✅ |
|
|
|
|
---
|
|
|
|
## Proximos Passos
|
|
|
|
### Pronto para Producao
|
|
|
|
O código está validado e pronto. Para testar via MCP em Claude Code:
|
|
|
|
1. **Reiniciar sessão Claude Code** (para recarregar MCPs)
|
|
2. **Verificar túnel:** `./start-tunnel.sh status`
|
|
3. **Carregar tool:** `ToolSearch: select:mcp__outline-postgresql__create_document`
|
|
4. **Testar operação de escrita**
|
|
|
|
### Round 4: Edge Cases (Quando MCP disponível)
|
|
|
|
```javascript
|
|
// UUIDs inválidos
|
|
get_document({ id: "invalid-uuid" })
|
|
get_document({ id: "" })
|
|
|
|
// IDs inexistentes
|
|
get_document({ id: "00000000-0000-0000-0000-000000000000" })
|
|
|
|
// Limites de paginação
|
|
list_documents({ limit: 0 })
|
|
list_documents({ limit: 1000 })
|
|
list_documents({ offset: -1 })
|
|
|
|
// Queries vazias
|
|
search_documents({ query: "" })
|
|
```
|
|
|
|
---
|
|
|
|
## Tools Testadas (~95)
|
|
|
|
| Categoria | Tools | Status |
|
|
|-----------|-------|--------|
|
|
| **Read Operations** | | |
|
|
| Documents | list, get, search | ✅ |
|
|
| Collections | list, get | ✅ (fixed) |
|
|
| Users | list, get | ✅ |
|
|
| Groups | list, get | ✅ |
|
|
| Comments | list, get | ✅ |
|
|
| Shares | list, get | ✅ |
|
|
| Revisions | list, info | ✅ |
|
|
| Events | list, stats | ✅ |
|
|
| Attachments | list, stats | ✅ |
|
|
| File Operations | list | ✅ |
|
|
| OAuth | clients_list, auth_list | ✅ |
|
|
| Auth | info, config | ✅ (fixed) |
|
|
| Stars | list | ✅ |
|
|
| Pins | list | ✅ |
|
|
| Views | list | ✅ |
|
|
| Reactions | list | ✅ |
|
|
| API Keys | list | ✅ |
|
|
| Webhooks | list | ✅ |
|
|
| Backlinks | list | ✅ |
|
|
| Search Queries | list, stats | ✅ |
|
|
| Teams | get, stats, domains | ✅ |
|
|
| Integrations | list | ✅ |
|
|
| Notifications | list, settings | ✅ |
|
|
| Subscriptions | list, settings | ✅ (fixed) |
|
|
| Templates | list | ✅ |
|
|
| Imports | list | ✅ |
|
|
| Emojis | list | ✅ |
|
|
| User Permissions | list | ✅ |
|
|
| Analytics | Todos 6 tools | ✅ |
|
|
| Advanced Search | Todos 6 tools | ✅ |
|
|
| **Write Operations (código validado)** | | |
|
|
| Documents | create, update, archive, restore, delete | ✅ código |
|
|
| Collections | create, delete | ✅ código |
|
|
| Groups | create, delete | ✅ código |
|
|
| Comments | create, delete | ✅ código |
|
|
| Shares | create, revoke | ✅ código |
|
|
| Stars | create, delete | ✅ código |
|
|
| Pins | create, delete | ✅ código |
|
|
| API Keys | create, delete | ✅ código |
|
|
| Webhooks | create, delete | ✅ código |
|
|
|
|
---
|
|
|
|
## IDs Úteis para Testes
|
|
|
|
### Team
|
|
- **Team ID:** `c3b7d636-5106-463c-9000-5b154431f18f`
|
|
- **Team Name:** Descomplicar
|
|
|
|
### User
|
|
- **User ID:** `e46960fd-ac44-4d32-a3c1-bcc10ac75afe`
|
|
- **Name:** Emanuel Almeida
|
|
- **Email:** emanuel@descomplicar.pt
|
|
|
|
### Collections
|
|
| ID | Nome | Docs |
|
|
|----|------|------|
|
|
| `951a06ff-d500-4714-9aa0-6b9f9c34318a` | Planeamento-v2 | 282 |
|
|
| `e27bb4ad-5113-43f8-bd8b-56b3d8a89028` | Planeamento | 180 |
|
|
|
|
---
|
|
|
|
## Comandos Úteis
|
|
|
|
```bash
|
|
# Rebuild após alterações
|
|
npm run build
|
|
|
|
# Correr testes
|
|
npm test
|
|
|
|
# Verificar tunnel SSH
|
|
./start-tunnel.sh status
|
|
|
|
# Iniciar tunnel se necessário
|
|
./start-tunnel.sh start
|
|
|
|
# Testar servidor HTTP
|
|
DATABASE_URL="postgres://postgres:***@localhost:5433/descomplicar" node dist/index-http.js
|
|
# Depois: curl http://localhost:3200/health
|
|
```
|
|
|
|
---
|
|
|
|
## Ficheiros Relevantes
|
|
|
|
| Ficheiro | Descrição |
|
|
|----------|-----------|
|
|
| `TESTING-GUIDE.md` | Guia completo com status de cada tool |
|
|
| `CHANGELOG.md` | Histórico de alterações |
|
|
| `CLAUDE.md` | Instruções para Claude Code |
|
|
| `src/tools/*.ts` | Implementação das ferramentas |
|
|
| `src/utils/security.ts` | Validações e segurança |
|
|
| `dist/` | Código compilado (usado pelo MCP) |
|
|
|
|
---
|
|
|
|
## Prompt Para Continuar
|
|
|
|
```
|
|
Continuo os testes do MCP Outline PostgreSQL.
|
|
|
|
Path: /home/ealmeida/mcp-servers/mcp-outline-postgresql
|
|
Versão: 1.3.6
|
|
Estado: Código 100% validado, pronto para testes MCP
|
|
|
|
ESTADO ACTUAL:
|
|
- 6 bugs corrigidos e verificados no código fonte
|
|
- 209/209 testes unitários passam
|
|
- Servidor HTTP funcional (164 tools)
|
|
|
|
TAREFA: Testar operações de escrita via MCP
|
|
1. Verificar túnel: ./start-tunnel.sh status
|
|
2. Carregar tool: ToolSearch select:mcp__outline-postgresql__create_document
|
|
3. Criar documento de teste na collection Planeamento-v2
|
|
4. Testar update, archive, restore, delete
|
|
|
|
Se MCP não disponível, as tools precisam ser carregadas numa nova sessão.
|
|
|
|
Ver CONTINUE.md para detalhes completos.
|
|
```
|
|
|
|
---
|
|
|
|
*Actualizado: 2026-01-31 ~18:30 | Próxima sessão: Testar MCP tools (se disponíveis)*
|