Summary
The GitHub guard does not fully cover 6 operation(s) from the github-mcp-server and/or GitHub CLI. These operations are mutating upstream MCP tools that are present in the current upstream server but missing from the guard's write/read-write classification inventory, so they may bypass DIFC write classification.
- MCP tools scanned: 89
- CLI write commands scanned: 41
- Guard-covered upstream MCP write tools (
tools.rs): 58
- Guard-covered CLI/synthetic write tools (
tools.rs): 41
- Tools with explicit DIFC rules (
tool_rules.rs): classification-only audit; many explicit rules exist, but this report focuses on missing write inventory coverage
- New gaps found this run: 6
MCP Tool Classification Gaps (tools.rs)
These upstream MCP tools perform mutating operations but are missing from the upstream MCP buckets in guards/github-guard/rust-guard/src/tools.rs:
| Tool Name |
Operation Type |
Suggested Classification |
Notes |
dismiss_notification |
write |
WRITE_OPERATIONS |
Dismisses a notification thread state for the authenticated user |
mark_all_notifications_read |
write |
WRITE_OPERATIONS |
Marks all notifications read for the authenticated user |
manage_notification_subscription |
read-write |
READ_WRITE_OPERATIONS |
Sets or clears a thread subscription and can optionally return current subscription state |
manage_repository_notification_subscription |
read-write |
READ_WRITE_OPERATIONS |
Sets or clears a repository notification subscription and can optionally return current subscription state |
star_repository |
write |
WRITE_OPERATIONS |
Adds a star relationship from the authenticated user to a repository |
unstar_repository |
write |
WRITE_OPERATIONS |
Removes a star relationship from the authenticated user to a repository |
Suggested fix for tools.rs
pub const WRITE_OPERATIONS: &[&str] = &[
// ... existing entries ...
"dismiss_notification",
"mark_all_notifications_read",
"star_repository",
"unstar_repository",
];
pub const READ_WRITE_OPERATIONS: &[&str] = &[
// ... existing entries ...
"manage_notification_subscription",
"manage_repository_notification_subscription",
];
MCP Tool DIFC Labeling Follow-up (tool_rules.rs)
These tools should also receive explicit labeling rules if they do not already have dedicated match arms after classification is added:
| Tool Name |
Data Scope |
Suggested Labels |
Risk |
dismiss_notification |
user-scoped |
secrecy: private, integrity: collaborator/user-owned state |
Medium |
mark_all_notifications_read |
user-scoped |
secrecy: private, integrity: collaborator/user-owned state |
Medium |
manage_notification_subscription |
user-scoped thread state |
secrecy: private, integrity: collaborator/user-owned state |
Medium |
manage_repository_notification_subscription |
user-scoped repo subscription state |
secrecy: private, integrity: collaborator/user-owned state with repo context when present |
Medium |
star_repository |
user-scoped repo affinity |
secrecy: private, integrity: authenticated user action |
Low |
unstar_repository |
user-scoped repo affinity |
secrecy: private, integrity: authenticated user action |
Low |
Notes
These are new gaps relative to the cached prior report set. They come from current upstream github-mcp-server tool definitions in:
pkg/github/notifications.go
pkg/github/repositories.go
The rest of the previously investigated CLI-only operations appeared to be represented in the guard inventories or related synthetic buckets and were not re-reported here.
References
Generated by GitHub Guard Coverage Checker (MCP + CLI) · gpt54 · 171.5 AIC · ⊞ 35.9K · ◷
Summary
The GitHub guard does not fully cover 6 operation(s) from the github-mcp-server and/or GitHub CLI. These operations are mutating upstream MCP tools that are present in the current upstream server but missing from the guard's write/read-write classification inventory, so they may bypass DIFC write classification.
tools.rs): 58tools.rs): 41tool_rules.rs): classification-only audit; many explicit rules exist, but this report focuses on missing write inventory coverageMCP Tool Classification Gaps (
tools.rs)These upstream MCP tools perform mutating operations but are missing from the upstream MCP buckets in
guards/github-guard/rust-guard/src/tools.rs:dismiss_notificationWRITE_OPERATIONSmark_all_notifications_readWRITE_OPERATIONSmanage_notification_subscriptionREAD_WRITE_OPERATIONSmanage_repository_notification_subscriptionREAD_WRITE_OPERATIONSstar_repositoryWRITE_OPERATIONSunstar_repositoryWRITE_OPERATIONSSuggested fix for
tools.rsMCP Tool DIFC Labeling Follow-up (
tool_rules.rs)These tools should also receive explicit labeling rules if they do not already have dedicated match arms after classification is added:
dismiss_notificationmark_all_notifications_readmanage_notification_subscriptionmanage_repository_notification_subscriptionstar_repositoryunstar_repositoryNotes
These are new gaps relative to the cached prior report set. They come from current upstream
github-mcp-servertool definitions in:pkg/github/notifications.gopkg/github/repositories.goThe rest of the previously investigated CLI-only operations appeared to be represented in the guard inventories or related synthetic buckets and were not re-reported here.
References