ComposioHQ/composio · error · ValidationError

Failed to parse MCP server instance

Error message

Failed to parse MCP server instance

What it means

A catch-all wrapper around the whole MCP.generate() body: any exception that is not already a ValidationError (e.g. AttributeError while building the MCPServerInstance dict, KeyError on server_details fields, JSON issues) is re-raised as 'Failed to parse MCP server instance'. Pre-existing ValidationErrors pass through untouched.

Source

Thrown at python/composio/core/models/mcp.py:500

                raise ValidationError("No server URL generated")

            # Create structured server instance (matching TS MCPServerInstance)
            server_instance: MCPServerInstance = {
                "id": server_details.id,
                "name": server_details.name,
                "type": "streamable_http",
                "url": server_url,
                "user_id": user_id,
                "allowed_tools": getattr(server_details, "allowed_tools", []),
                "auth_configs": getattr(server_details, "auth_config_ids", []),
            }

            return server_instance

        except Exception as e:
            if isinstance(e, ValidationError):
                raise
            raise ValidationError("Failed to parse MCP server instance") from e

View on GitHub (pinned to 64b1b85502)

Solutions

  1. Inspect e.__cause__ to see the exact AttributeError/KeyError and which field was missing
  2. Upgrade (or pin) composio to the version whose generated client matches the backend
  3. Retry once to rule out transient partial responses
Defensive patterns

Strategy: try-catch

Try / catch

try:
    inst = composio.mcp.create(...)
except ValidationError as e:
    logger.error('parse failed: %r', e.__cause__)
    raise

Prevention

When it happens

Trigger: The generate flow succeeds at HTTP level but the response object is missing expected attributes (server_details.id, server_details.name) or the URL parsing step raises — usually generated-client/backend schema drift.

Common situations: Old composio version against a new backend, or vice versa; backend returning an error object where a server config was expected.

Understand the failure class

Related errors


AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28). Data as JSON: /api/errors/92fbfba5a5c92670. Report an issue: GitHub.