-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Is your feature request related to a problem? Please describe.
Some MCP servers expose tools which provides same functionality e.g.
Claude Code:
- FileReadTool
- FileEditTool
- FileWriteTool
Intellij MCP plugin:
- ReplaceCurrentFileTextTool
- ReplaceSelectedTextTool
- ReplaceSpecificTextTool
- ReplaceTextByPathTool
Which make if hard to control what tools should be used for which purpose. And prompting often times do not stop the agent from using the tools it was told not to use. Over time as ecosystem grows more mature this problem will become even bigger.
Describe the solution you'd like
Provide the way to explicitly request the list of desired tools for agent. E.g. in case I'm using claude code I may prefer using built-in tools and exclude Intellij text tools offerings, but still continue using rest of Intellij MCP tools.
E.g. InitializeRequest may have extra requestedTools or excludedTools field which users can specify in MCP configuration e.g.
{
"mcpServers": {
"jetbrains": {
"command": "npx",
"requestedTools": ["get_run_configurations_tool", "list_available_actions_tool"]
"args": ["-y", "@jetbrains/mcp-proxy"]
}
}
}Describe alternatives you've considered
MCP proxy
Provide an MCP server which will act as filter to strip tool announcements from server responses, downside of that is maintaining extra proxy layers, possibly for multiple servers, as well as lack of transparency since the server itself does not know that tools is unused, this info may be used to prevent spending resources of initialization of unused tools.
Server configuration
Different servers may have it's own ways to turn tools on and off, including UI toggles , this approach may lead to fragmentation, and it's unclear what would be the path forward for the tools which decide to avoid implementing the configuration.
Client configuration
Allow client to maintain the list of banned tools and manage the logic/prompts to prevent this tools from being used. Not a bad option but It will complicate client implementations as well as some waste on a protocol level since information about all available tools will be exchanged even if it would never be used during the session.
Additional context
Related discussions
JetBrains/mcp-server-plugin#18
JetBrains/mcp-jetbrains#34