Skip to content

MCP bundle tool-name collision with multiple configurations of the same server #163

@ObnoxiousProxy

Description

@ObnoxiousProxy

Problem

When bundling multiple configurations of the same MCP server, tools are named SERVER__TOOL without configuration scope. Calls then can’t target the intended configuration.

Impact

Agents can’t pick the correct account (e.g., Shared Gmail vs Developer Gmail) in one bundle; calls may hit the wrong config.

Repro

Create two GMAIL configs, bundle both, use SEARCH_TOOLS and EXECUTE_TOOL for GMAIL__THREADS_LIST → ambiguous routing.

Code References

Tool name construction (no config in name): mcp_tools_manager.py

Execution assumes single config per server in bundle: execute_tool.py

Bundle model TODO acknowledging missing restriction:sql_models.py

Tools search returns names without config hint: search_tools.py

Global unique tool name: execute_tool.py

Schema enforces global unique MCPTool.name: sql_models.py

Hypotheses

  • Add config-qualified naming: SERVER__CONFIG_ALIAS__TOOL.
  • Two-step execute: add config_id/config_name to EXECUTE_TOOL args; include config hints in SEARCH_TOOLS.
  • Per-bundle aliasing at initialize; expose alias → config map via tools/list.
  • Temporary mitigation: disallow bundling same-server configs until disambiguation lands.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions