Skip to main content
Glama
test_mcp_error_handling.py2.12 kB
import json from types import SimpleNamespace import pytest from mcp.types import CallToolRequest, CallToolRequestParams from providers.registry import ModelProviderRegistry from server import server as mcp_server def _install_dummy_provider(monkeypatch): """Ensure preflight model checks succeed without real provider configuration.""" class DummyProvider: def get_provider_type(self): return SimpleNamespace(value="dummy") def get_capabilities(self, model_name): return SimpleNamespace( supports_extended_thinking=False, allow_code_generation=False, supports_images=False, context_window=1_000_000, max_image_size_mb=10, ) monkeypatch.setattr( ModelProviderRegistry, "get_provider_for_model", classmethod(lambda cls, model_name: DummyProvider()), ) monkeypatch.setattr( ModelProviderRegistry, "get_available_models", classmethod(lambda cls, respect_restrictions=False: {"gemini-2.5-flash": None}), ) @pytest.mark.asyncio async def test_tool_execution_error_sets_is_error_flag_for_mcp_response(monkeypatch): """Ensure ToolExecutionError surfaces as CallToolResult with isError=True.""" _install_dummy_provider(monkeypatch) handler = mcp_server.request_handlers[CallToolRequest] arguments = { "prompt": "Trigger working_directory_absolute_path validation failure", "working_directory_absolute_path": "relative/path", # Not absolute -> ToolExecutionError from ChatTool "absolute_file_paths": [], "model": "gemini-2.5-flash", } request = CallToolRequest(params=CallToolRequestParams(name="chat", arguments=arguments)) server_result = await handler(request) assert server_result.root.isError is True assert server_result.root.content, "Expected error response content" payload = server_result.root.content[0].text data = json.loads(payload) assert data["status"] == "error" assert "absolute" in data["content"].lower()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BeehiveInnovations/zen-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server