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