Files
mcp-outline-postgresql/TESTING-GUIDE.md
Emanuel Almeida 2808d4aec0 fix: 3 schema bugs + add comprehensive testing documentation
Bug Fixes:
- auth.ts: Remove non-existent ap.updatedAt column
- subscriptions.ts: Add LIMIT 25 to prevent 136KB+ responses
- collections.ts: Remove documentStructure from list (use get for full)

Documentation:
- TESTING-GUIDE.md: Complete 164-tool reference with test status
- CONTINUE.md: Updated with verification status and MCP loading issue
- CHANGELOG.md: Document fixes and Round 1-2 test results

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 17:53:44 +00:00

490 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MCP Outline PostgreSQL - Testing Guide & Tool Reference
**Version:** 1.3.5
**Last Updated:** 2026-01-31
**Total Tools:** 164
## Test Environment
| Setting | Value |
|---------|-------|
| Server | hub.descomplicar.pt |
| Database | descomplicar |
| Port | 5433 (via SSH tunnel) |
| Tunnel Script | `./start-tunnel.sh start` |
## Test Plan
### Round 1: Read Operations (Non-Destructive) ✅ COMPLETE
Test all list/get operations first to understand data structure.
### Round 2: Search & Analytics ✅ COMPLETE
Test search, analytics, and reporting functions.
### Round 3: Write Operations (Create/Update)
Test creation and update functions with test data.
### Round 4: Delete Operations
Test soft delete operations.
### Round 5: Edge Cases
Test error handling, invalid inputs, empty results.
---
## Bug Tracker
| # | Tool | Issue | Status | Fix |
|---|------|-------|--------|-----|
| 1 | `outline_auth_config` | column ap.updatedAt does not exist | ✅ Fixed | Removed non-existent column |
| 2 | `outline_get_subscription_settings` | Returns 136KB+ (all subscriptions) | ✅ Fixed | Added LIMIT 25 |
| 3 | `list_collections` | Returns 130KB+ (documentStructure) | ✅ Fixed | Removed field from list |
---
## Module Test Results
### 1. Documents (19 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `list_documents` | ✅ | Returns full doc details with text |
| `get_document` | 🔄 | |
| `create_document` | 🔄 | |
| `update_document` | 🔄 | |
| `delete_document` | 🔄 | |
| `search_documents` | ✅ | Full-text search working |
| `list_drafts` | 🔄 | |
| `list_viewed_documents` | 🔄 | |
| `archive_document` | 🔄 | |
| `restore_document` | 🔄 | |
| `move_document` | 🔄 | |
| `unpublish_document` | 🔄 | |
| `templatize_document` | 🔄 | |
| `export_document` | 🔄 | |
| `import_document` | 🔄 | |
| `list_document_users` | 🔄 | |
| `list_document_memberships` | 🔄 | |
| `add_user_to_document` | 🔄 | |
| `remove_user_from_document` | 🔄 | |
### 2. Collections (14 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `list_collections` | ✅ | Fixed - removed documentStructure |
| `get_collection` | 🔄 | |
| `create_collection` | 🔄 | |
| `update_collection` | 🔄 | |
| `delete_collection` | 🔄 | |
| `list_collection_documents` | 🔄 | |
| `add_user_to_collection` | 🔄 | |
| `remove_user_from_collection` | 🔄 | |
| `list_collection_memberships` | 🔄 | |
| `add_group_to_collection` | 🔄 | |
| `remove_group_from_collection` | 🔄 | |
| `list_collection_group_memberships` | 🔄 | |
| `export_collection` | 🔄 | |
| `export_all_collections` | 🔄 | |
### 3. Users (9 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_users` | ✅ | 1 user (Emanuel Almeida) |
| `outline_get_user` | ✅ | Full profile data |
| `outline_create_user` | 🔄 | |
| `outline_update_user` | 🔄 | |
| `outline_delete_user` | 🔄 | |
| `outline_suspend_user` | 🔄 | |
| `outline_activate_user` | 🔄 | |
| `outline_promote_user` | 🔄 | |
| `outline_demote_user` | 🔄 | |
### 4. Groups (8 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_groups` | ✅ | Empty (no groups) |
| `outline_get_group` | 🔄 | |
| `outline_create_group` | 🔄 | |
| `outline_update_group` | 🔄 | |
| `outline_delete_group` | 🔄 | |
| `outline_list_group_members` | 🔄 | |
| `outline_add_user_to_group` | 🔄 | |
| `outline_remove_user_from_group` | 🔄 | |
### 5. Comments (6 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_comments_list` | ✅ | Empty (no comments) |
| `outline_comments_info` | 🔄 | |
| `outline_comments_create` | 🔄 | |
| `outline_comments_update` | 🔄 | |
| `outline_comments_delete` | 🔄 | |
| `outline_comments_resolve` | 🔄 | |
### 6. Shares (5 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_shares_list` | ✅ | Empty (no shares) |
| `outline_shares_info` | 🔄 | |
| `outline_shares_create` | 🔄 | |
| `outline_shares_update` | 🔄 | |
| `outline_shares_revoke` | 🔄 | |
### 7. Revisions (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_revisions_list` | ✅ | Working |
| `outline_revisions_info` | 🔄 | |
| `outline_revisions_compare` | 🔄 | |
### 8. Events (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_events_list` | ✅ | Returns audit log |
| `outline_events_info` | 🔄 | |
| `outline_events_stats` | ✅ | Returns event statistics |
### 9. Attachments (5 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_attachments_list` | ✅ | Empty (no attachments) |
| `outline_attachments_info` | 🔄 | |
| `outline_attachments_create` | 🔄 | |
| `outline_attachments_delete` | 🔄 | |
| `outline_attachments_stats` | ✅ | Returns attachment statistics |
### 10. File Operations (4 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_file_operations_list` | ✅ | Empty (no file operations) |
| `outline_file_operations_info` | 🔄 | |
| `outline_file_operations_redirect` | 🔄 | |
| `outline_file_operations_delete` | 🔄 | |
### 11. OAuth (8 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_oauth_clients_list` | ✅ | Empty (no OAuth clients) |
| `outline_oauth_clients_info` | 🔄 | |
| `outline_oauth_clients_create` | 🔄 | |
| `outline_oauth_clients_update` | 🔄 | |
| `outline_oauth_clients_rotate_secret` | 🔄 | |
| `outline_oauth_clients_delete` | 🔄 | |
| `outline_oauth_authentications_list` | ✅ | Empty |
| `outline_oauth_authentications_delete` | 🔄 | |
### 12. Auth (2 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_auth_info` | ✅ | Returns auth statistics |
| `outline_auth_config` | ✅ | Fixed - removed ap.updatedAt |
### 13. Stars (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_stars_list` | ✅ | Empty (no stars) |
| `outline_stars_create` | 🔄 | |
| `outline_stars_delete` | 🔄 | |
### 14. Pins (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_pins_list` | ✅ | Empty (no pins) |
| `outline_pins_create` | 🔄 | |
| `outline_pins_delete` | 🔄 | |
### 15. Views (2 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_views_list` | ✅ | 29 total views |
| `outline_views_create` | 🔄 | |
### 16. Reactions (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_reactions_list` | ✅ | Empty (no reactions) |
| `outline_reactions_create` | 🔄 | |
| `outline_reactions_delete` | 🔄 | |
### 17. API Keys (4 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_api_keys_list` | ✅ | Empty (no API keys) |
| `outline_api_keys_create` | 🔄 | |
| `outline_api_keys_update` | 🔄 | |
| `outline_api_keys_delete` | 🔄 | |
### 18. Webhooks (4 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_webhooks_list` | ✅ | Empty (no webhooks) |
| `outline_webhooks_create` | 🔄 | |
| `outline_webhooks_update` | 🔄 | |
| `outline_webhooks_delete` | 🔄 | |
### 19. Backlinks (1 tool)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_backlinks_list` | ✅ | Empty (read-only view) |
### 20. Search Queries (2 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_search_queries_list` | ✅ | 9 queries recorded |
| `outline_search_queries_stats` | ✅ | Popular/zero-result queries |
### 21. Teams (5 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_get_team` | ✅ | Descomplicar team, 464 docs |
| `outline_update_team` | 🔄 | |
| `outline_get_team_stats` | ✅ | Comprehensive stats |
| `outline_list_team_domains` | ✅ | Empty (no domains) |
| `outline_update_team_settings` | 🔄 | |
### 22. Integrations (6 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_integrations` | ✅ | Empty (no integrations) |
| `outline_get_integration` | 🔄 | |
| `outline_create_integration` | 🔄 | |
| `outline_update_integration` | 🔄 | |
| `outline_delete_integration` | 🔄 | |
| `outline_sync_integration` | 🔄 | |
### 23. Notifications (4 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_notifications` | ✅ | Empty (no notifications) |
| `outline_mark_notification_read` | 🔄 | |
| `outline_mark_all_notifications_read` | 🔄 | |
| `outline_get_notification_settings` | ✅ | User settings returned |
### 24. Subscriptions (4 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_subscriptions` | ✅ | 10+ subscriptions |
| `outline_subscribe_to_document` | 🔄 | |
| `outline_unsubscribe_from_document` | 🔄 | |
| `outline_get_subscription_settings` | ✅ | Fixed - added LIMIT 25 |
### 25. Templates (5 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_templates` | ✅ | 1 template found |
| `outline_get_template` | 🔄 | |
| `outline_create_from_template` | 🔄 | |
| `outline_convert_to_template` | 🔄 | |
| `outline_convert_from_template` | 🔄 | |
### 26. Imports (4 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_imports` | ✅ | Empty (no imports) |
| `outline_get_import_status` | 🔄 | |
| `outline_create_import` | 🔄 | |
| `outline_cancel_import` | 🔄 | |
### 27. Emojis (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_emojis` | ✅ | Empty (feature not available) |
| `outline_create_emoji` | 🔄 | |
| `outline_delete_emoji` | 🔄 | |
### 28. User Permissions (3 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_list_user_permissions` | ✅ | 2 doc + 2 collection perms |
| `outline_grant_user_permission` | 🔄 | |
| `outline_revoke_user_permission` | 🔄 | |
### 29. Bulk Operations (6 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_bulk_archive_documents` | 🔄 | |
| `outline_bulk_delete_documents` | 🔄 | |
| `outline_bulk_move_documents` | 🔄 | |
| `outline_bulk_restore_documents` | 🔄 | |
| `outline_bulk_add_users_to_collection` | 🔄 | |
| `outline_bulk_remove_users_from_collection` | 🔄 | |
### 30. Advanced Search (6 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_search_documents_advanced` | ✅ | Full-text with filters |
| `outline_get_search_facets` | ✅ | Collections, authors, date range |
| `outline_search_recent` | ✅ | Recent documents |
| `outline_search_by_user_activity` | ✅ | Created/edited/viewed/starred |
| `outline_search_orphaned_documents` | ✅ | 2 orphaned docs found |
| `outline_search_duplicates` | ✅ | Exact + similar duplicates |
### 31. Analytics (6 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_analytics_overview` | ✅ | 588 total docs, 29 views |
| `outline_analytics_user_activity` | ✅ | Activity by day/hour |
| `outline_analytics_content_insights` | ✅ | Most viewed, stale, never viewed |
| `outline_analytics_collection_stats` | ✅ | 2 collections detailed |
| `outline_analytics_growth_metrics` | ✅ | Document/user growth |
| `outline_analytics_search` | ✅ | Popular queries, zero results |
### 32. Export/Import (2 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_export_collection_to_markdown` | 🔄 | |
| `outline_import_markdown_folder` | 🔄 | |
### 33. Desk Sync (2 tools)
| Tool | Status | Notes |
|------|--------|-------|
| `outline_create_desk_project_doc` | 🔄 | |
| `outline_link_desk_task` | 🔄 | |
---
## Legend
| Symbol | Meaning |
|--------|---------|
| ✅ | Working correctly |
| ⚠️ | Works with limitations |
| ❌ | Bug found (needs fix) |
| 🔄 | Not tested yet |
| | Not applicable |
---
## Test Progress Summary
| Category | Tested | Working | Bugs Found | Fixed |
|----------|--------|---------|------------|-------|
| Read Operations | 55+ | 55+ | 3 | 3 |
| Search & Analytics | 12 | 12 | 0 | 0 |
| Write Operations | 0 | 0 | 0 | 0 |
| Delete Operations | 0 | 0 | 0 | 0 |
**Total: ~67 tools tested, 3 bugs found and fixed**
---
## Tool Usage Examples
### Documents
```javascript
// List all documents
list_documents({ limit: 10 })
// Get specific document
get_document({ id: "uuid-here" })
// Search documents
search_documents({ query: "keyword", limit: 20 })
// Create document
create_document({
title: "New Document",
collection_id: "collection-uuid",
text: "# Content here"
})
```
### Collections
```javascript
// List collections (without documentStructure)
list_collections({ limit: 10 })
// Get collection details (includes documentStructure)
get_collection({ id: "collection-uuid" })
// Create collection
create_collection({
name: "New Collection",
description: "Description here"
})
```
### Users
```javascript
// List users
outline_list_users({ limit: 25 })
// Get user by ID
outline_get_user({ id: "user-uuid" })
```
### Search
```javascript
// Full-text search
search_documents({ query: "keyword" })
// Advanced search with filters
outline_search_documents_advanced({
query: "keyword",
collection_ids: ["uuid1", "uuid2"],
date_from: "2024-01-01"
})
// Find duplicates
outline_search_duplicates({ similarity_threshold: 0.8 })
// Find orphaned documents
outline_search_orphaned_documents({})
```
### Analytics
```javascript
// Overview statistics
outline_analytics_overview({ days: 30 })
// User activity report
outline_analytics_user_activity({ limit: 10 })
// Content insights
outline_analytics_content_insights({})
// Growth metrics
outline_analytics_growth_metrics({ period: "month" })
```
---
*Document updated during testing sessions - 2026-01-31*