-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Support Tool Allowlists / Tool Profiles in codebase-memory-mcp #1100
Copy link
Copy link
Open
Labels
awaiting-reporterWaiting on the reporter for info/repro; stale bot will warn then closeWaiting on the reporter for info/repro; stale bot will warn then closeeditor/integrationEditor compatibility and CLI integrationEditor compatibility and CLI integrationenhancementNew feature or requestNew feature or requestpriority/normalStandard review queue; useful PR with ordinary maintainer urgency.Standard review queue; useful PR with ordinary maintainer urgency.ux/behaviorDisplay bugs, docs, adoption UXDisplay bugs, docs, adoption UX
Milestone
Description
Metadata
Metadata
Assignees
Labels
awaiting-reporterWaiting on the reporter for info/repro; stale bot will warn then closeWaiting on the reporter for info/repro; stale bot will warn then closeeditor/integrationEditor compatibility and CLI integrationEditor compatibility and CLI integrationenhancementNew feature or requestNew feature or requestpriority/normalStandard review queue; useful PR with ordinary maintainer urgency.Standard review queue; useful PR with ordinary maintainer urgency.ux/behaviorDisplay bugs, docs, adoption UXDisplay bugs, docs, adoption UX
What problem does this solve?
Currently, codebase-memory-mcp advertises its complete tool surface to every MCP client.
As the number of available tools grows, many users only need a subset of the functionality exposed by the server.
Common examples include:
Today, users must either:
All of these solutions move tool-selection concerns outside the server itself.
As codebase-memory-mcp continues to grow, this becomes increasingly difficult to manage.
Proposed solution
Allow users to specify which tools should be advertised by the MCP server.
Example:
{ "mcpServers": { "codebase-memory-mcp": { "command": "codebase-memory-mcp", "enabled_tools": [ "search_graph", "get_architecture", "trace_path", "search_code" ] } } }Alternatively, support named profiles:
{ "mcpServers": { "codebase-memory-mcp": { "command": "codebase-memory-mcp", "profile": "architecture" } } }with profiles defined separately.
The server would only advertise the selected tools during MCP capability negotiation.
Benefits:
Alternatives considered
Client-side filtering
Many MCP clients support filtering or tool allowlists.
However, filtering behavior varies by client and is not enforced at the server level.
MCP proxy servers
A proxy can selectively re-expose tools, but introduces additional infrastructure and maintenance burden.
Forking codebase-memory-mcp
Provides complete control but increases maintenance costs and makes upgrades more difficult.
Exposing all tools
Works for small tool sets, but becomes harder to manage as the number of tools grows and workflows become more specialized.
Confirmations