codemap_group_remove_member
Remove one or more members from a code group. Returns updated member count.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Required | Group name |
members | array | ✅ Required | Array of file paths or symbol references to remove from the group |
Usage Examples
MCP Usage (for AI Agents like Claude)
json
{
"name": "codemap_group_remove_member",
"arguments": {
"name": "deprecated-code",
"members": ["src/legacy/old-api.ts"]
}
}Example Output
JSON Response
json
{
"success": true,
"message": "Removed 2 member(s) from group \"auth-system\"",
"group": {
"name": "auth-system",
"description": "Authentication and authorization module",
"previousMemberCount": 7,
"currentMemberCount": 5,
"removedMembers": [
"src/auth/legacy-login.ts",
"src/auth/deprecated-jwt.ts"
]
}
}When to Use This Tool
-
Use
- Remove files that no longer belong to a group
- Clean up groups after refactoring or file deletion
- Remove deprecated or legacy files from active groups
- Refine group membership as understanding evolves
- Maintain group accuracy when files are moved or renamed
- Remove specific symbols when code is refactored
codemap_group_remove_member when you need to:
Common Patterns
Post-Refactor Cleanup
Deprecation Workflow
Symbol-Level Refinement
After moving files, update groups:
1. Files moved from src/auth to src/security
2. Remove old paths: codemap_group_remove_member({
name: "auth-system",
members: ["src/auth/oauth.ts", "src/auth/jwt.ts"]
})
3. Add new paths via codemap_group_addDeprecation Workflow
Remove deprecated code from active groups:
1. Mark files as deprecated
2. Remove from groups: codemap_group_remove_member({
name: "api-layer",
members: ["src/api/v1/deprecated-endpoints.ts"]
})
3. Add to deprecated group if neededSymbol-Level Refinement
Remove specific functions from group:
codemap_group_remove_member({
name: "validation-functions",
members: [
"src/utils/validators.ts$legacyEmailValidator",
"src/utils/validators.ts$deprecatedPhoneValidator"
]
})Pro Tips
- Batch removal is efficient: Remove multiple members in one call rather than looping
- Returns updated counts: Response shows previous and current member counts for verification
- Non-existent members are skipped: Removing members that don't exist won't error - tool is lenient
- Preserves notations: Removing members doesn't affect group notations or history
- Use with group search: First search to see current members, then remove unwanted ones
Best Practices
- Review current group members (via
codemap_group_search) before removing - Remove members in batches rather than individual calls for better performance
- Document why members are removed (add notation explaining the change)
- Update groups immediately after file refactoring or deletion
- Verify member counts in response to ensure correct removal
- Consider if removed files should be added to different groups
Common Mistakes
❌ Mistake: Removing members from non-existent group
✅ Instead: Verify group exists first
---
❌ Mistake: Removing all members leaves empty group
✅ Instead: Delete empty groups or leave at least one member
---
❌ Mistake: Forgetting to update after file moves
✅ Instead: Update groups immediately after moves
---
❌ Mistake: Removing members one at a time in a loop
✅ Instead: Batch remove in single call
---
❌ Mistake: Not documenting why members were removed
✅ Instead: Add notation explaining the change
codemap_group_remove_member({
name: "api-v3", // Group doesn't exist
members: ["src/api/routes.ts"]
})
// Error: Group "api-v3" not found✅ Instead: Verify group exists first
const groups = await codemap_group_list();
if (groups.groups.some(g => g.name === "api-v3")) {
codemap_group_remove_member({ name: "api-v3", members: [...] })
}---
❌ Mistake: Removing all members leaves empty group
const group = await codemap_group_search({ name: "utils" });
// Remove all 5 members
codemap_group_remove_member({
name: "utils",
members: group.data.group.members.map(m => m.path)
})
// Now group exists but has 0 members✅ Instead: Delete empty groups or leave at least one member
// Option 1: Delete the group instead
codemap_group_delete({ name: "utils" })
// Option 2: Keep some members
codemap_group_remove_member({
name: "utils",
members: ["src/utils/legacy.ts", "src/utils/deprecated.ts"]
// Keep other members
})---
❌ Mistake: Forgetting to update after file moves
// Move file from src/auth/login.ts to src/security/login.ts
// But forget to update groups
// Now group has path that doesn't exist✅ Instead: Update groups immediately after moves
// After moving file
codemap_group_remove_member({
name: "auth-system",
members: ["src/auth/login.ts"]
})
codemap_group_add({
name: "auth-system",
members: ["src/security/login.ts"] // Updated with members, adds to existing
})---
❌ Mistake: Removing members one at a time in a loop
for (const file of deprecatedFiles) {
await codemap_group_remove_member({
name: "api",
members: [file]
}) // Multiple API calls
}✅ Instead: Batch remove in single call
codemap_group_remove_member({
name: "api",
members: deprecatedFiles // Single API call
})---
❌ Mistake: Not documenting why members were removed
codemap_group_remove_member({
name: "api-layer",
members: ["src/api/old-routes.ts"]
})
// Future developers won't know why✅ Instead: Add notation explaining the change
codemap_group_remove_member({
name: "api-layer",
members: ["src/api/old-routes.ts"]
})
codemap_group_notate({
name: "api-layer",
text: "Removed old-routes.ts - migrated to new routing system in v2/"
})