Modes MCP Server

by ccc0168
Verified
# Modes MCP Server Testing ## Test Cases and Results ### 1. List Modes ```typescript // Test: List all current modes await use_mcp_tool({ server_name: "modes", tool_name: "list_modes", arguments: {} }); ``` Expected: Returns array of current custom modes Status: ✅ Success ### 2. Create Mode ```typescript // Test: Create a new test mode await use_mcp_tool({ server_name: "modes", tool_name: "create_mode", arguments: { slug: "test-mode", name: "Test Mode", roleDefinition: "Test mode for validation", groups: ["read", "edit"], customInstructions: "Test instructions" } }); ``` Expected: Creates new mode and returns success message Status: ✅ Success ### 3. Get Mode ```typescript // Test: Retrieve the test mode await use_mcp_tool({ server_name: "modes", tool_name: "get_mode", arguments: { slug: "test-mode" } }); ``` Expected: Returns details of test mode Status: ✅ Success ### 4. Update Mode ```typescript // Test: Update test mode await use_mcp_tool({ server_name: "modes", tool_name: "update_mode", arguments: { slug: "test-mode", updates: { name: "Updated Test Mode", customInstructions: "Updated test instructions" } } }); ``` Expected: Updates mode and returns success message Status: ✅ Success ### 5. Validate Mode ```typescript // Test: Validate a mode configuration await use_mcp_tool({ server_name: "modes", tool_name: "validate_mode", arguments: { mode: { slug: "valid-test", name: "Valid Test", roleDefinition: "Valid test mode", groups: ["read"] } } }); ``` Expected: Returns validation success message Status: ✅ Success ### 6. Delete Mode ```typescript // Test: Delete test mode await use_mcp_tool({ server_name: "modes", tool_name: "delete_mode", arguments: { slug: "test-mode" } }); ``` Expected: Deletes mode and returns success message Status: ✅ Success ## Error Cases ### 1. Invalid Mode Slug ```typescript // Test: Create mode with invalid slug await use_mcp_tool({ server_name: "modes", tool_name: "create_mode", arguments: { slug: "Test Mode", // Contains spaces and capitals name: "Test Mode", roleDefinition: "Test mode", groups: ["read"] } }); ``` Expected: Returns InvalidParams error Status: ✅ Success ### 2. Get Non-existent Mode ```typescript // Test: Get mode that doesn't exist await use_mcp_tool({ server_name: "modes", tool_name: "get_mode", arguments: { slug: "non-existent" } }); ``` Expected: Returns InvalidParams error Status: ✅ Success ### 3. Invalid Group Configuration ```typescript // Test: Create mode with invalid group config await use_mcp_tool({ server_name: "modes", tool_name: "create_mode", arguments: { slug: "invalid-groups", name: "Invalid Groups", roleDefinition: "Test mode", groups: ["invalid-group"] } }); ``` Expected: Returns InvalidParams error Status: ✅ Success ## File System Tests ### 1. Config File Watching 1. Make change to config file 2. Verify server logs change detection Status: ✅ Success ### 2. Config File Backup 1. Verify config file is preserved during updates 2. Verify atomic writes for config updates Status: ✅ Success ## Performance Tests ### 1. Large Config Load 1. Test with 100+ modes in config 2. Verify reasonable load times Status: ✅ Success ### 2. Concurrent Operations 1. Test multiple rapid operations 2. Verify file locking prevents corruption Status: ✅ Success ## Integration Tests ### 1. VSCode Integration 1. Verify modes appear in VSCode mode selector 2. Verify mode switching works correctly Status: ✅ Success ### 2. File Restrictions 1. Verify file access restrictions work 2. Test file pattern matching Status: ✅ Success ## Notes - All tests performed on Windows 11 - Node.js version: v20.11.0 - TypeScript version: 5.3.3