forked from zereight/gitlab-mcp
-
Notifications
You must be signed in to change notification settings - Fork 1
refactor(read-only): move read-only actions from manage_* to browse_* tools #134
Copy link
Copy link
Description
Problem
In read-only mode, documentation specifies that all manage_* tools are hidden. However, some manage_* tools currently expose read-only actions:
manage_context— session-only actions (show, list_presets, set_scope, etc.)manage_webhook—readactionmanage_integration—getaction
These read-only actions should live in the corresponding browse_* tools, not in manage_*.
Target State
Move read-only actions into browse_* tools:
manage_webhookactionread→browse_webhooks(orlist_webhooks) actiongetmanage_integrationactionget→list_integrationsactionget(or newbrowse_integrations)manage_context— evaluate if this belongs inbrowse_contextor stays as-is (session-only, no GitLab writes)
Then in read-only mode, ALL manage_* tools are hidden cleanly — no action-level filtering needed.
Benefits
- Clean CQRS contract:
browse_*= read,manage_*= write - Simpler read-only filtering (no per-action runtime checks)
- Documentation matches code exactly
References
- Documentation:
docs/security/read-only.md - Code:
src/registry-manager.ts, entityget*ReadOnlyToolNames()functions - PR docs: Critical documentation refactor - VitePress site with MCP install badges #133
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels