Files
mcp-outline-postgresql/TESTING-GUIDE.md
Emanuel Almeida 1c8f6cbab9 fix: Shorten tool name exceeding 64 char limit
- Renamed outline_bulk_remove_users_from_collection (41 chars)
  to outline_bulk_remove_collection_users (38 chars)
- With MCP prefix (24 chars), total was 65 > 64 limit
- Bumped version to 1.3.7
- Updated all version references in source files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 18:27:13 +00:00

14 KiB
Raw Blame History

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) COMPLETE

Test creation and update functions with test data.

  • Direct SQL tests: 11/11 passed (documents, collections, groups, comments)
  • Additional tests: shares, api_keys working; stars/pins/webhooks schema validated

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
4 create_document Missing id, urlId, teamId columns Fixed Added gen_random_uuid() + defaults
5 create_collection Missing id, maintainerApprovalRequired Fixed Added gen_random_uuid() + defaults
6 shares_create Missing id, allowIndexing, showLastUpdated Fixed Added required columns

Module Test Results

1. Documents (19 tools)

Tool Status Notes
list_documents Returns full doc details with text
get_document Full doc with relations
create_document Includes lastModifiedById
update_document Title/text update working
delete_document Soft delete
search_documents Full-text search working
list_drafts 🔄
list_viewed_documents 🔄
archive_document Sets archivedAt
restore_document Clears archivedAt
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 Full collection details
create_collection Creates with urlId
update_collection 🔄
delete_collection Soft delete (requires empty)
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 Returns group details
outline_create_group Creates with name/teamId
outline_update_group 🔄
outline_delete_group Soft delete
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 Returns comment details
outline_comments_create Creates ProseMirror format
outline_comments_update 🔄
outline_comments_delete Soft delete
outline_comments_resolve 🔄

6. Shares (5 tools)

Tool Status Notes
outline_shares_list Empty (no shares)
outline_shares_info Returns share details
outline_shares_create Creates public share URL
outline_shares_update 🔄
outline_shares_revoke Sets revokedAt

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 Creates bookmark
outline_stars_delete Hard delete

14. Pins (3 tools)

Tool Status Notes
outline_pins_list Empty (no pins)
outline_pins_create Creates pin
outline_pins_delete Hard 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 Creates with hashed secret
outline_api_keys_update 🔄
outline_api_keys_delete Soft delete

18. Webhooks (4 tools)

Tool Status Notes
outline_webhooks_list Empty (no webhooks)
outline_webhooks_create Creates webhook subscription
outline_webhooks_update 🔄
outline_webhooks_delete Soft delete
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_collection_users 🔄

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

// 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

// 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

// List users
outline_list_users({ limit: 25 })

// Get user by ID
outline_get_user({ id: "user-uuid" })
// 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

// 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