VS Code / GitHub Copilot: MCP tools fail with `currently disabled by the user` error

Summary

The issue at hand involves MCP tools failing with a currently disabled by the user error when used in Visual Studio Code with GitHub Copilot for working with Excel files. Despite having all tools enabled, certain tools, particularly the “read” tool, are inaccessible due to this error. The problem seems to be model-specific, with some models like GPT 5 mini working as expected, while others, such as Claude Sonnet 4.5, encounter the error.

Root Cause

The root cause of this issue can be attributed to several factors, including:

  • Model compatibility: Different models have varying levels of compatibility with MCP tools, leading to errors with certain models.
  • Tool configuration: The configuration of the tools within the MCP server might be inconsistent or incorrect, causing some tools to be disabled.
  • User settings: User-specific settings in Visual Studio Code or GitHub Copilot might be overriding the default tool settings, leading to the error.

Why This Happens in Real Systems

This issue occurs in real systems due to:

  • Complexity of integrations: The integration of multiple tools and services (e.g., Visual Studio Code, GitHub Copilot, MCP servers) can lead to compatibility issues and configuration problems.
  • Model updates and changes: Updates to models or changes in their underlying architecture can break compatibility with existing tools and systems.
  • User-specific environments: The unique setup and configuration of each user’s environment can introduce variability in how tools and services interact.

Real-World Impact

The impact of this issue includes:

  • Reduced productivity: The inability to use certain tools can slow down development and increase frustration for users.
  • Limited functionality: The error can limit the functionality of MCP tools, making them less useful for tasks that rely on the disabled tools.
  • Increased support requests: Users may reach out to support teams more frequently, increasing the workload and delaying resolutions.

Example or Code

import requests

# Example of checking tool status
def check_tool_status(tool_name, mcp_server_url):
    response = requests.get(f"{mcp_server_url}/tools/{tool_name}")
    if response.status_code == 200:
        return response.json()["enabled"]
    else:
        return False

# Example usage
mcp_server_url = "https://example-mcp-server.com"
tool_name = "read"
if not check_tool_status(tool_name, mcp_server_url):
    print(f"{tool_name} is currently disabled")

How Senior Engineers Fix It

Senior engineers can fix this issue by:

  • Verifying model compatibility: Checking the compatibility of the model with the MCP tools and updating or changing the model if necessary.
  • Reviewing tool configuration: Ensuring the tool configuration within the MCP server is consistent and correct.
  • Investigating user settings: Examining user-specific settings in Visual Studio Code and GitHub Copilot to identify and resolve any overrides that might be causing the error.

Why Juniors Miss It

Junior engineers might miss this issue due to:

  • Lack of experience: Limited experience with integrating multiple tools and services can make it difficult to identify compatibility issues.
  • Insufficient knowledge: Not being familiar with the specific models and tools involved can lead to overlooking critical configuration details.
  • Inadequate testing: Failing to thoroughly test the tools and services in different environments and scenarios can mask the error, making it harder to detect.

Leave a Comment