# MCP Tools Name Collision Causing Cross-Service Tool Call Failures

**URL:** <https://forum.cursor.com/t/mcp-tools-name-collision-causing-cross-service-tool-call-failures/70946>\
**Category:** Bug Reports\
**Created:** [March 27, 2025, 1:45pm UTC](https://forum.cursor.com/t/mcp-tools-name-collision-causing-cross-service-tool-call-failures/70946 "2025-03-27T13:45:29Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bryan0211](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/bryan0211/32/41325_2.png) [@Bryan0211](https://forum.cursor.com/u/Bryan0211)\
**Post date:** [March 27, 2025, 1:45pm UTC](https://forum.cursor.com/t/mcp-tools-name-collision-causing-cross-service-tool-call-failures/70946/1 "2025-03-27T13:45:29Z")

</div>

# 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](https://forum.cursor.com/t/mcp-servers-conflict-between-cursors-edit-file-and-filesystem-mcp-server-in-composer-agent-mode/50312)  
, 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

1. Configure GitHub MCP server
2. Configure Obsidian MCP server
3. In an AI conversation, attempt to use the `get_file_contents` tool
4. 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:

1. Enforcing tool name prefixes (e.g., `github-get_file_contents`, `obsidian-get_file_contents`)
2. Implementing backend namespace routing based on the prefix `mcpName-mcp_servicename`
3. 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”. 🥰

---

<div class="post-metadata">

**Author:** ![atalas](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/atalas/32/17824_2.png) [@atalas](https://forum.cursor.com/u/atalas)\
**Post date:** [March 28, 2025, 9:55am UTC](https://forum.cursor.com/t/mcp-tools-name-collision-causing-cross-service-tool-call-failures/70946/2 "2025-03-28T09:55:01Z")

</div>

yes，[Mcp servers: Conflict Between Cursor's `edit_file` and Filesystem MCP Server in Composer Agent Mode](https://forum.cursor.com/t/mcp-servers-conflict-between-cursors-edit-file-and-filesystem-mcp-server-in-composer-agent-mode/50312)

This is the issue I raised before, and the solution I adopted directly is to declare it using the exact method in the rules.

---

<div class="post-metadata">

**Author:** ![griffithsbs](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/griffithsbs/32/49791_2.png) [@griffithsbs](https://forum.cursor.com/u/griffithsbs)\
**Post date:** [April 25, 2025, 4:44pm UTC](https://forum.cursor.com/t/mcp-tools-name-collision-causing-cross-service-tool-call-failures/70946/4 "2025-04-25T16:44:51Z")

</div>

This is a big issue in Cursor’s MCP Client implementation, IMO. The MCP spec basically leaves it up to client to disambiguate between two tools with the same name (it doesn’t specify _how_, but the most obvious conceptual solution would be for the client to namespace tool names under the name of the server (as per the mcp config json)).

But Cursor doesn’t do this at all: so if you want to use two different MCP servers that both expose a tool called “query” or “list\_tables” or “fetch” or whatever, the Cursor agent currently can’t handle it - and it’s a really common use case!

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [May 25, 2025, 4:45pm UTC](https://forum.cursor.com/t/mcp-tools-name-collision-causing-cross-service-tool-call-failures/70946/5 "2025-05-25T16:45:04Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
