multica-ai/multica · error

list workspace mcp servers: %w

Error message

list workspace mcp servers: %w

What it means

Wrapped failure of the HTTP GET to /api/workspaces/{id}/mcp-servers performed by `multica workspace mcp list`. The chained error carries the real cause: unknown workspace (404), auth failure (401/403), or transport/network problems.

Source

Thrown at server/cmd/multica/cmd_workspace.go:624

	wsID, err := resolveWorkspaceArg(cmd, args)
	if err != nil {
		return err
	}
	if wsID == "" {
		return fmt.Errorf("workspace ID is required: pass an id/slug/prefix as argument or set MULTICA_WORKSPACE_ID")
	}

	client, err := newAPIClient(cmd)
	if err != nil {
		return err
	}

	ctx, cancel := cli.APIContext(context.Background())
	defer cancel()

	var servers []workspaceMcpServer
	if err := client.GetJSON(ctx, "/api/workspaces/"+wsID+"/mcp-servers", &servers); err != nil {
		return fmt.Errorf("list workspace mcp servers: %w", err)
	}

	return printWorkspaceMcpServers(cmd, servers)
}

func runWorkspaceMcpAdd(cmd *cobra.Command, args []string) error {
	serverName := strings.TrimSpace(args[0])
	if serverName == "" {
		return fmt.Errorf("server name must not be empty")
	}
	wsID, err := resolveWorkspaceArg(cmd, args[1:])
	if err != nil {
		return err
	}
	if wsID == "" {
		return fmt.Errorf("workspace ID is required: pass an id/slug/prefix as argument or set MULTICA_WORKSPACE_ID")
	}

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Verify the workspace exists and is accessible via `multica workspace get <ws>`
  2. Check the wrapped error for the HTTP status to distinguish 404 (bad id) from 401/403 (credentials) from connection refused (wrong host)
  3. Fix the base URL / token configuration, then re-run

Example fix

# before
multica workspace mcp list old-slug
# list workspace mcp servers: 404

# after
multica workspace list
multica workspace mcp list new-slug
Defensive patterns

Strategy: try-catch

Validate before calling

if wsID == "" {
    return errors.New("workspace ID is required")
}

Try / catch

if err := client.GetJSON(ctx, "/api/workspaces/"+wsID+"/mcp-servers", &servers); err != nil {
    if strings.Contains(err.Error(), "404") {
        servers = nil // workspace unknown; treat as empty
        return nil
    }
    return fmt.Errorf("list workspace mcp servers: %w", err)
}

Prevention

When it happens

Trigger: Listing MCP servers for a workspace id/slug/prefix that does not exist or is not visible to the authenticated user; server down or returning 5xx; malformed base URL.

Common situations: Stale slug after workspace rename; token scoped to a different workspace; hitting a dev server without the workspace seeded.

Related errors


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/ff0b14f41e97ca72. Report an issue: GitHub.