MCP Tools Name Collision Causing Cross-Service Tool Call Failures
Forum Checked
I’ve reviewed related issues and found a similar problem :
MCP servers: Conflict Between Cursor’s edit_file
and Filesystem MCP Server
, but my issue specifically concerns tool name collisions between different MCP servers.
Bug Description
When configuring multiple MCP servers (such as GitHub and Obsidian), tools with identical function names create conflicts. Specifically: when attempting to use the get_file_contents
tool, the system incorrectly routes to the GitHub tool, requesting a missing owner
parameter (required for GitHub’s tool but not for Obsidian’s).
Steps to Reproduce
- Configure GitHub MCP server
- Configure Obsidian MCP server
- In an AI conversation, attempt to use the
get_file_contents
tool - Receive error: “Error calling tool: Required parameter ‘owner’ is missing for tool get_file_contents”
Error Message
When trying to call the Obsidian file contents tool, the error message indicates the system is attempting to use GitHub’s version instead, as it requests the “owner” parameter specific to GitHub’s implementation.
System Information
- Operating System: macOS 15.1.1
- Cursor Version: 0.48.2
Impact
This issue severely hampers the ability to use multiple MCP servers, especially in development scenarios where handling multiple resource types (such as GitHub code and Obsidian notes) simultaneously is necessary. Currently, the only workaround is to abandon using one of the MCP servers.
Suggested Solution 
Implement namespace isolation mechanisms, such as:
- Enforcing tool name prefixes (e.g.,
github-get_file_contents
,obsidian-get_file_contents
) - Implementing backend namespace routing based on the prefix
mcpName-mcp_servicename
- Allowing users to “define tool aliases to avoid conflicts” or “edit(or select) tool command like AI calling terminal and user can edit the command”.